Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87

Photo illustration by Slate. Photo by Netflix.
Netflix’s popular miniseries The Queen’s Gambit, which follows a young chess prodigy as she ascends the ranks of U.S. and world championship tournaments, has earned widespread praise from chess enthusiasts, historians, and even professionals for its startlingly accurate portrayal of chess gameplay and the world of high-stakes competition. Much of the reason The Queen’s Gambit has avoided the mockery that so many other depictions of the game have received is that the show’s creators consulted with chess heavyweights, including instructor Bruce Pandolfini (who advised the novel The Queen’s Gambit is adapted from) and grandmaster Garry Kasparov, a former world chess champion considered by some to be the greatest player ever. I spoke with Kasparov to learn more about his work on The Queen’s Gambit, what the show gets right about chess in the ’60s, and how it compares with other on-screen depictions of the game. Our conversation has been edited and condensed for clarity.
Nitish Pahwa: How did you get approached for The Queen’s Gambit, and what role did you end up playing?
Garry Kasparov: It came from two sources. One, I got a call from Bruce Pandolfini. I know him well. Bruce said that he would be engaged in this project and Scott Frank wanted to have a chat with me. And around the same time, I’m not sure which call came first, but I got a message from my friends, the creators of Game of Thrones, David Benioff and [D.B.] Weiss, who are very good friends with Scott. And they also said, “Scott is doing something interesting in chess and he wants to talk to you.” It ended up with me and my wife entering Boulud Sud, the restaurant on the Upper West Side. Scott was there, Bruce was there, and a couple other guys that worked with Scott, and we had a nice conversation.
Scott was impressed when I said that I watched Godless and I liked it. His original idea was to actually invite me to play Vasily Borgov. And he also said, “Garry, just to make you feel more comfortable, you have a beautiful wife, why don’t you take her and she’ll play your wife in the movie?” It was tempting, but I said, “I’m afraid my schedule would not allow me to spend so much time, because you’re talking about two or three months.” It’s quite a serious undertaking—Borgov is one of the key characters there. But I said, “Look, why don’t we talk about the series? Maybe I can offer you a hand, with my experience, my help, to secure the authenticity of the chess events.” Because many movies that were done on chess, the people could feel that it’s Hollywood. Something was missing: That’s not the right synergy, psychology, body language.
I have to confess that I had not read Walter Tevis’ book before. I immediately went back, read the book, and then I come back to Scott and say, “I think I can do it, so I need the script.” We had a few conversations, but the big meeting was in Berlin. We went through the whole script. I said, “Look, you have three components where I think I can help. One is, naturally, I can definitely help with explaining how the game is being played. Now, this is about the body language, touching the pieces, all the things that will give people the sense that they are real players.”
“Second,” I said, “you have to guarantee that the games that are being played, they have to look real. There will be a bunch of chess players watching who say, ‘That’s nonsense.’ Many chess movies, or movies where chess is being put on display, they just couldn’t put the pieces correctly, or the chessboard was turned 90 degrees. A movie that is about chess players, chess competitions, it should be full-blown, real chess. And people, if they have qualifications, they should recognize this is a real game.” You have a problem because Walter Tevis described games—you have to find games that will be as close as possible to the book. But at the same time, Walter Tevis’ descriptions of the games were, let’s say, amateurish. So I said, “I will talk to Bruce, we’ll pick up the key games. … I will collect some games and I will basically slightly upgrade them—change them to make sure that those are real games that will look exactly as described in the book.” So that’s the second component.
The third component is that it’s about Soviet chess. It’s the KGB—these guys are not in the book. I said, “Soviet champions traveling in the ’60s in the West with their family, they must be accompanied by KGB guys.”
Most of the games, it was not difficult, but the biggest challenge was the last game, because the last game is just, it’s a full game. And the problem is that the last game had to be played by the Queen’s Gambit. Of course I could pick up games from other openings, but it would be very much against the spirit of the book. How did I find a good game that will be played for 40 or so moves adjourned in a complicated situation? And then you have this very important element of Benny and his team calling from New York. It means the position had to be complicated. I found a few games and picked up one: Patrick Wolff against Vassily Ivanchuk, Biel Interzonal, 1993. Wolff sent me a note a couple of days after the show was released: “I recognize the game.” It was quite an obscure game. He said, “Garry, how on earth did you find it?” I said, “I had certain parameters, with the gambit, the number of pieces left, so basically, I ended up with 700 games.” It’s not perfect, because it’s not exactly as complicated as I want it, but it fit the book description: game adjourned, complicated position. And even with all the ruckus, he’s pushing the rook. The rook is trapped in the center. I preserved most of the game description and I think it helped, because that’s a climax, and the climax is something that people always recall.
Would the phone call Benny makes be outside the reasonable realm of what would happen in such a high-stakes international tournament?
I thought it was important to connect it to Beth’s early comments, that the Soviets’ strength was that they could analyze as a team. That’s exactly what happened. That’s where Elizabeth Harmon parts with [Bobby] Fischer, because Fischer was on his own and he never trusted anyone.
Scott said he got calls from his buddies that would say, “Garry did a great job, but it’s impossible for someone to call from New York in 1968 and do it without the KGB collecting all the data.” I still stand by the authenticity, because if we imagine that it was a game played in Moscow in 1968, and all of a sudden somebody calls from New York, it goes through a hotel line and talks to a American player, every word up to a last comma would be recorded by the KGB, but there’s one element that people just cannot evaluate if they never lived there: Yes, It’s recorded, but before information could reach Borgov, it would take much longer because [KBG officers] have to report to their superiors, and considering there were only a couple of hours between the call and the game, there’s no way that information could travel so fast to reach Borgov. So, again, I think we did it as close as possible to real life.
In a similar vein, what about when Elizabeth eavesdrops or when that Russian player consults with the other guy, is that all also within that same realm of accuracy?
Absolutely. They could have consultations. They’ve adjourned. The climax in the book is not concentrated on that, but I think that’s a very important element, because it’s the way that we learn from the opponents. The whole book is about overcoming challenges and learning from opponents and this teamwork. Not typical for Americans. I think that was the one element of her triumph.
One of my colleagues was part of his high school’s chess club, and he used to travel around and play in these tournaments. He said that a lot of the gameplay factors he saw in the show, like the players’ little mannerisms, stares, little tics, the way they move the pieces, were true to his experience. Did you have a hand in re-creating that atmosphere?
I left the American tournaments to Bruce. My advice was about the top events. But I tried to give him as many tips as possible about the way different chess players react. He did a very good job by actually helping to create the atmosphere of American tournaments. I have my friends watching it, and that’s amazingly close to what they experience even today, though today, of course, we have computers, mobile phones, it’s all different. But still, the atmosphere of the tournaments, this excitement, the kids and protégés, is there.
Related to the technology aspect: The Queen’s Gambit is obviously a period piece, set during the Cold War and the 1960s. Do you think a similarly compelling story of chess play could be set in the modern era?
No, no. Chess has changed. This is the beauty of the story, that it belongs to America of the ’60s. It’s like James Bond movies: You can move James Bond, but you see the latest films, they have very little resemblance with the original ones.
The whole story of Elizabeth Harmon, it’s the story of Bobby Fischer, but it’s a female version. You have drugs, substances, and alcohol, but it’s very difficult to uproot it from the ’60s and put it elsewhere. There’s a lot of people talking about the next season. I haven’t spoken to Scott about it, but it’s a big challenge because, A) you don’t have a book, and B) where does she go, from Moscow, from 1968? What’s next? But there might be some pressure on to do a sequel, and if they decide to move in this direction, I’m sure I could be of some help.
Have you ever seen anything like Harmon’s substance dependence and how it factors into gameplay?
Not lately, but in the ’50s, ’60s, ’70s, that was not uncommon. There are at least two world champions that had serious dependence on alcohol: Alexander Alekhine and Mikhail Tal. Today it’s impossible because there’s a level of concentration that you need, not just for the game but for the preparation.
What did you think of the depiction of the Soviet Union, the players, and their dominance of chess in that era?
As close as one can get. You may argue that the top players might be a little bit more reserved, but still, if you look at Borgov and, say, Boris Spassky, for instance, that would be his kind of behavior: friendly, even towards Western players and the atmosphere of his chess fever. And these halls, very high ceilings, that’s Soviet Union. I played my World Championship match against [Anatoly] Karpov in the theaters.
And the commentaries were all very much in line with this tradition. In 1972, PBS had the daily reports regularly, hosted by Shelbourne Lyman. People my age, they can tell you that was one of the most popular shows, if not the most popular show, on PBS in 1972, when Fischer played Spassky.
And the last moments of the show, when she went to the park, that’s typical Soviet tradition.
Could a champion defeat three American players simultaneously like that?
It’s actually possible. Challenging. Possible. Could I do that when I was world champion? I wouldn’t bet on that. I wouldn’t say it’s very likely, but this is within the realm of reality. It’s this psychological factor. You could see that they were shocked and she was very aggressive, dynamic. She’s very quick. At the end of the day, it’s about being quick. She’s very quick. It could be a fair fight considering her concentration and her speed and her ferocity, which is interesting ferocity, and their indecisiveness and I would say fear. Possible.
There are a lot of scenes where Elizabeth is envisioning games in her head up on the ceiling, playing back certain positions. Is that very common among world-class players?
Not common, but I can name a few top players who did, I mean Top 10 players. Some players just did it all the time, especially at the climax of the game. It’s sort of rebooting your computer.
You’ve mentioned how this show compares with other on-screen depictions of chess. You told the New York Times that Mira Nair’s Queen of Katwe was a movie you recommended. Are there other chess films, TV shows, other fictional depictions that you think compare at all to how accurate The Queen’s Gambit is to the experience and to the period?
Searching for Bobby Fischer is a good movie, it’s a good book, but at the end of the day, you don’t have this sense of challenge or urgency. It doesn’t make the world of chess an element of the mainstream. Pawn Sacrifice, about Fischer’s Spassky match and Fischer’s rise, it was also a good movie, but there was nothing that connected the game to the American public or to the people worldwide.
Queen of Katwe comes closer, because, again, it’s about challenge. It’s a real story: When I was traveling across Africa, promoting chess, I was in Kampala twice. I knew the girl. I knew her coach. I did a panel with her at a Women in the World event in New York many years ago. The film deserved actually more recognition. I think it was underrated.
The Queen’s Gambit is different because it’s Kentucky, it’s an orphanage, it’s alcohol, it’s drugs, it’s teamwork. The challenges are so, so real, so modern. And that’s why every conversation I have now, people want more knowledge. I have already three interviews in Russian for just the free Russian press. Everybody is watching it. It’s No. 1 in Russia. God knows how, but somehow Queen’s Gambit just hit all the right buttons.
Thank you so much for all your time. This has been wonderful.
Always happy to promote the game of chess.
');
}
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 = "http://slate.com/",
i = this.t,
s = this.DB - i * this.DB % 4;
if (0 < i--) for (s < this.DB && 0 < (t = this[i] >> s) && (e = !0, r = c(t)); 0 <= i;) {
s < 4 ? (t = (this[i] & (1 << s) - 1) << 4 - s, t |= this[--i] >> (s += this.DB - 4)) : (t = this[i] >> (s -= 4) & 15, s <= 0 && (s += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t));
}
return e ? r : "0";
}, T.prototype.fromHexString = function (t) {
if (null !== t) {
this.t = 0, this.s = 0;
for (var e = t.length, r = !1, i = 0; 0 <= --e;) {
var s = n(t, e);
s < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this[this.t++] = s : i + 4 > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - i) - 1) << i, this[this.t++] = s >> this.DB - i) : this[this.t - 1] |= s << i, (i += 4) >= this.DB && (i -= this.DB));
}
this.clamp(), r && T.ZERO.subTo(this, this);
}
}, T.prototype.negate = function () {
var t = b();
return T.ZERO.subTo(this, t), t;
}, T.prototype.abs = function () {
return this.s < 0 ? this.negate() : this;
}, T.prototype.mod = function (t) {
var e = b();
return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(T.ZERO) && t.subTo(e, e), e;
}, T.prototype.copyTo = function (t) {
for (var e = this.t - 1; 0 <= e; --e) {
t[e] = this[e];
}
t.t = this.t, t.s = this.s;
}, T.prototype.lShiftTo = function (t, e) {
for (var r = t % this.DB, i = this.DB - r, s = (1 << i) - 1, o = Math.floor(t / this.DB), _ = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) {
e[a + o + 1] = this[a] >> i | _, _ = (this[a] & s) << r;
}
for (a = o - 1; 0 <= a; --a) {
e[a] = 0;
}
e[o] = _, e.t = this.t + o + 1, e.s = this.s, e.clamp();
}, T.prototype.invDigit = function () {
if (this.t < 1) return 0;
var t = this[0];
if (0 == (1 & t)) return 0;
var e = 3 & t;
return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e;
}, T.prototype.dlShiftTo = function (t, e) {
for (var r = this.t - 1; 0 <= r; --r) {
e[r + t] = this[r];
}
for (r = t - 1; 0 <= r; --r) {
e[r] = 0;
}
e.t = this.t + t, e.s = this.s;
}, T.prototype.squareTo = function (t) {
for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) {
t[r] = 0;
}
for (r = 0; r < e.t - 1; ++r) {
var i = e.am(r, e[r], t, 2 * r, 0, 1);
(t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}
0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();
}, T.prototype.multiplyTo = function (t, e) {
var r = this.abs(),
i = t.abs(),
s = r.t;
for (e.t = s + i.t; 0 <= --s;) {
e[s] = 0;
}
for (s = 0; s < i.t; ++s) {
e[s + r.t] = r.am(0, i[s], e, s, 0, r.t);
}
e.s = 0, e.clamp(), this.s != t.s && T.ZERO.subTo(e, e);
}, T.prototype.divRemTo = function (t, e, r) {
var i = t.abs();
if (!(i.t <= 0)) {
var s = this.abs();
if (s.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r));
null == r && (r = b());
var o = b(),
_ = this.s,
a = t.s,
n = this.DB - D(i[i.t - 1]);
0 < n ? (i.lShiftTo(n, o), s.lShiftTo(n, r)) : (i.copyTo(o), s.copyTo(r));
var p = o.t,
c = o[p - 1];
if (0 != c) {
var d = c * (1 << this.F1) + (1 < p ? o[p - 2] >> this.F2 : 0),
u = this.FV / d,
h = (1 << this.F1) / d,
l = 1 << this.F2,
f = r.t,
E = f - p,
v = null == e ? b() : e;
for (o.dlShiftTo(E, v), 0 <= r.compareTo(v) && (r[r.t++] = 1, r.subTo(v, r)), T.ONE.dlShiftTo(p, v), v.subTo(o, o); o.t < p;) {
o[o.t++] = 0;
}
for (; 0 <= --E;) {
var m = r[--f] == c ? this.DM : Math.floor(r[f] * u + (r[f - 1] + l) * h);
if ((r[f] += o.am(0, m, r, E, 0, p)) < m) for (o.dlShiftTo(E, v), r.subTo(v, r); r[f] < --m;) {
r.subTo(v, r);
}
}
null != e && (r.drShiftTo(p, e), _ != a && T.ZERO.subTo(e, e)), r.t = p, r.clamp(), 0 < n && r.rShiftTo(n, r), _ < 0 && T.ZERO.subTo(r, r);
}
}
}, T.prototype.rShiftTo = function (t, e) {
e.s = this.s;
var r = Math.floor(t / this.DB);
if (r >= this.t) e.t = 0;else {
var i = t % this.DB,
s = this.DB - i,
o = (1 << i) - 1;
e[0] = this[r] >> i;
for (var _ = r + 1; _ < this.t; ++_) {
e[_ - r - 1] |= (this[_] & o) << s, e[_ - r] = this[_] >> i;
}
0 < i && (e[this.t - r - 1] |= (this.s & o) << s), e.t = this.t - r, e.clamp();
}
}, T.prototype.drShiftTo = function (t, e) {
for (var r = t; r < this.t; ++r) {
e[r - t] = this[r];
}
e.t = Math.max(this.t - t, 0), e.s = this.s;
}, T.prototype.subTo = function (t, e) {
for (var r = 0, i = 0, s = Math.min(t.t, this.t); r < s;) {
i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;
}
if (t.t < this.t) {
for (i -= t.s; r < this.t;) {
i += this[r], e[r++] = i & this.DM, i >>= this.DB;
}
i += this.s;
} else {
for (i += this.s; r < t.t;) {
i -= t[r], e[r++] = i & this.DM, i >>= this.DB;
}
i -= t.s;
}
e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp();
}, T.prototype.clamp = function () {
for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) {
--this.t;
}
}, T.prototype.modPowInt = function (t, e) {
var r = new (t < 256 "http://slate.com/" e.isEven() ? d : h)(e);
return this.exp(t, r);
}, T.prototype.exp = function (t, e) {
if (4294967295 < t "http://slate.com/" t < 1) return T.ONE;
var r,
i = b(),
s = b(),
o = e.convert(this),
_ = D(t) - 1;
for (o.copyTo(i); 0 <= --_;) {
e.sqrTo(i, s), 0 < (t & 1 << _) ? e.mulTo(s, o, i) : (r = i, i = s, s = r);
}
return e.revert(i);
}, T.prototype.isEven = function () {
return 0 == (0 < this.t ? 1 & this[0] : this.s);
}, T.prototype.compareTo = function (t) {
var e = this.s - t.s;
if (0 != e) return e;
var r = this.t;
if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;
for (; 0 <= --r;) {
if (0 != (e = this[r] - t[r])) return e;
}
return 0;
}, T.prototype.am1 = function (t, e, r, i, s, o) {
for (; 0 <= --o;) {
var _ = e * this[t++] + r[i] + s;
s = Math.floor(_ / 67108864), r[i++] = 67108863 & _;
}
return s;
}, T.prototype.am2 = function (t, e, r, i, s, o) {
for (var _ = 32767 & e, a = e >> 15; 0 <= --o;) {
var n = 32767 & this[t],
p = this[t++] >> 15,
c = a * n + p * _;
s = ((n = _ * n + ((32767 & c) << 15) + r[i] + (1073741823 & s)) >>> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;
}
return s;
}, T.prototype.am3 = function (t, e, r, i, s, o) {
for (var _ = 16383 & e, a = e >> 14; 0 <= --o;) {
var n = 16383 & this[t],
p = this[t++] >> 14,
c = a * n + p * _;
s = ((n = _ * n + ((16383 & c) << 14) + r[i] + s) >> 28) + (c >> 14) + a * p, r[i++] = 268435455 & n;
}
return s;
}, T);
function T(t) {
null !== t && this.fromHexString(t);
}
function b() {
return new s(null);
}
function D(t) {
var e,
r = 1;
return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;
}
e.BigInteger = s, e.nbi = b, e.nbits = D;
for (var o = [], _ = "0".charCodeAt(0), a = 0; a <= 9; ++a) {
o[_++] = a;
}
for (_ = "a".charCodeAt(0), a = 10; a < 36; ++a) {
o[_++] = a;
}
for (_ = "A".charCodeAt(0), a = 10; a < 36; ++a) {
o[_++] = a;
}
function n(t, e) {
var r = o[t.charCodeAt(e)];
return null == r ? -1 : r;
}
e.intAt = n;
var p = "0123456789abcdefghijklmnopqrstuvwxyz";
function c(t) {
return p.charAt(t);
}
e.int2char = c;
e.b64toHex = function (t) {
for (var e = "http://slate.com/", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) {
var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s));
o < 0 "http://slate.com/" (r = 0 == r ? (e += c(o >> 2), i = 3 & o, 1) : 1 == r ? (e += c(i << 2 | o >> 4), i = 15 & o, 2) : 2 == r ? (e += c(i), e += c(o >> 2), i = 3 & o, 3) : (e += c(i << 2 | o >> 4), e += c(15 & o), 0));
}
return 1 == r && (e += c(i << 2)), e;
}, e.removeExtraSymbols = function (t) {
return t.replace(/^1f+00/, "http://slate.com/").replace("3031300d060960864801650304020105000420"http://slate.com/,"http://slate.com/");
};
var d = (u.prototype.convert = function (t) {
return t.s < 0 "http://slate.com/" 0 <= t.compareTo(this.m) ? t.mod(this.m) : t;
}, u.prototype.revert = function (t) {
return t;
}, u.prototype.reduce = function (t) {
t.divRemTo(this.m, null, t);
}, u.prototype.mulTo = function (t, e, r) {
t.multiplyTo(e, r), this.reduce(r);
}, u.prototype.sqrTo = function (t, e) {
t.squareTo(e), this.reduce(e);
}, u);
function u(t) {
this.m = t;
}
var h = (l.prototype.convert = function (t) {
var e = b();
return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(s.ZERO) && this.m.subTo(e, e), e;
}, l.prototype.revert = function (t) {
var e = b();
return t.copyTo(e), this.reduce(e), e;
}, l.prototype.reduce = function (t) {
for (; t.t <= this.mt2;) {
t[t.t++] = 0;
}
for (var e = 0; e < this.m.t; ++e) {
var r = 32767 & t[e],
i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {
t[r] -= t.DV, t[++r]++;
}
}
t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t); }, l.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, l.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, l); function l(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t; } function f(t) { var e = b(); return e.fromHexString(t.toString()), e; } e.nbv = f, s.ZERO = f(0), s.ONE = f(1), i = "Microsoft Internet Explorer" == navigator.appName ? (s.prototype.am = s.prototype.am2, 30) : "Netscape" != navigator.appName ? (s.prototype.am = s.prototype.am1, 26) : (s.prototype.am = s.prototype.am3, 28), s.prototype.DB = i, s.prototype.DM = (1 << i) - 1, s.prototype.DV = 1 << i; s.prototype.FV = Math.pow(2, 52), s.prototype.F1 = 52 - i, s.prototype.F2 = 2 * i - 52; }, 379: function _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = (y.hash = function (t) { t = y.utf8Encode(t "http://slate.com/"http://slate.com/"http://slate.com/"); for (var e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], r = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], i = (t += String.fromCharCode(128)).length / 4 + 2, 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("http://slate.com/");
}, y.utf8Encode = function (e) {
try {
return new TextEncoder().encode(e).reduce(function (t, e) {
return t + String.fromCharCode(e);
}, "http://slate.com/");
} catch (t) {
return unescape(encodeURIComponent(e));
}
}, y.ROTR = function (t, e) {
return e >>> t | e << 32 - t;
}, y.z0 = function (t) {
return y.ROTR(2, t) ^ y.ROTR(13, t) ^ y.ROTR(22, t);
}, y.z1 = function (t) {
return y.ROTR(6, t) ^ y.ROTR(11, t) ^ y.ROTR(25, t);
}, y.q0 = function (t) {
return y.ROTR(7, t) ^ y.ROTR(18, t) ^ t >>> 3;
}, y.q1 = function (t) {
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
}, y.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, y.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, y);
function y() {}
e.Sha256 = i;
}
}, [375]);
pbjsChunk([214], {
496: function _(e, r, i) {
e.exports = i(497);
},
497: function _(e, r, i) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), i.d(r, "spec", function () {
return p;
});
var T = i(0),
S = i(2),
v = i(3),
t = i(10),
l = i.n(t),
a = i(498),
n = i.n(a),
s = i(1);
function g(e) {
return (g = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
var o = [S.b, S.d],
y = 100,
b = 300,
h = 3600,
w = !0,
x = {
JPY: 1
};
function C(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") "http://slate.com/"http://slate.com/"string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "http://slate.com/".concat(e.params.size[0], "x").concat(e.params.size[1]) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty("bidFloor") && e.params.hasOwnProperty("bidFloorCur") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r;
}
function d(e) {
return Array.isArray(e) && 2 === e.length && n()(e[0]) && n()(e[1]);
}
function A(e, r) {
if (d(e)) return e[0] === r[0] && e[1] === r[1];
for (var i = 0; i < e.length; i++) { if (e[i][0] === r[0] && e[i][1] === r[1]) return 1; } } function j(e, r, i, t) { var a = [], n = {}, s = e[0].userId; if (s && "object" === g(s) && s.idl_env && function (e, r, i, t, a, n) { if (i) return r[a] = 1, e.push({ source: t, uids: [{ id: i, ext: { rtiPartner: n } }] }); T.logWarn("Tried to add a user ID from Prebid, the ID received was null"); }(a, n, s.idl_env, "liveramp.com"http://slate.com/,"LiveRampIp"http://slate.com/,"idl"), window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var o, d = window.headertag.getIdentityInfo(); if (d && "object" === g(d)) for (var p in d) { d.hasOwnProperty(p) && (n.hasOwnProperty(p) "http://slate.com/" !(o = d[p]).responsePending && o.data && "object" === g(o.data) && Object.keys(o.data).length && a.push(o.data)); } } var m, c = {}; c.id = e[0].bidderRequestId, c.imp = i, c.site = {}, c.ext = {}, c.ext.source = "prebid", e[0].schain && (c.source = { ext: { schain: e[0].schain } }), 0 < a.length && (c.user = {}, c.user.eids = a), document.referrer && "http://slate.com/" !== document.referrer && (c.site.ref = document.referrer), r && (r.gdprConsent && ((m = r.gdprConsent).hasOwnProperty("gdprApplies") && (c.regs = { ext: { gdpr: m.gdprApplies ? 1 : 0 } }), m.hasOwnProperty("consentString") && (c.user = c.user "http://slate.com/" {}, c.user.ext = { consent: m.consentString "http://slate.com/"http://slate.com/"http://slate.com/" })), r.uspConsent && T.deepSetValue(c, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (c.site.page = r.refererInfo.referer)); var u = {}, f = r && r.bidderCode "http://slate.com/"http://slate.com/"ix", l = v.b.getConfig(f); if (l) { if ("object" === g(l.firstPartyData)) { var y = l.firstPartyData, b = "?"; for (var h in y) { y.hasOwnProperty(h) && (b += "http://slate.com/".concat(encodeURIComponent(h), "=").concat(encodeURIComponent(y[h]), "&")); } b = b.slice(0, -1), c.site.page += b; } "number" == typeof l.timeout && (u.t = l.timeout); } return u.s = e[0].params.siteId, u.v = t, u.r = JSON.stringify(c), u.ac = "j", u.sd = 1, 8.1 === t && (u.nf = 1), { method: "GET", url: "https://htlb.casalemedia.com/cygnus", data: u }; } function F(e, r) { for (var i = 0; i < e.length; i++) { if (r[0] == e[i][0] && r[1] == e[i][1]) return e.splice(i, 1), 1; } } var p = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: function isBidRequestValid(e) { if (!d(e.params.size)) return T.logError("ix bidder params: bid size has invalid format."), !1; if (!A(e.sizes, e.params.size)) return T.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !T.contains(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !T.deepAccess(e, "mediaTypes.banner.sizes") && !T.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return T.logError("ix bidder params: siteId must be string or number value."), !1; var r, i, t = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!t && !a "http://slate.com/" t && a && (r = e.params.bidFloor, i = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof i && i.match(/^[A-Z]{3}$/)))) "http://slate.com/" (T.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var i, t, a, n, s, o, d, p, m, c, u, f, l, y = [], b = [], h = [], v = null, g = {}, w = 0; w < e.length; w++) { (v = e[w]).mediaType !== S.d && !T.deepAccess(v, "mediaTypes.video") "http://slate.com/" (v.mediaType === S.d "http://slate.com/" A(v.mediaTypes.video.playerSize, v.params.size) ? h.push(function (e) { var r = C(e); r.video = T.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var i = T.deepAccess(e, "mediaTypes.video.context"); return i && ("instream" === i ? r.video.placement = 1 : "outstream" === i ? r.video.placement = 4 : T.logWarn("ix bidder params: video context "http://slate.com/".concat(i, "http://slate.com/" is not supported"))), r; }(v)) : T.logError("Bid size is not included in video playerSize")), v.mediaType !== S.b && !T.deepAccess(v, "mediaTypes.banner") && (v.mediaType "http://slate.com/" v.mediaTypes) "http://slate.com/" (c = void 0, (c = C(m = v)).banner = {}, c.banner.w = m.params.size[0], c.banner.h = m.params.size[1], c.banner.topframe = T.inIframe() ? 0 : 1, i = c, b.push(i), a = g, n = i, p = d = o = s = void 0, p = (t = v).transactionId, a.hasOwnProperty(p) ? (s = [], a[p].hasOwnProperty("missingSizes") && (s = a[p].missingSizes), F(s, t.params.size), a[p].missingSizes = s) : T.deepAccess(t, "mediaTypes.banner.sizes") && (F(o = T.deepClone(t.mediaTypes.banner.sizes), t.params.size), d = { missingSizes: o, impression: n }, a[p] = d)); } for (var x in g) { if (g.hasOwnProperty(x)) for (var I = g[x].missingSizes, P = 0; P < I.length; P++) { var z = g[x].impression, O = (u = z, f = I[P], l = void 0, (l = T.deepClone(u)).ext.sid = "http://slate.com/".concat(f[0], "x").concat(f[1]), l.banner.w = f[0], l.banner.h = f[1], l); b.push(O); } } return 0 < b.length && y.push(j(e, r, b, 7.2)), 0 < h.length && y.push(j(e, r, h, 8.1)), y; }, interpretResponse: function interpretResponse(e, r) { var i = []; if (!e.hasOwnProperty("body") "http://slate.com/" !e.body.hasOwnProperty("seatbid")) return i; for (var t, a, n, s, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) { if (d[p].hasOwnProperty("bid")) for (var m = d[p].bid, c = JSON.parse(r.data.r), u = 0; u < m.length; u++) { var f = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(m[u].impid, c.imp); t = m[u], a = o.cur, n = f, s = void 0, s = {}, x.hasOwnProperty(a) ? s.cpm = t.price / x[a] : s.cpm = t.price / y, s.requestId = t.impid, s.dealId = T.deepAccess(t, "ext.dealid"), s.netRevenue = w, s.currency = a, s.creativeId = t.hasOwnProperty("crid") ? t.crid : "-", T.deepAccess(t, "ext.vasturl") ? (s.vastUrl = t.ext.vasturl, s.width = n.video.w, s.height = n.video.h, s.mediaType = S.d, s.ttl = h) : (s.ad = t.adm, s.width = t.w, s.height = t.h, s.mediaType = S.b, s.ttl = b), s.meta = {}, s.meta.networkId = T.deepAccess(t, "ext.dspid"), s.meta.brandId = T.deepAccess(t, "ext.advbrandid"), s.meta.brandName = T.deepAccess(t, "ext.advbrand"), t.adomain && 0 < t.adomain.length && (s.meta.advertiserDomains = t.adomain), i.push(s); } } return i; }, transformBidParams: function transformBidParams(e) { return T.convertTypes({ siteID: "number" }, e); }, getUserSyncs: function getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(s.registerBidder)(p); } }, [496]); pbjsChunk([209], { 512: function _(e, t, r) { e.exports = r(513); }, 513: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return l; }); var s = r(0), d = r(3), n = r(1), a = r(7); function g() { return (g = Object.assign "http://slate.com/" function (e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: function isBidRequestValid(e) { return !(!e "http://slate.com/" !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency "http://slate.com/"http://slate.com/"USD", o = {}, i = {}; s._each(e, function (e) { o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes; }), 0 < e.length && e[0].userId && e[0].userId.tdid && (r = e[0].userId.tdid); var c = g({}, { sessionId: l._getSessionId(), requestCount: l._getRequestCount(), timeout: t.timeout, currency: a, cpmGranularity: 1, timestamp: new Date().getTime(), cpmRange: { floor: 0, ceil: 20 }, bidIDs: o, bidSizes: i, prebidRawBidRequests: e }, l._getAllMetadata(r, t.uspConsent)), u = encodeURIComponent(JSON.stringify(c)); return g({}, t, { method: "GET", url: "http://slate.com/".concat("https://krk.kargo.com"http://slate.com/,"/api/v2/bid"), data: "json=".concat(u), currency: a }); }, interpretResponse: function interpretResponse(e, t) { var r = e.body, n = []; for (var a in r) { var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = { clickUrl: o.metadata.landingPageDomain, 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 = "http://slate.com/".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; "http://slate.com/" === a.charAt(0);) { a = a.substring(1, a.length); } if (0 === a.indexOf(t)) return a.substring(t.length, a.length); } return null; }, _getCrbFromCookie: function _getCrbFromCookie() { try { var e = JSON.parse(decodeURIComponent(l._readCookie("krg_crb"))); if (e && e.v) { var t = JSON.parse(atob(e.v)); if (t) return t; } return {}; } catch (e) { return {}; } }, _getCrbFromLocalStorage: function _getCrbFromLocalStorage() { try { return JSON.parse(atob(l._getLocalStorageSafely("krg_crb"))); } catch (e) { return {}; } }, _getCrb: function _getCrb() { var e = l._getCrbFromLocalStorage(); return Object.keys(e).length ? e : l._getCrbFromCookie(); }, _getKruxUserId: function _getKruxUserId() { return l._getLocalStorageSafely("kxkar_user"); }, _getKruxSegments: function _getKruxSegments() { return l._getLocalStorageSafely("kxkar_segs"); }, _getKrux: function _getKrux() { var e = l._getKruxSegments(), t = []; return e && (t = e.split(",")), { userID: l._getKruxUserId(), segments: t }; }, _getLocalStorageSafely: function _getLocalStorageSafely(e) { try { return u.getDataFromLocalStorage(e); } catch (e) { return null; } }, _getUserIds: function _getUserIds(e, t) { var r = l._getCrb(), n = { kargoID: r.userId, clientID: r.clientId, crbIDs: r.syncIds "http://slate.com/" {}, optOut: r.optOut, usp: t }; return e && (n.tdID = e), n; }, _getClientId: function _getClientId() { return l._getCrb().clientId; }, _getAllMetadata: function _getAllMetadata(e, t) { return { userIDs: l._getUserIds(e, t), krux: l._getKrux(), pageURL: window.location.href, rawCRB: l._readCookie("krg_crb"), rawCRBLocalStorage: l._getLocalStorageSafely("krg_crb") }; }, _getSessionId: function _getSessionId() { return o = o "http://slate.com/" l._generateRandomUuid(); }, _getRequestCount: function _getRequestCount() { return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0); }, _generateRandomUuid: function _generateRandomUuid() { try { var e = new Uint8Array(16); crypto.getRandomValues(e), e[6] = -177 & e[6] | 64, e[8] = -65 & e[8] | 128; var t = Array.prototype.map.call(new Uint8Array(e), function (e) { return ("00" + e.toString(16)).slice(-2); }).join("http://slate.com/"); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return "http://slate.com/"; } } }; Object(n.registerBidder)(l); } }, [512]); pbjsChunk([125], { 720: function _(e, r, t) { e.exports = t(721); }, 721: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "spec", function () { return z; }), r.hasVideoMediaType = s, t.d(r, "resetRubiConf", function () { return c; }), r.masSizeOrdering = d, r.determineRubiconVideoSizeId = g, r.getPriceGranularity = v, r.hasValidVideoParams = l, r.hasValidSupplyChainParams = T, r.encodeParam = b, r.resetUserSync = function () { y = !1; }; var S = t(0), i = t(1), I = t(3), u = t(2), n = t(10), C = t.n(n); function j(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) "http://slate.com/" function (e, r) { if ("undefined" == typeof Symbol "http://slate.com/" !(Symbol.iterator in Object(e))) return; var t = [], i = !0, n = !1, o = void 0; try { for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (t.push(a.value), !r "http://slate.com/" t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i "http://slate.com/" null == s.return "http://slate.com/" s.return(); } finally { if (n) throw o; } } return t; }(e, r) "http://slate.com/" function (e, r) { if (!e) return; if ("string" == typeof e) return o(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t "http://slate.com/"http://slate.com/"Set" === t) return Array.from(e); if ("Arguments" === t "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e, r) "http://slate.com/" function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function o(e, r) { (null == r "http://slate.com/" r > e.length) && (r = e.length);
for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function k() { return (k = Object.assign "http://slate.com/" function (e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r]; for (var i in t) { Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); } } return e; }).apply(this, arguments); } function f(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function E(e) { return (E = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var w = {}; I.b.getConfig("rubicon", function (e) { S.mergeDeep(w, e.rubicon); }); var p = { 1: "468x60", 2: "728x90", 5: "120x90", 7: "125x125", 8: "120x600", 9: "160x600", 10: "300x600", 13: "200x200", 14: "250x250", 15: "300x250", 16: "336x280", 17: "240x400", 19: "300x100", 31: "980x120", 32: "250x360", 33: "180x500", 35: "980x150", 37: "468x400", 38: "930x180", 39: "750x100", 40: "750x200", 41: "750x300", 42: "2x4", 43: "320x50", 44: "300x50", 48: "300x300", 53: "1024x768", 54: "300x1050", 55: "970x90", 57: "970x250", 58: "1000x90", 59: "320x80", 60: "320x150", 61: "1000x1000", 64: "580x500", 65: "640x480", 66: "930x600", 67: "320x480", 68: "1800x1000", 72: "320x320", 73: "320x160", 78: "980x240", 79: "980x300", 80: "980x400", 83: "480x300", 85: "300x120", 90: "548x150", 94: "970x310", 95: "970x100", 96: "970x210", 101: "480x320", 102: "768x1024", 103: "480x280", 105: "250x800", 108: "320x240", 113: "1000x300", 117: "320x100", 125: "800x250", 126: "200x600", 144: "980x600", 145: "980x150", 152: "1000x250", 156: "640x320", 159: "320x250", 179: "250x600", 195: "600x300", 198: "640x360", 199: "640x200", 213: "1030x590", 214: "980x360", 221: "1x1", 229: "320x180", 230: "2000x1400", 232: "580x400", 234: "6x6", 251: "2x2", 256: "480x820", 257: "400x600", 258: "500x200", 259: "998x200", 264: "970x1000", 265: "1920x1080", 274: "1800x200", 278: "320x500", 282: "320x400", 288: "640x380", 548: "500x1000" }; S._each(p, function (e, r) { return p[e] = r; }); var z = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== E(e.params)) return !1; for (var r = 0, t = ["accountId"http://slate.com/,"siteId"http://slate.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return S.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i "http://slate.com/" l(e)); }, buildRequests: function buildRequests(e, l) { var n, r = e.filter(function (e) { return "video" === m(e); }).map(function (t) { t.startTime = new Date().getTime(); var e, r, i, n = { id: t.transactionId, test: I.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: t.transactionId }, tmax: l.timeout, imp: [{ exp: I.b.getConfig("s2sConfig.defaultTtl"), id: t.adUnitCode, secure: 1, ext: f({}, t.bidder, t.params), video: S.deepAccess(t, "mediaTypes.video") "http://slate.com/" {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !0 === w.returnVast } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: v(I.b) }, bidders: { rubicon: { integration: w.int_type "http://slate.com/"http://slate.com/"pbjs" } } } } }; if ("rubicon" !== t.bidder && (n.ext.prebid.aliases = f({}, t.bidder, "rubicon")), "function" != typeof t.getFloor "http://slate.com/" w.disableFloors) e = parseFloat(S.deepAccess(t, "params.floor"));else { try { r = t.getFloor({ currency: "USD", mediaType: "video", size: O(t, "video") }); } catch (e) { S.logError("Rubicon: getFloor threw an error: ", e); } e = "object" !== E(r) "http://slate.com/"http://slate.com/"USD" !== r.currency "http://slate.com/" isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor); } isNaN(e) "http://slate.com/" (n.imp[0].bidfloor = e), n.imp[0].ext[t.bidder].video.size_id = g(t), function (r, t, e) { if (!r) return; "object" === E(I.b.getConfig("app")) ? r.app = I.b.getConfig("app") : r.site = { page: R(t, e) }; "object" === E(I.b.getConfig("device")) && (r.device = I.b.getConfig("device")); t.params.video.language && ["site"http://slate.com/,"device"].forEach(function (e) { r[e] && (r[e].content = k({ language: t.params.video.language }, r[e].content)); }); }(n, t, l), function (e, r) { "object" === E(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === E(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === E(e.imp[0].video) && void 0 === e.imp[0].video.pos && ("atf" === r.params.position ? e.imp[0].video.pos = 1 : "btf" === r.params.position && (e.imp[0].video.pos = 3)); var t = O(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(n, t), l.gdprConsent && ("boolean" == typeof l.gdprConsent.gdprApplies && (i = l.gdprConsent.gdprApplies ? 1 : 0), S.deepSetValue(n, "regs.ext.gdpr", i), S.deepSetValue(n, "user.ext.consent", l.gdprConsent.consentString)), l.uspConsent && S.deepSetValue(n, "regs.ext.us_privacy", l.uspConsent); var o, a = S.deepAccess(l, "bids.0.userIdAsEids"); a && a.length && (S.deepSetValue(n, "user.ext.eids", a), (o = C()(n.user.ext.eids, function (e) { return "liveintent.com" === e.source; })) && (S.deepSetValue(n, "user.ext.tpid", { source: o.source, uid: o.uids[0].id }), o.ext && o.ext.segments && S.deepSetValue(n, "rp.target.LIseg", o.ext.segments))); var s = I.b.getConfig("user.id"); s && S.deepSetValue(n, "user.id", s), !0 === I.b.getConfig("coppa") && S.deepSetValue(n, "regs.coppa", 1), t.schain && T(t.schain) && S.deepSetValue(n, "source.ext.schain", t.schain); var c, d = k({}, t.params.inventory, I.b.getConfig("fpd.context")), u = k({}, t.params.visitor, I.b.getConfig("fpd.user")); S.isEmpty(d) && S.isEmpty(u) "http://slate.com/" (c = { bidders: [l.bidderCode], config: { fpd: {} } }, S.isEmpty(d) "http://slate.com/" (c.config.fpd.site = d), S.isEmpty(u) "http://slate.com/" (c.config.fpd.user = u), S.deepSetValue(n, "ext.prebid.bidderconfig.0", c)); var p = S.deepAccess(t, "fpd.context.pbAdSlot"); return "string" == typeof p && p && S.deepSetValue(n.imp[0].ext, "context.data.pbadslot", p), ["name"http://slate.com/,"adSlot"].forEach(function (e) { var r = S.deepAccess(t, "fpd.context.adserver.".concat(e)); "string" == typeof r && r && S.deepSetValue(n.imp[0].ext, "context.data.adserver.".concat(e.toLowerCase()), r); }), t.storedAuctionResponse && S.deepSetValue(n.imp[0], "ext.prebid.storedauctionresponse.id", t.storedAuctionResponse.toString()), S.deepSetValue(n.imp[0], "ext.prebid.auctiontimestamp", l.auctionStart), { method: "POST", url: "https://".concat(w.videoHost "http://slate.com/"http://slate.com/"prebid-server"http://slate.com/,".rubiconproject.com/openrtb2/auction"), data: n, bidRequest: t }; }); return !0 !== w.singleRequest ? r.concat(e.filter(function (e) { return "banner" === m(e); }).map(function (e) { var i = z.createSlotParams(e, l); return { method: "GET", url: "https://".concat(w.bannerHost "http://slate.com/"http://slate.com/"fastlane"http://slate.com/,".rubiconproject.com/a/api/fastlane.json"), data: z.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return S.isStr(t) && "http://slate.com/" !== t "http://slate.com/" S.isNumber(t) ? "http://slate.com/".concat(e).concat(b(r, t), "&") : e; }, "http://slate.com/") + "slots=1&rand=".concat(Math.random()), bidRequest: e }; })) : (n = e.filter(function (e) { return "banner" === m(e); }).reduce(function (e, r) { return (e[r.params.siteId] = e[r.params.siteId] "http://slate.com/" []).push(r), e; }, {}), r.concat(Object.keys(n).reduce(function (r, e) { var t, i; return t = n[e], i = 10, t.map(function (e, r) { return r % i == 0 ? t.slice(r, r + i) : null; }).filter(function (e) { return e; }).forEach(function (e) { var i = z.combineSlotUrlParams(e.map(function (e) { return z.createSlotParams(e, l); })); r.push({ method: "GET", url: "https://".concat(w.bannerHost "http://slate.com/"http://slate.com/"fastlane"http://slate.com/,".rubiconproject.com/a/api/fastlane.json"), data: z.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return S.isStr(t) && "http://slate.com/" !== t "http://slate.com/" S.isNumber(t) ? "http://slate.com/".concat(e).concat(b(r, t), "&") : e; }, "http://slate.com/") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: function getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = ["account_id"http://slate.com/,"site_id"http://slate.com/,"zone_id"http://slate.com/,"size_id"http://slate.com/,"alt_size_ids"http://slate.com/,"p_pos"http://slate.com/,"gdpr"http://slate.com/,"gdpr_consent"http://slate.com/,"us_privacy"http://slate.com/,"rp_schain"http://slate.com/,"tpid_tdid"http://slate.com/,"tpid_liveintent.com"http://slate.com/,"tg_v.LIseg"http://slate.com/,"ppuid"http://slate.com/,"eid_pubcid.org"http://slate.com/,"eid_sharedid.org"http://slate.com/,"eid_criteo.com"http://slate.com/,"rf"http://slate.com/,"p_geo.latitude"http://slate.com/,"p_geo.longitude"http://slate.com/,"kw"].concat(Object.keys(e).filter(function (e) { return r.test(e); })).concat(Object.keys(e).filter(function (e) { return t.test(e); })).concat(["tk_flint"http://slate.com/,"x_source.tid"http://slate.com/,"x_source.pchain"http://slate.com/,"p_screen_res"http://slate.com/,"rp_floor"http://slate.com/,"rp_secure"http://slate.com/,"tk_user_key"]); return i.concat(Object.keys(e).filter(function (e) { return -1 === i.indexOf(e); })); }, combineSlotUrlParams: function combineSlotUrlParams(n) { if (1 === n.length) return n[0]; var i = n.reduce(function (r, t, i) { return Object.keys(t).forEach(function (e) { r.hasOwnProperty(e) "http://slate.com/" (r[e] = new Array(n.length)), r[e].splice(i, 1, t[e]); }), r; }, {}), o = new RegExp("^([^;]*)(;\1)+$"); return Object.keys(i).forEach(function (e) { var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: function createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i, n, o, a, s, c, d = e.params, u = O(e, "banner"), p = j(d.latLong "http://slate.com/" [], 2), l = p[0], f = p[1], m = { account_id: d.accountId, site_id: d.siteId, zone_id: d.zoneId, size_id: u[0], alt_size_ids: u.slice(1).join(",") "http://slate.com/" void 0, rp_floor: .01 < (d.floor = parseFloat(d.floor)) ? d.floor : .01, rp_secure: "1", tk_flint: "http://slate.com/".concat(w.int_type "http://slate.com/"http://slate.com/"pbjs_lite"http://slate.com/,"_v4.13.0"), "x_source.tid": e.transactionId, "x_source.pchain": d.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: d.userId, "p_geo.latitude": isNaN(parseFloat(l)) ? void 0 : parseFloat(l).toFixed(4), "p_geo.longitude": isNaN(parseFloat(f)) ? void 0 : parseFloat(f).toFixed(4), "tg_fl.eid": e.code, rf: R(e, r) }; if ("function" == typeof e.getFloor && !w.disableFloors) { try { t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }); } catch (e) { S.logError("Rubicon: getFloor threw an error: ", e); } m.rp_hard_floor = "object" !== E(t) "http://slate.com/"http://slate.com/"USD" !== t.currency "http://slate.com/" isNaN(parseInt(t.floor)) ? void 0 : t.floor; } m.p_pos = "atf" === d.position "http://slate.com/"http://slate.com/"btf" === d.position ? d.position : "http://slate.com/", e.userIdAsEids && e.userIdAsEids.length && ((i = C()(e.userIdAsEids, function (e) { return "adserver.org" === e.source; })) && (m.tpid_tdid = i.uids[0].id), (n = C()(e.userIdAsEids, function (e) { return "liveintent.com" === e.source; })) && (m["tpid_liveintent.com"] = n.uids[0].id, n.ext && Array.isArray(n.ext.segments) && n.ext.segments.length && (m["tg_v.LIseg"] = n.ext.segments.join(","))), (o = C()(e.userIdAsEids, function (e) { return "liveramp.com" === e.source; })) && (m.x_liverampidl = o.uids[0].id), (a = C()(e.userIdAsEids, function (e) { return "sharedid.org" === e.source; })) && (m["eid_sharedid.org"] = "http://slate.com/".concat(a.uids[0].id, "^").concat(a.uids[0].atype, "^").concat(a.uids[0].ext.third)), (s = C()(e.userIdAsEids, function (e) { return "pubcid.org" === e.source; })) && (m["eid_pubcid.org"] = "http://slate.com/".concat(s.uids[0].id, "^").concat(s.uids[0].atype)), (c = C()(e.userIdAsEids, function (e) { return "criteo.com" === e.source; })) && (m["eid_criteo.com"] = "http://slate.com/".concat(c.uids[0].id, "^").concat(c.uids[0].atype))); var g = I.b.getConfig("user.id"); if (g) m.ppuid = g;else for (var v = 0; e.userIdAsEids && v < e.userIdAsEids.length; v++) { if (e.userIdAsEids[v].uids) { var b = C()(e.userIdAsEids[v].uids, function (e) { return e.ext && "ppuid" === e.ext.stype; }); if (b && b.id) { m.ppuid = b.id; break; } } } r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (m.gdpr = Number(r.gdprConsent.gdprApplies)), m.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (m.us_privacy = encodeURIComponent(r.uspConsent)); var y = k({}, d.visitor, I.b.getConfig("fpd.user")); Object.keys(y).forEach(function (e) { null != y[e] && "keywords" !== e && (m["tg_v.".concat(e)] = "object" !== E(y[e]) "http://slate.com/" Array.isArray(y[e]) ? y[e].toString() : JSON.stringify(y[e])); }); var x = k({}, d.inventory, I.b.getConfig("fpd.context")); Object.keys(x).forEach(function (e) { null != x[e] && "keywords" !== e && (m["tg_i.".concat(e)] = "object" !== E(x[e]) "http://slate.com/" Array.isArray(x[e]) ? x[e].toString() : JSON.stringify(x[e])); }); var h = (d.keywords "http://slate.com/" []).concat(S.deepAccess(I.b.getConfig("fpd.user"), "keywords") "http://slate.com/" [], S.deepAccess(I.b.getConfig("fpd.context"), "keywords") "http://slate.com/" []); m.kw = Array.isArray(h) && h.length ? h.join(",") : "http://slate.com/"; var _ = S.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof _ && _ && (m["tg_i.pbadslot"] = _.replace(/^/+/, "http://slate.com/")); var A = S.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof A && A && (m["tg_i.dfp_ad_unit_code"] = A.replace(/^/+/, "http://slate.com/")), !0 === I.b.getConfig("coppa") && (m.coppa = 1), e.schain && T(e.schain) && (m.rp_schain = z.serializeSupplyChain(e.schain)), m; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!T(e)) return "http://slate.com/"; var r = e.ver, t = e.complete, i = e.nodes; return "http://slate.com/".concat(r, ",").concat(t, "!").concat(z.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"http://slate.com/,"sid"http://slate.com/,"hp"http://slate.com/,"rid"http://slate.com/,"name"http://slate.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] "http://slate.com/"http://slate.com/"http://slate.com/"); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(c, e) { var d = e.bidRequest; if (!(c = c.body) "http://slate.com/"http://slate.com/"object" !== E(c)) return []; if (c.seatbid) { var r = S.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && S.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) { (n.bid "http://slate.com/" []).forEach(function (e) { var r = { requestId: d.bidId, currency: c.cur "http://slate.com/"http://slate.com/"USD", creativeId: e.crid, cpm: e.price "http://slate.com/" 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== w.netRevenue, width: e.w "http://slate.com/" S.deepAccess(d, "mediaTypes.video.w") "http://slate.com/" S.deepAccess(d, "params.video.playerWidth"), height: e.h "http://slate.com/" S.deepAccess(d, "mediaTypes.video.h") "http://slate.com/" S.deepAccess(d, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = S.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), S.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = S.deepAccess(e, "ext.prebid.targeting")) && "object" === E(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === E(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : S.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = c.ads; return "object" !== E(d) "http://slate.com/" Array.isArray(d) "http://slate.com/"http://slate.com/"video" !== m(d) "http://slate.com/"http://slate.com/"object" !== E(t) "http://slate.com/" (t = t[d.adUnitCode]), !Array.isArray(t) "http://slate.com/" t.length < 1 ? [] : t.reduce(function (e, r, t) { if ("ok" !== r.status) return e; var i, n, o, a, s = Array.isArray(d) ? d[t] : d; return s && "object" === E(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id "http://slate.com/"http://slate.com/"http://slate.com/".concat(r.network "http://slate.com/"http://slate.com/"http://slate.com/"http://slate.com/,"-").concat(r.advertiser "http://slate.com/"http://slate.com/"http://slate.com/"), cpm: r.cpm "http://slate.com/" 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== w.netRevenue, rubicon: { advertiserId: r.advertiser, networkId: r.network }, meta: { advertiserId: r.advertiser, networkId: r.network } }, r.creative_type && (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.height = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.ad = (o = r.script, a = r.impression_id, "n
nnx3c!-- Rubicon Project Ad Tag --x3ennn")), n = j(p[r.size_id].split("x").map(function (e) {
return Number(e);
}), 2), i.width = n[0], i.height = n[1]), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : []).reduce(function (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : S.logError("Rubicon: bidRequest undefined at index position:".concat(t), d, c), e;
}, []).sort(function (e, r) {
return (r.cpm "http://slate.com/" 0) - (e.cpm "http://slate.com/" 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!y && e.iframeEnabled) {
var n = "http://slate.com/";
return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Number(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "http://slate.com/".concat(n ? "&" : "?"http://slate.com/,"us_privacy=").concat(encodeURIComponent(i))), y = !0, {
type: "iframe",
url: "https://".concat(w.syncHost "http://slate.com/"http://slate.com/"eus"http://slate.com/,".rubiconproject.com/usync.html") + n
};
}
},
transformBidParams: function transformBidParams(e) {
return S.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};
function R(e, r) {
var t = I.b.getConfig("pageUrl"),
t = e.params.referrer ? e.params.referrer : t "http://slate.com/" r.refererInfo.referer;
return e.params.secure ? t.replace(/^http:/i, "https:") : t;
}
function O(e, r) {
var t = e.params;
if ("video" === r) {
var i = [];
return t.video && t.video.playerWidth && t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(S.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.length ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.length && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].length && (i = e.sizes[0]), i;
}
var n = [];
return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== S.deepAccess(e, "mediaTypes.banner.sizes") ? n = a(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = a(e.sizes) : S.logWarn("Rubicon: no sizes are setup or found"), d(n);
}
function a(e) {
return S.parseSizesInput(e).reduce(function (e, r) {
var t = parseInt(p[r], 10);
return t && e.push(t), e;
}, []);
}
function s(e) {
return "object" === E(S.deepAccess(e, "params.video")) && void 0 !== S.deepAccess(e, "mediaTypes.".concat(u.d));
}
function m(e, r) {
var t = 1 < arguments.length && void 0 !== r && r;
return s(e) ? -1 === ["outstream"http://slate.com/,"instream"].indexOf(S.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && S.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : O(e, "video").length < 2 ? void (t && S.logError("Rubicon: could not determine the playerSize of the video")) : (t && S.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === O(e, "banner").length ? void (t && S.logError("Rubicon: could not determine the sizes for banner request")) : (t && S.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner");
}
var c = function c() {
return w = {};
};
function d(e) {
var n = [15, 2, 9];
return e.sort(function (e, r) {
var t = n.indexOf(e),
i = n.indexOf(r);
return -1 < t "http://slate.com/" -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r;
});
}
function g(e) {
var r = parseInt(S.deepAccess(e, "params.video.size_id"));
return isNaN(r) ? "outstream" === S.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r;
}
function v(e) {
return {
ranges: {
low: [{
max: 5,
increment: .5
}],
medium: [{
max: 20,
increment: .1
}],
high: [{
max: 20,
increment: .01
}],
auto: [{
max: 5,
increment: .05
}, {
min: 5,
max: 10,
increment: .1
}, {
min: 10,
max: 20,
increment: .5
}],
dense: [{
max: 3,
increment: .01
}, {
min: 3,
max: 8,
increment: .05
}, {
min: 8,
max: 20,
increment: .5
}],
custom: e.getConfig("customPriceBucket") && e.getConfig("customPriceBucket").buckets
}[e.getConfig("priceGranularity")]
};
}
function l(r) {
var t = !0,
e = Object.prototype.toString.call([]),
i = Object.prototype.toString.call(0),
n = {
mimes: e,
protocols: e,
maxduration: i,
linearity: i,
api: e
};
return Object.keys(n).forEach(function (e) {
Object.prototype.toString.call(S.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, S.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e]));
}), t;
}
function T(e) {
var r = !1,
t = ["asi"http://slate.com/,"sid"http://slate.com/,"hp"];
return e.nodes && ((r = e.nodes.reduce(function (e, r) {
return e ? t.every(function (e) {
return r.hasOwnProperty(e);
}) : e;
}, !0)) "http://slate.com/" S.logError("Rubicon: required schain params missing")), r;
}
function b(e, r) {
return "rp_schain" === e ? "rp_schain=".concat(r) : "http://slate.com/".concat(e, "=").concat(encodeURIComponent(r));
}
var y = !1;
Object(i.registerBidder)(z);
}
}, [720]);
pbjsChunk([105], {
770: function _(e, t, r) {
e.exports = r(771);
},
771: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "spec", function () {
return a;
}), r.d(t, "_isInbounds", function () {
return m;
}), t._getPlatform = v;
var n = r(1),
y = r(0),
i = r(2),
o = r(3),
g = r(11),
c = r(43);
function h(e, t) {
return function (e) {
if (Array.isArray(e)) return e;
}(e) "http://slate.com/" function (e, t) {
if ("undefined" == typeof Symbol "http://slate.com/" !(Symbol.iterator in Object(e))) return;
var r = [],
n = !0,
i = !1,
s = void 0;
try {
for (var a, o = e[Symbol.iterator](); !(n = (a = o.next()).done) && (r.push(a.value), !t "http://slate.com/" r.length !== t); n = !0) {
;
}
} catch (e) {
i = !0, s = e;
} finally {
try {
n "http://slate.com/" null == o.return "http://slate.com/" o.return();
} finally {
if (i) throw s;
}
}
return r;
}(e, t) "http://slate.com/" function (e, t) {
if (!e) return;
if ("string" == typeof e) return s(e, t);
var r = Object.prototype.toString.call(e).slice(8, -1);
"Object" === r && e.constructor && (r = e.constructor.name);
if ("Map" === r "http://slate.com/"http://slate.com/"Set" === r) return Array.from(e);
if ("Arguments" === r "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t);
}(e, t) "http://slate.com/" function () {
throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function s(e, t) {
(null == t "http://slate.com/" t > e.length) && (t = e.length);
for (var r = 0, n = new Array(t); r < t; r++) {
n[r] = e[r];
}
return n;
}
function d() {
return (d = Object.assign "http://slate.com/" function (e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var n in r) {
Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);
}
}
return e;
}).apply(this, arguments);
}
function 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({}, "http://slate.com/".concat(t, "http://slate.com/"http://slate.com/").concat(e.bidId), "http://slate.com/".concat(l(e)).concat(f(e)))) : /^[0-9a-fA-F]{20}$/.test(t) && 20 === t.length ? u({}, e.bidId, "http://slate.com/".concat(t, "http://slate.com/"http://slate.com/").concat(l(e)).concat(f(e))) : void Object(y.logError)("The ad unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid"));
}),
n = {};
r.forEach(function (e) {
d(n, e);
});
var i = {
key_maker: JSON.stringify(n),
ref: t.refererInfo.referer,
s: Object(y.generateUUID)(),
pv: b,
vp: v(),
lib_name: "prebid",
lib_v: "4.13.0",
us: 0
};
o.b.getConfig("userSync") && o.b.getConfig("userSync").syncsPerBidder && (i.us = o.b.getConfig("userSync").syncsPerBidder), c.a.canBidderRegisterSync("iframe", p) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], "params.hfa") && (i.hfa = Object(y.deepAccess)(e[0], "params.hfa")), e[0].params.referrer && (i.ref = e[0].params.referrer), t && t.gdprConsent && (i.gdpr = t.gdprConsent.gdprApplies ? "true" : "false", t.gdprConsent.consentString && (i.consent_string = t.gdprConsent.consentString)), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).length && (i.userid = JSON.stringify(e[0].userId));
var s = e[0].params.keywords;
if (s && (i.kw = s), t && t.uspConsent && (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null;
var a = "https://apex.go.sonobi.com/trinity.json";
return Object(y.deepAccess)(e[0], "params.bid_request_url") && (a = Object(y.deepAccess)(e[0], "params.bid_request_url")), {
method: "GET",
url: a,
withCredentials: !0,
data: i,
bidderRequests: e
};
},
interpretResponse: function interpretResponse(e, l) {
var f = e.body,
m = [],
v = l.data.ref;
return 0 === Object.keys(f.slots).length "http://slate.com/" Object.keys(f.slots).forEach(function (e) {
var t = f.slots[e],
r = e.split("http://slate.com/"http://slate.com/").slice(-1)[0],
n = function (e, t) {
for (var r = 0; r < e.length; r++) {
if (e[r].bidId === t) return e[r];
}
}(l.bidderRequests, r),
i = null;
"video" === t.sbi_ct && (i = "video"http://slate.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream"));
var s,
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 "http://slate.com/" t.sbi_aid,
aid: t.sbi_aid,
netRevenue: !0,
currency: "USD"
}, t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.ad, delete u.width, delete u.height) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = function (e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
n = g.a.install({
id: t.aid,
url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js",
config: r,
loaded: !1,
adUnitCode: e
});
try {
n.setRender(O);
} catch (e) {
Object(y.logWarn)("Prebid Error calling setRender on renderer", e);
}
return n.setEventHandlers({
impression: function impression() {
return Object(y.logMessage)("Sonobi outstream video impression event");
},
loaded: function loaded() {
return Object(y.logMessage)("Sonobi outstream video loaded event");
},
ended: function ended() {
Object(y.logMessage)("Sonobi outstream renderer video event");
}
}), n;
}(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.options")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p[0]) && (p = p[0]), p && (u.width = p[0], u.height = p[1])), m.push(u));
}), m;
},
getUserSyncs: function getUserSyncs(e, t) {
var r = [];
try {
e.pixelEnabled && t[0].body.sbi_px.forEach(function (e) {
r.push({
type: e.type,
url: e.url
});
});
} catch (e) {}
return r;
}
};
function l(e) {
return Object(y.deepAccess)(e, "mediaTypes.video") ? "http://slate.com/" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).join(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).join(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).join(",") : void 0;
}
function f(e) {
return e.params.floor ? "http://slate.com/"f=".concat(e.params.floor) : "http://slate.com/";
}
var j = function j(i, s) {
return function (e, t) {
return "video" === i "http://slate.com/"http://slate.com/"outstream" === i ? (r = t, n = s, "https://".concat(e, "apex.go.sonobi.com/vast.xml?vid=").concat(r, "&ref=").concat(encodeURIComponent(n))) : '‘;
var r, n;
};
};
var m = function m(e) {
var r = 0 < arguments.length && void 0 !== e ? e : window;
return function () {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0,
t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER;
return r.innerWidth >= e && r.innerWidth < t;
};
};
function v() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : window,
t = m(e),
r = 992,
n = 768;
return t(0, 768) ? "mobile" : t(n, r) ? "tablet" : "desktop";
}
function O(i) {
i.renderer.push(function () {
var e = h(i.getSize().split("x"), 2),
t = e[0],
r = e[1],
n = new window.SbiOutstreamRenderer();
n.init({
vastUrl: i.vastUrl,
height: r,
width: t
}), n.setRootElement(i.adUnitCode);
});
}
Object(n.registerBidder)(a);
}
}, [770]);
pbjsChunk([103], {
780: function _(e, t, r) {
e.exports = r(781);
},
781: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "GOOGLE_CONSENT", function () {
return B;
}), r.d(t, "spec", function () {
return n;
});
var I = r(0),
P = r(3),
u = r(11),
a = r(1),
c = r(2);
function d(e) {
return (d = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
var i = "spotx",
B = {
consented_providers: ["3"http://slate.com/,"7"http://slate.com/,"11"http://slate.com/,"12"http://slate.com/,"15"http://slate.com/,"20"http://slate.com/,"22"http://slate.com/,"35"http://slate.com/,"43"http://slate.com/,"46"http://slate.com/,"48"http://slate.com/,"55"http://slate.com/,"57"http://slate.com/,"61"http://slate.com/,"62"http://slate.com/,"66"http://slate.com/,"70"http://slate.com/,"80"http://slate.com/,"83"http://slate.com/,"85"http://slate.com/,"86"http://slate.com/,"89"http://slate.com/,"93"http://slate.com/,"108"http://slate.com/,"122"http://slate.com/,"124"http://slate.com/,"125"http://slate.com/,"126"http://slate.com/,"131"http://slate.com/,"134"http://slate.com/,"135"http://slate.com/,"136"http://slate.com/,"143"http://slate.com/,"144"http://slate.com/,"147"http://slate.com/,"149"http://slate.com/,"153"http://slate.com/,"154"http://slate.com/,"159"http://slate.com/,"161"http://slate.com/,"162"http://slate.com/,"165"http://slate.com/,"167"http://slate.com/,"171"http://slate.com/,"178"http://slate.com/,"184"http://slate.com/,"188"http://slate.com/,"192"http://slate.com/,"195"http://slate.com/,"196"http://slate.com/,"202"http://slate.com/,"209"http://slate.com/,"211"http://slate.com/,"218"http://slate.com/,"221"http://slate.com/,"228"http://slate.com/,"229"http://slate.com/,"230"http://slate.com/,"236"http://slate.com/,"239"http://slate.com/,"241"http://slate.com/,"253"http://slate.com/,"255"http://slate.com/,"259"http://slate.com/,"266"http://slate.com/,"271"http://slate.com/,"272"http://slate.com/,"274"http://slate.com/,"286"http://slate.com/,"291"http://slate.com/,"294"http://slate.com/,"303"http://slate.com/,"308"http://slate.com/,"310"http://slate.com/,"311"http://slate.com/,"313"http://slate.com/,"314"http://slate.com/,"316"http://slate.com/,"317"http://slate.com/,"322"http://slate.com/,"323"http://slate.com/,"327"http://slate.com/,"336"http://slate.com/,"338"http://slate.com/,"340"http://slate.com/,"348"http://slate.com/,"350"http://slate.com/,"358"http://slate.com/,"359"http://slate.com/,"363"http://slate.com/,"367"http://slate.com/,"370"http://slate.com/,"371"http://slate.com/,"384"http://slate.com/,"385"http://slate.com/,"389"http://slate.com/,"393"http://slate.com/,"394"http://slate.com/,"397"http://slate.com/,"398"http://slate.com/,"407"http://slate.com/,"414"http://slate.com/,"415"http://slate.com/,"424"http://slate.com/,"429"http://slate.com/,"430"http://slate.com/,"432"http://slate.com/,"436"http://slate.com/,"438"http://slate.com/,"440"http://slate.com/,"442"http://slate.com/,"443"http://slate.com/,"445"http://slate.com/,"448"http://slate.com/,"449"http://slate.com/,"453"http://slate.com/,"459"http://slate.com/,"479"http://slate.com/,"482"http://slate.com/,"486"http://slate.com/,"491"http://slate.com/,"492"http://slate.com/,"494"http://slate.com/,"495"http://slate.com/,"503"http://slate.com/,"505"http://slate.com/,"510"http://slate.com/,"522"http://slate.com/,"523"http://slate.com/,"528"http://slate.com/,"537"http://slate.com/,"540"http://slate.com/,"550"http://slate.com/,"559"http://slate.com/,"560"http://slate.com/,"568"http://slate.com/,"571"http://slate.com/,"574"http://slate.com/,"575"http://slate.com/,"576"http://slate.com/,"584"http://slate.com/,"585"http://slate.com/,"587"http://slate.com/,"588"http://slate.com/,"590"http://slate.com/,"591"http://slate.com/,"592"http://slate.com/,"595"http://slate.com/,"609"http://slate.com/,"621"http://slate.com/,"624"http://slate.com/,"723"http://slate.com/,"725"http://slate.com/,"733"http://slate.com/,"737"http://slate.com/,"776"http://slate.com/,"780"http://slate.com/,"782"http://slate.com/,"787"http://slate.com/,"797"http://slate.com/,"798"http://slate.com/,"802"http://slate.com/,"803"http://slate.com/,"814"http://slate.com/,"817"http://slate.com/,"820"http://slate.com/,"821"http://slate.com/,"827"http://slate.com/,"829"http://slate.com/,"839"http://slate.com/,"853"http://slate.com/,"864"http://slate.com/,"867"http://slate.com/,"874"http://slate.com/,"899"http://slate.com/,"904"http://slate.com/,"922"http://slate.com/,"926"http://slate.com/,"931"http://slate.com/,"932"http://slate.com/,"933"http://slate.com/,"938"http://slate.com/,"955"http://slate.com/,"973"http://slate.com/,"976"http://slate.com/,"979"http://slate.com/,"981"http://slate.com/,"985"http://slate.com/,"987"http://slate.com/,"991"http://slate.com/,"1003"http://slate.com/,"1024"http://slate.com/,"1025"http://slate.com/,"1027"http://slate.com/,"1028"http://slate.com/,"1029"http://slate.com/,"1033"http://slate.com/,"1034"http://slate.com/,"1040"http://slate.com/,"1047"http://slate.com/,"1048"http://slate.com/,"1051"http://slate.com/,"1052"http://slate.com/,"1053"http://slate.com/,"1054"http://slate.com/,"1062"http://slate.com/,"1063"http://slate.com/,"1067"http://slate.com/,"1072"http://slate.com/,"1085"http://slate.com/,"1092"http://slate.com/,"1095"http://slate.com/,"1097"http://slate.com/,"1099"http://slate.com/,"1100"http://slate.com/,"1107"http://slate.com/,"1126"http://slate.com/,"1127"http://slate.com/,"1143"http://slate.com/,"1149"http://slate.com/,"1152"http://slate.com/,"1162"http://slate.com/,"1166"http://slate.com/,"1167"http://slate.com/,"1170"http://slate.com/,"1171"http://slate.com/,"1172"http://slate.com/,"1188"http://slate.com/,"1192"http://slate.com/,"1199"http://slate.com/,"1201"http://slate.com/,"1204"http://slate.com/,"1205"http://slate.com/,"1211"http://slate.com/,"1212"http://slate.com/,"1215"http://slate.com/,"1220"http://slate.com/,"1225"http://slate.com/,"1226"http://slate.com/,"1227"http://slate.com/,"1230"http://slate.com/,"1232"http://slate.com/,"1236"http://slate.com/,"1241"http://slate.com/,"1248"http://slate.com/,"1250"http://slate.com/,"1252"http://slate.com/,"1268"http://slate.com/,"1275"http://slate.com/,"1276"http://slate.com/,"1284"http://slate.com/,"1286"http://slate.com/,"1298"http://slate.com/,"1301"http://slate.com/,"1307"http://slate.com/,"1312"http://slate.com/,"1313"http://slate.com/,"1317"http://slate.com/,"1329"http://slate.com/,"1336"http://slate.com/,"1344"http://slate.com/,"1345"http://slate.com/,"1356"http://slate.com/,"1362"http://slate.com/,"1365"http://slate.com/,"1375"http://slate.com/,"1403"http://slate.com/,"1409"http://slate.com/,"1411"http://slate.com/,"1415"http://slate.com/,"1416"http://slate.com/,"1419"http://slate.com/,"1423"http://slate.com/,"1440"http://slate.com/,"1442"http://slate.com/,"1449"http://slate.com/,"1451"http://slate.com/,"1455"http://slate.com/,"1456"http://slate.com/,"1468"http://slate.com/,"1496"http://slate.com/,"1503"http://slate.com/,"1509"http://slate.com/,"1512"http://slate.com/,"1514"http://slate.com/,"1517"http://slate.com/,"1520"http://slate.com/,"1525"http://slate.com/,"1540"http://slate.com/,"1547"http://slate.com/,"1548"http://slate.com/,"1555"http://slate.com/,"1558"http://slate.com/,"1570"http://slate.com/,"1575"http://slate.com/,"1577"http://slate.com/,"1579"http://slate.com/,"1583"http://slate.com/,"1584"http://slate.com/,"1591"http://slate.com/,"1598"http://slate.com/,"1603"http://slate.com/,"1608"http://slate.com/,"1613"http://slate.com/,"1616"http://slate.com/,"1626"http://slate.com/,"1631"http://slate.com/,"1633"http://slate.com/,"1638"http://slate.com/,"1642"http://slate.com/,"1648"http://slate.com/,"1651"http://slate.com/,"1652"http://slate.com/,"1653"http://slate.com/,"1660"http://slate.com/,"1665"http://slate.com/,"1667"http://slate.com/,"1669"http://slate.com/,"1671"http://slate.com/,"1674"http://slate.com/,"1677"http://slate.com/,"1678"http://slate.com/,"1682"http://slate.com/,"1684"http://slate.com/,"1697"http://slate.com/,"1703"http://slate.com/,"1705"http://slate.com/,"1716"http://slate.com/,"1720"http://slate.com/,"1721"http://slate.com/,"1722"http://slate.com/,"1725"http://slate.com/,"1732"http://slate.com/,"1733"http://slate.com/,"1735"http://slate.com/,"1739"http://slate.com/,"1741"http://slate.com/,"1745"http://slate.com/,"1750"http://slate.com/,"1753"http://slate.com/,"1760"http://slate.com/,"1765"http://slate.com/,"1769"http://slate.com/,"1776"http://slate.com/,"1780"http://slate.com/,"1782"http://slate.com/,"1786"http://slate.com/,"1791"http://slate.com/,"1794"http://slate.com/,"1799"http://slate.com/,"1800"http://slate.com/,"1801"http://slate.com/,"1810"http://slate.com/,"1827"http://slate.com/,"1831"http://slate.com/,"1832"http://slate.com/,"1834"http://slate.com/,"1837"http://slate.com/,"1840"http://slate.com/,"1843"http://slate.com/,"1844"http://slate.com/,"1845"http://slate.com/,"1858"http://slate.com/,"1859"http://slate.com/,"1863"http://slate.com/,"1866"http://slate.com/,"1870"http://slate.com/,"1872"http://slate.com/,"1875"http://slate.com/,"1878"http://slate.com/,"1880"http://slate.com/,"1882"http://slate.com/,"1883"http://slate.com/,"1889"http://slate.com/,"1892"http://slate.com/,"1896"http://slate.com/,"1898"http://slate.com/,"1899"http://slate.com/,"1902"http://slate.com/,"1905"http://slate.com/,"1911"http://slate.com/,"1922"http://slate.com/,"1928"http://slate.com/,"1929"http://slate.com/,"1934"http://slate.com/,"1942"http://slate.com/,"1943"http://slate.com/,"1944"http://slate.com/,"1945"http://slate.com/,"1958"http://slate.com/,"1960"http://slate.com/,"1962"http://slate.com/,"1963"http://slate.com/,"1964"http://slate.com/,"1967"http://slate.com/,"1968"http://slate.com/,"1978"http://slate.com/,"1985"http://slate.com/,"1986"http://slate.com/,"1987"http://slate.com/,"1998"http://slate.com/,"2003"http://slate.com/,"2007"http://slate.com/,"2012"http://slate.com/,"2013"http://slate.com/,"2027"http://slate.com/,"2035"http://slate.com/,"2038"http://slate.com/,"2039"http://slate.com/,"2044"http://slate.com/,"2047"http://slate.com/,"2052"http://slate.com/,"2056"http://slate.com/,"2059"http://slate.com/,"2062"http://slate.com/,"2064"http://slate.com/,"2068"http://slate.com/,"2070"http://slate.com/,"2072"http://slate.com/,"2078"http://slate.com/,"2079"http://slate.com/,"2084"http://slate.com/,"2088"http://slate.com/,"2090"http://slate.com/,"2095"http://slate.com/,"2100"http://slate.com/,"2103"http://slate.com/,"2107"http://slate.com/,"2109"http://slate.com/,"2113"http://slate.com/,"2115"http://slate.com/,"2121"http://slate.com/,"2127"http://slate.com/,"2130"http://slate.com/,"2133"http://slate.com/,"2137"http://slate.com/,"2140"http://slate.com/,"2141"http://slate.com/,"2145"http://slate.com/,"2147"http://slate.com/,"2150"http://slate.com/,"2156"http://slate.com/,"2166"http://slate.com/,"2170"http://slate.com/,"2171"http://slate.com/,"2176"http://slate.com/,"2177"http://slate.com/,"2179"http://slate.com/,"2183"http://slate.com/,"2186"http://slate.com/,"2192"http://slate.com/,"2198"http://slate.com/,"2202"http://slate.com/,"2205"http://slate.com/,"2214"http://slate.com/,"2216"http://slate.com/,"2219"http://slate.com/,"2220"http://slate.com/,"2222"http://slate.com/,"2223"http://slate.com/,"2224"http://slate.com/,"2225"http://slate.com/,"2227"http://slate.com/,"2228"http://slate.com/,"2234"http://slate.com/,"2238"http://slate.com/,"2247"http://slate.com/,"2251"http://slate.com/,"2253"http://slate.com/,"2262"http://slate.com/,"2264"http://slate.com/,"2271"http://slate.com/,"2276"http://slate.com/,"2278"http://slate.com/,"2279"http://slate.com/,"2282"http://slate.com/,"2290"http://slate.com/,"2292"http://slate.com/,"2295"http://slate.com/,"2299"http://slate.com/,"2305"http://slate.com/,"2306"http://slate.com/,"2310"http://slate.com/,"2311"http://slate.com/,"2312"http://slate.com/,"2315"http://slate.com/,"2320"http://slate.com/,"2325"http://slate.com/,"2328"http://slate.com/,"2331"http://slate.com/,"2334"http://slate.com/,"2335"http://slate.com/,"2336"http://slate.com/,"2337"http://slate.com/,"2343"http://slate.com/,"2346"http://slate.com/,"2354"http://slate.com/,"2357"http://slate.com/,"2358"http://slate.com/,"2359"http://slate.com/,"2366"http://slate.com/,"2370"http://slate.com/,"2373"http://slate.com/,"2376"http://slate.com/,"2377"http://slate.com/,"2380"http://slate.com/,"2382"http://slate.com/,"2387"http://slate.com/,"2389"http://slate.com/,"2392"http://slate.com/,"2394"http://slate.com/,"2400"http://slate.com/,"2403"http://slate.com/,"2405"http://slate.com/,"2406"http://slate.com/,"2407"http://slate.com/,"2410"http://slate.com/,"2411"http://slate.com/,"2413"http://slate.com/,"2414"http://slate.com/,"2415"http://slate.com/,"2416"http://slate.com/,"2418"http://slate.com/,"2422"http://slate.com/,"2425"http://slate.com/,"2427"http://slate.com/,"2435"http://slate.com/,"2437"http://slate.com/,"2440"http://slate.com/,"2441"http://slate.com/,"2447"http://slate.com/,"2453"http://slate.com/,"2459"http://slate.com/,"2461"http://slate.com/,"2462"http://slate.com/,"2464"http://slate.com/,"2467"http://slate.com/,"2468"http://slate.com/,"2472"http://slate.com/,"2477"http://slate.com/,"2481"http://slate.com/,"2484"http://slate.com/,"2486"http://slate.com/,"2492"http://slate.com/,"2493"http://slate.com/,"2496"http://slate.com/,"2497"http://slate.com/,"2498"http://slate.com/,"2499"http://slate.com/,"2504"http://slate.com/,"2506"http://slate.com/,"2510"http://slate.com/,"2511"http://slate.com/,"2512"http://slate.com/,"2517"http://slate.com/,"2526"http://slate.com/,"2527"http://slate.com/,"2531"http://slate.com/,"2532"http://slate.com/,"2534"http://slate.com/,"2542"http://slate.com/,"2544"http://slate.com/,"2552"http://slate.com/,"2555"http://slate.com/,"2559"http://slate.com/,"2563"http://slate.com/,"2564"http://slate.com/,"2567"http://slate.com/,"2568"http://slate.com/,"2569"http://slate.com/,"2571"http://slate.com/,"2572"http://slate.com/,"2573"http://slate.com/,"2575"http://slate.com/,"2577"http://slate.com/,"2579"http://slate.com/,"2583"http://slate.com/,"2584"http://slate.com/,"2586"http://slate.com/,"2589"http://slate.com/,"2595"http://slate.com/,"2596"http://slate.com/,"2597"http://slate.com/,"2601"http://slate.com/,"2604"http://slate.com/,"2605"http://slate.com/,"2609"http://slate.com/,"2610"http://slate.com/,"2612"http://slate.com/,"2614"http://slate.com/,"2621"http://slate.com/,"2622"http://slate.com/,"2624"http://slate.com/,"2628"http://slate.com/,"2629"http://slate.com/,"2632"http://slate.com/,"2634"http://slate.com/,"2636"http://slate.com/,"2639"http://slate.com/,"2643"http://slate.com/,"2645"http://slate.com/,"2646"http://slate.com/,"2647"http://slate.com/,"2649"http://slate.com/,"2650"http://slate.com/,"2651"http://slate.com/,"2652"http://slate.com/,"2656"http://slate.com/,"2657"http://slate.com/,"2658"http://slate.com/,"2660"http://slate.com/,"2661"http://slate.com/,"2662"http://slate.com/,"2663"http://slate.com/,"2664"http://slate.com/,"2669"http://slate.com/,"2670"http://slate.com/,"2673"http://slate.com/,"2676"http://slate.com/,"2677"http://slate.com/,"2678"http://slate.com/,"2681"http://slate.com/,"2682"http://slate.com/,"2684"http://slate.com/,"2685"http://slate.com/,"2686"http://slate.com/,"2689"http://slate.com/,"2690"http://slate.com/,"2691"http://slate.com/,"2695"http://slate.com/,"2698"http://slate.com/,"2699"http://slate.com/,"2702"http://slate.com/,"2704"http://slate.com/,"2705"http://slate.com/,"2706"http://slate.com/,"2707"http://slate.com/,"2709"http://slate.com/,"2710"http://slate.com/,"2713"http://slate.com/,"2714"http://slate.com/,"2727"http://slate.com/,"2729"http://slate.com/,"2739"http://slate.com/,"2758"http://slate.com/,"2765"http://slate.com/,"2766"http://slate.com/,"2767"http://slate.com/,"2768"http://slate.com/,"2770"http://slate.com/,"2771"http://slate.com/,"2772"http://slate.com/,"2776"http://slate.com/,"2777"http://slate.com/,"2778"http://slate.com/,"2779"http://slate.com/,"2780"http://slate.com/,"2783"http://slate.com/,"2784"http://slate.com/,"2786"http://slate.com/,"2787"http://slate.com/,"2791"http://slate.com/,"2792"http://slate.com/,"2793"http://slate.com/,"2797"http://slate.com/,"2798"http://slate.com/,"2801"http://slate.com/,"2802"http://slate.com/,"2803"http://slate.com/,"2805"http://slate.com/,"2808"http://slate.com/,"2809"http://slate.com/,"2810"http://slate.com/,"2811"http://slate.com/,"2812"http://slate.com/,"2813"http://slate.com/,"2814"http://slate.com/,"2817"http://slate.com/,"2818"http://slate.com/,"2824"http://slate.com/,"2826"http://slate.com/,"2827"http://slate.com/,"2829"http://slate.com/,"2830"http://slate.com/,"2831"http://slate.com/,"2832"http://slate.com/,"2834"http://slate.com/,"2836"http://slate.com/,"2838"http://slate.com/,"2840"http://slate.com/,"2842"http://slate.com/,"2843"http://slate.com/,"2844"http://slate.com/,"2850"http://slate.com/,"2851"http://slate.com/,"2852"http://slate.com/,"2854"http://slate.com/,"2858"http://slate.com/,"2860"http://slate.com/,"2862"http://slate.com/,"2864"http://slate.com/,"2865"http://slate.com/,"2866"http://slate.com/,"2867"http://slate.com/,"2868"http://slate.com/,"2869"http://slate.com/,"2871"]
},
n = {
code: i,
gvlid: 165,
aliases: ["spotx"],
supportedMediaTypes: [c.d],
isBidRequestValid: function isBidRequestValid(e) {
if (e && "object" !== d(e.params)) return I.logError(i + ": params is not defined or is incorrect in the bidder settings."), !1;
if (!I.deepAccess(e, "mediaTypes.video")) return I.logError(i + ": mediaTypes.video is not present in the bidder settings."), !1;
var t = I.deepAccess(e, "mediaTypes.video.playerSize");
if (!t "http://slate.com/" !I.isArray(t)) return I.logError(i + ": mediaTypes.video.playerSize is not defined in the bidder settings."), !1;
if (!I.getBidIdParameter("channel_id", e.params)) return I.logError(i + ": channel_id is not present in bidder params"), !1;
if (("outstream" == I.deepAccess(e, "mediaTypes.video.context") "http://slate.com/"http://slate.com/"outstream" == I.deepAccess(e, "params.ad_unit")) && !I.getBidIdParameter("outstream_function", e.params)) {
if (!I.getBidIdParameter("outstream_options", e.params)) return I.logError(i + ": please define outstream_options parameter or override the default SpotX outstream rendering by defining your own Outstream function using field outstream_function."), !1;
if (!I.getBidIdParameter("slot", e.params.outstream_options)) return I.logError(i + ": please define parameters slot outstream_options object in the configuration."), !1;
}
return !0;
},
buildRequests: function buildRequests(e, h) {
var y = h.refererInfo.referer,
b = !!y.match(/^https:/);
return e.map(function (e) {
var t = I.getBidIdParameter("page", e.params) ? I.getBidIdParameter("page", e.params) : P.b.getConfig("pageUrl") ? P.b.getConfig("pageUrl") : y,
r = I.getBidIdParameter("channel_id", e.params),
a = null,
d = I.deepAccess(e, "mediaTypes.video.playerSize"),
i = d[0][0],
n = d[0][1],
o = b "http://slate.com/" (I.getBidIdParameter("secure", e.params) ? 1 : 0),
s = {
sdk_name: "Prebid 1+",
versionOrtb: "2.3"
};
if ("http://slate.com/" != I.getBidIdParameter("hide_skin", e.params) && (s.hide_skin = +!!I.getBidIdParameter("hide_skin", e.params)), "http://slate.com/" != I.getBidIdParameter("ad_volume", e.params) && (s.ad_volume = I.getBidIdParameter("ad_volume", e.params)), "http://slate.com/" != I.getBidIdParameter("ad_unit", e.params) && (s.ad_unit = I.getBidIdParameter("ad_unit", e.params)), "http://slate.com/" != I.getBidIdParameter("outstream_options", e.params) && (s.outstream_options = I.getBidIdParameter("outstream_options", e.params)), "http://slate.com/" != I.getBidIdParameter("outstream_function", e.params) && (s.outstream_function = I.getBidIdParameter("outstream_function", e.params)), "http://slate.com/" != I.getBidIdParameter("custom", e.params) && (s.custom = I.getBidIdParameter("custom", e.params)), "http://slate.com/" != I.getBidIdParameter("pre_market_bids", e.params) && I.isArray(I.getBidIdParameter("pre_market_bids", e.params))) {
var p = I.getBidIdParameter("pre_market_bids", e.params);
for (var m in (s.pre_market_bids = [], p)) {
var u = p[m],
c = "http://slate.com/";
u.vast_url ? c = '
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) “http://slate.com/” [“application/javascript”http://slate.com/,”video/mp4″http://slate.com/,”video/webm”],
_ = {
id: e.bidId,
secure: o,
video: {
w: i,
h: n,
ext: s,
mimes: g
}
};
“http://slate.com/” != I.getBidIdParameter(“price_floor”, e.params) && (_.bidfloor = I.getBidIdParameter(“price_floor”, e.params)), “http://slate.com/” != I.getBidIdParameter(“start_delay”, e.params) && (_.video.startdelay = 0 + Boolean(I.getBidIdParameter(“start_delay”, e.params))), “http://slate.com/” != I.getBidIdParameter(“min_duration”, e.params) && (_.video.minduration = I.getBidIdParameter(“min_duration”, e.params)), “http://slate.com/” != I.getBidIdParameter(“max_duration”, e.params) && (_.video.maxduration = I.getBidIdParameter(“max_duration”, e.params)), “http://slate.com/” != I.getBidIdParameter(“placement_type”, e.params) && (_.video.ext.placement = I.getBidIdParameter(“placement_type”, e.params)), “http://slate.com/” != I.getBidIdParameter(“position”, e.params) && (_.video.ext.pos = I.getBidIdParameter(“position”, e.params)), e.crumbs && e.crumbs.pubcid && (a = e.crumbs.pubcid);
var l = navigator.language ? “language” : “userLanguage”,
v = {
id: r,
imp: _,
site: {
id: “http://slate.com/”,
page: t,
content: “content”
},
device: {
h: screen.height,
w: screen.width,
dnt: I.getDNT() ? 1 : 0,
language: navigator[l].split(“-“)[0],
make: navigator.vendor ? navigator.vendor : “http://slate.com/”,
ua: navigator.userAgent
},
ext: {
wrap_response: 1
}
};
I.getBidIdParameter(“number_of_ads”, e.params) && (v.ext.number_of_ads = I.getBidIdParameter(“number_of_ads”, e.params));
var f = {};
return 1 == I.getBidIdParameter(“spotx_all_google_consent”, e.params) && (f.consented_providers_settings = B), h && h.gdprConsent && (f.consent = h.gdprConsent.consentString, void 0 !== h.gdprConsent.gdprApplies && I.deepSetValue(v, “regs.ext.gdpr”, h.gdprConsent.gdprApplies ? 1 : 0)), h && h.uspConsent && I.deepSetValue(v, “regs.ext.us_privacy”, h.uspConsent), I.deepAccess(e, “userId.id5id.uid”) && (f.eids = f.eids “http://slate.com/” [], f.eids.push({
source: “id5-sync.com”,
uids: [{
id: e.userId.id5id.uid
}],
ext: e.userId.id5id.ext “http://slate.com/” {}
})), a && (f.fpc = a), e && e.schain && (v.source = {
ext: {
schain: e.schain
}
}), e && e.userId && e.userId.tdid && (f.eids = f.eids “http://slate.com/” [], f.eids.push({
source: “adserver.org”,
uids: [{
id: e.userId.tdid,
ext: {
rtiPartner: “TDID”
}
}]
})), I.isEmpty(f) “http://slate.com/” (v.user = {
ext: f
}), {
method: “POST”,
url: “https://search.spotxchange.com/openrtb/2.3/dados/” + r,
data: v,
bidRequest: h
};
});
},
interpretResponse: function interpretResponse(e, s) {
var p = [],
m = e.body;
return m && I.isArray(m.seatbid) && I._each(m.seatbid, function (e) {
I._each(e.bid, function (t) {
var e = {};
for (var r in s.bidRequest.bids) {
t.impid == s.bidRequest.bids[r].bidId && (e = s.bidRequest.bids[r]);
}
I._each(e.params.pre_market_bids, function (e) {
e.deal_id == t.id && (t.price = e.price, m.cur = e.currency);
});
var a = {
requestId: e.bidId,
currency: m.cur “http://slate.com/”http://slate.com/”USD”,
cpm: t.price,
creativeId: t.crid “http://slate.com/”http://slate.com/”http://slate.com/”,
dealId: t.dealid “http://slate.com/”http://slate.com/”http://slate.com/”,
ttl: 360,
netRevenue: !0,
channel_id: m.id,
cache_key: t.ext.cache_key,
vastUrl: “https://search.spotxchange.com/ad/vast.html?key=” + t.ext.cache_key,
videoCacheKey: t.ext.cache_key,
mediaType: c.d,
width: t.w,
height: t.h
};
a.meta = a.meta “http://slate.com/” {}, t && t.adomain && 0 < t.adomain.length && (a.meta.advertiserDomains = t.adomain);
var d = I.deepAccess(e, "mediaTypes.video.context"),
i = I.deepAccess(e, "params.ad_unit");
if ("outstream" == d "http://slate.com/"http://slate.com/"outstream" == i) {
var n = I.deepAccess(e, "mediaTypes.video.playerSize"),
o = u.a.install({
id: 0,
url: "//",
config: {
adText: "SpotX Outstream Video Ad via Prebid.js",
player_width: n[0][0],
player_height: n[0][1],
content_page_url: I.deepAccess(s, "data.site.page"),
ad_mute: +!!I.deepAccess(e, "params.ad_mute"),
hide_skin: +!!I.deepAccess(e, "params.hide_skin"),
outstream_options: I.deepAccess(e, "params.outstream_options"),
outstream_function: I.deepAccess(e, "params.outstream_function")
}
});
try {
o.setRender(g), o.setEventHandlers({
impression: function impression() {
return I.logMessage("SpotX outstream video impression event");
},
loaded: function loaded() {
return I.logMessage("SpotX outstream video loaded event");
},
ended: function ended() {
I.logMessage("SpotX outstream renderer video event");
}
});
} catch (e) {
I.logWarn("Prebid Error calling setRender or setEve,tHandlers on renderer", e);
}
a.renderer = o;
}
p.push(a);
});
}), p;
}
};
function g(e) {
var t = function (e) {
var t = I.getBidIdParameter("slot", e.renderer.config.outstream_options);
I.logMessage("[SPOTX][renderer] Handle SpotX outstream renderer");
var r = window.document.createElement("script");
r.type = "text/javascript", r.src = "https://js.spotx.tv/easi/v1/" + e.channel_id + ".js";
var a = {};
a["data-spotx_channel_id"] = "http://slate.com/" + e.channel_id, a["data-spotx_vast_url"] = "http://slate.com/" + e.vastUrl, a["data-spotx_content_page_url"] = e.renderer.config.content_page_url, a["data-spotx_ad_unit"] = "incontent", I.logMessage("[SPOTX][renderer] Default beahavior"), I.getBidIdParameter("ad_mute", e.renderer.config.outstream_options) && (a["data-spotx_ad_mute"] = "1"), a["data-spotx_collapse"] = "0", a["data-spotx_autoplay"] = "1", a["data-spotx_blocked_autoplay_override_mode"] = "1", a["data-spotx_video_slot_can_autoplay"] = "1";
var d,
i,
n,
o,
s,
p,
m = I.getBidIdParameter("playersize_auto_adapt", e.renderer.config.outstream_options);
m && I.isBoolean(m) && !0 === m && (e.width && I.isNumber(e.width) && e.height && I.isNumber(e.height) ? (d = e.width / e.height, i = window.document.getElementById(t).clientWidth, n = e.renderer.config.player_width, o = e.renderer.config.player_height, p = s = 0, i < n && (o = (n = i) / d), p = d <= 1 ? (s = Math.round(o * d), o) : (s = n, Math.round(n / d)), a["data-spotx_content_width"] = "http://slate.com/" + s, a["data-spotx_content_height"] = "http://slate.com/" + p) : I.logWarn("[SPOTX][renderer] PlayerSize auto adapt: bid.width and bid.height are incorrect"));
var u = I.getBidIdParameter("custom_override", e.renderer.config.outstream_options);
if (u && I.isPlainObject(u)) for (var c in (I.logMessage("[SPOTX][renderer] Custom behavior."), u)) {
u.hasOwnProperty(c) && ("channel_id" === c "http://slate.com/"http://slate.com/"vast_url" === c "http://slate.com/"http://slate.com/"content_page_url" === c "http://slate.com/"http://slate.com/"ad_unit" === c ? I.logWarn("[SPOTX][renderer] Custom behavior: following option cannot be overridden: " + c) : a["data-spotx_" + c] = u[c]);
}
for (var g in a) {
a.hasOwnProperty(g) && r.setAttribute(g, a[g]);
}
return r;
}(e);
if (null != e.renderer.config.outstream_function && "function" == typeof e.renderer.config.outstream_function) e.renderer.config.outstream_function(e, t);else try {
var r,
a,
d,
i = I.getBidIdParameter("in_iframe", e.renderer.config.outstream_options);
i && "IFRAME" == window.document.getElementById(i).nodeName ? (!(a = (r = window.document.getElementById(i)).contentDocument) && r.contentWindow && (a = r.contentWindow.document), a.body.appendChild(t)) : (d = I.getBidIdParameter("slot", e.renderer.config.outstream_options)) && window.document.getElementById(d) ? window.document.getElementById(d).appendChild(t) : window.document.getElementsByTagName("head")[0].appendChild(t);
} catch (e) {
I.logError("[SPOTX][renderer] Error:" + e.message);
}
}
Object(a.registerBidder)(n);
}
}, [780]);
pbjsChunk([96], {
796: function _(e, t, r) {
e.exports = r(797);
},
797: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "spec", function () {
return i;
});
var n = r(1),
a = r(0),
p = 12,
c = 11,
u = 0,
g = 22,
i = {
code: "teads",
supportedMediaTypes: ["video"http://slate.com/,"banner"],
isBidRequestValid: function isBidRequestValid(e) {
var t,
r,
n = !1;
return void 0 !== e.params && (t = s(a.getValue(e.params, "placementId")), r = s(a.getValue(e.params, "pageId")), n = t && r), n "http://slate.com/" a.logError("Teads placementId and pageId parameters are required. Bid aborted."), n;
},
buildRequests: function buildRequests(e, t) {
var r,
n = e.map(f),
i = {
referrer: function (e) {
var t = "http://slate.com/";
e && e.refererInfo && e.refererInfo.referer && (t = e.refererInfo.referer);
return t;
}(t),
pageReferrer: document.referrer,
networkBandwidth: (r = window.navigator) && r.connection && 0 <= r.connection.downlink ? r.connection.downlink.toString() : "http://slate.com/",
timeToFirstByte: function (e) {
var t = e.performance "http://slate.com/" e.webkitPerformance "http://slate.com/" e.msPerformance "http://slate.com/" e.mozPerformance,
r = t && "function" == typeof t.getEntriesByType && "[object Function]" === Object.prototype.toString.call(t.getEntriesByType) && t.getEntriesByType("navigation")[0] && t.getEntriesByType("navigation")[0].responseStart && t.getEntriesByType("navigation")[0].requestStart && 0 < t.getEntriesByType("navigation")[0].responseStart && 0 < t.getEntriesByType("navigation")[0].requestStart && Math.round(t.getEntriesByType("navigation")[0].responseStart - t.getEntriesByType("navigation")[0].requestStart);
if (r) return r.toString();
var n = t && t.timing.responseStart && t.timing.requestStart && 0 < t.timing.responseStart && 0 < t.timing.requestStart && t.timing.responseStart - t.timing.requestStart;
return n ? n.toString() : "http://slate.com/";
}(window),
data: n,
deviceWidth: screen.width,
hb_version: "4.13.0"
};
e[0].schain && (i.schain = e[0].schain);
var a,
s,
o,
d = t.gdprConsent;
return t && d && (a = "boolean" == typeof d.gdprApplies, s = "string" == typeof d.consentString, o = a ? function (e, t, r) {
var n = p;
e ? function (e, t) {
return e && 1 === t ? e.hasGlobalScope "http://slate.com/" e.hasGlobalConsent : !(!e "http://slate.com/" 2 !== t) && !e.isServiceSpecific;
}(t, r) && (n = c) : n = u;
return n;
}(d.gdprApplies, d.vendorData, d.apiVersion) : g, i.gdpr_iab = {
consent: s ? d.consentString : "http://slate.com/",
status: o,
apiVersion: d.apiVersion
}), t && t.uspConsent && (i.us_privacy = t.uspConsent), {
method: "POST",
url: "https://a.teads.tv/hb/bid-request",
data: JSON.stringify(i)
};
},
interpretResponse: function interpretResponse(e) {
var r = [];
return (e = e.body).responses && e.responses.forEach(function (e) {
var t = {
cpm: e.cpm,
width: e.width,
height: e.height,
currency: e.currency,
netRevenue: !0,
ttl: e.ttl,
ad: e.ad,
requestId: e.bidId,
creativeId: e.creativeId,
placementId: e.placementId
};
e.dealId && (t.dealId = e.dealId), r.push(t);
}), r;
}
};
function f(e) {
var t,
r = {},
n = a.getValue(e.params, "placementId"),
i = a.getValue(e.params, "pageId");
return r.sizes = (t = e, a.parseSizesInput(function (e) {
var t = a.deepAccess(e, "mediaTypes.video.playerSize"),
r = a.deepAccess(e, "mediaTypes.video.sizes"),
n = a.deepAccess(e, "mediaTypes.banner.sizes");
return a.isArray(n) "http://slate.com/" a.isArray(t) "http://slate.com/" a.isArray(r) ? [n, r, t].reduce(function (t, e) {
return a.isArray(e) && (a.isArray(e[0]) ? e.forEach(function (e) {
t.push(e);
}) : t.push(e)), t;
}, []) : e.sizes;
}(t))), r.bidId = a.getBidIdParameter("bidId", e), r.bidderRequestId = a.getBidIdParameter("bidderRequestId", e), r.placementId = parseInt(n, 10), r.pageId = parseInt(i, 10), r.adUnitCode = a.getBidIdParameter("adUnitCode", e), r.auctionId = a.getBidIdParameter("auctionId", e), r.transactionId = a.getBidIdParameter("transactionId", e), r;
}
function s(e) {
return 0 < parseInt(e);
}
Object(n.registerBidder)(i);
}
}, [796]);
pbjsChunk([87], {
816: function _(e, r, t) {
e.exports = t(817);
},
817: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "tripleliftAdapterSpec", function () {
return m;
});
var n = t(2),
i = t(1),
u = t(0),
a = t(3);
function p() {
return (p = Object.assign "http://slate.com/" function (e) {
for (var r = 1; r < arguments.length; r++) {
var t = arguments[r];
for (var n in t) {
Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
}
}
return e;
}).apply(this, arguments);
}
function c(e) {
return (c = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
function d(r, e) {
var t,
n = Object.keys(r);
return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) {
return Object.getOwnPropertyDescriptor(r, e).enumerable;
})), n.push.apply(n, t)), n;
}
function s(i) {
for (var e = 1; e < arguments.length; e++) {
var o = null != arguments[e] ? arguments[e] : {};
e % 2 ? d(Object(o), !0).forEach(function (e) {
var r, t, n;
r = i, n = o[t = e], t in r ? Object.defineProperty(r, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : r[t] = n;
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(o)) : d(Object(o)).forEach(function (e) {
Object.defineProperty(i, e, Object.getOwnPropertyDescriptor(o, e));
});
}
return i;
}
function f(e) {
return function (e) {
if (Array.isArray(e)) return o(e);
}(e) "http://slate.com/" function (e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);
}(e) "http://slate.com/" function (e, r) {
if (!e) return;
if ("string" == typeof e) return o(e, r);
var t = Object.prototype.toString.call(e).slice(8, -1);
"Object" === t && e.constructor && (t = e.constructor.name);
if ("Map" === t "http://slate.com/"http://slate.com/"Set" === t) return Array.from(e);
if ("Arguments" === t "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r);
}(e) "http://slate.com/" function () {
throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function o(e, r) {
(null == r "http://slate.com/" r > e.length) && (r = e.length);
for (var t = 0, n = new Array(r); t < r; t++) {
n[t] = e[t];
}
return n;
}
var y = !0,
l = null,
m = {
code: "triplelift",
supportedMediaTypes: [n.b, n.d],
isBidRequestValid: function isBidRequestValid(e) {
if (e.mediaTypes.video) {
var r = b(e);
if (!r.w "http://slate.com/" !r.h) return !1;
}
return void 0 !== e.params.inventoryCode;
},
buildRequests: function buildRequests(e, r) {
var t,
n = "https://tlx.3lift.com/header/auction?",
i = function (e) {
var r = {},
t = e[0].schain,
n = function () {
var e = {},
r = p({}, a.b.getConfig("fpd.context")),
t = p({}, a.b.getConfig("fpd.user"));
return g(e, r), g(e, t), e;
}();
r.imp = e.map(function (e, r) {
var t = {
id: r,
tagid: e.params.inventoryCode,
floor: function (e) {
var r = null;
{
var t;
"function" == typeof e.getFloor && ("object" !== c(t = e.getFloor({
currency: "USD",
mediaType: "banner",
size: S(e.sizes)
})) "http://slate.com/"http://slate.com/"USD" !== t.currency "http://slate.com/" isNaN(parseFloat(t.floor)) "http://slate.com/" (r = parseFloat(t.floor)));
}
return null !== r ? r : e.params.floor;
}(e)
};
return !function (e) {
if (!e.mediaTypes.video) return !1;
if (!e.mediaTypes.video.context) return !1;
return "instream" === e.mediaTypes.video.context.toLowerCase();
}(e) ? e.mediaTypes.banner && (t.banner = {
format: S(e.sizes)
}) : t.video = b(e), t;
});
var i = [].concat(f(function (e) {
return v(e, "tdid"http://slate.com/,"adserver.org"http://slate.com/,"TDID");
}(e)), f(function (e) {
return v(e, "idl_env"http://slate.com/,"liveramp.com"http://slate.com/,"idl");
}(e)), f(function (e) {
return v(e, "criteoId"http://slate.com/,"criteo.com"http://slate.com/,"criteoId");
}(e)));
0 < i.length && (r.user = {
ext: {
eids: i
}
});
var o = function (e, r) {
var t = {};
u.isEmpty(e) "http://slate.com/" (t.schain = s({}, e));
u.isEmpty(r) "http://slate.com/" (t.fpd = s({}, r));
return t;
}(t, n);
u.isEmpty(o) "http://slate.com/" (r.ext = o);
return r;
}(e);
return n = u.tryAppendQueryString(n, "lib"http://slate.com/,"prebid"), n = u.tryAppendQueryString(n, "v"http://slate.com/,"4.13.0"), r && r.refererInfo && (t = r.refererInfo.referer, n = u.tryAppendQueryString(n, "referrer", t)), r && r.timeout && (n = u.tryAppendQueryString(n, "tmax", r.timeout)), r && r.gdprConsent && (void 0 !== r.gdprConsent.gdprApplies && (y = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", y.toString())), void 0 !== r.gdprConsent.consentString && (l = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", l))), r && r.uspConsent && (n = u.tryAppendQueryString(n, "us_privacy", r.uspConsent)), !0 === a.b.getConfig("coppa") && (n = u.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), u.logMessage("tlCall request built: " + n), {
method: "POST",
url: n,
data: i,
bidderRequest: r
};
},
interpretResponse: function interpretResponse(e, r) {
var t = r.bidderRequest;
return (e.body.bids "http://slate.com/" []).map(function (e) {
return function (e, r) {
var t = {},
n = r.width "http://slate.com/" 1,
i = r.height "http://slate.com/" 1,
o = r.deal_id "http://slate.com/"http://slate.com/"http://slate.com/",
u = r.crid "http://slate.com/"http://slate.com/"http://slate.com/",
a = e.bids[r.imp_id];
0 != r.cpm && r.ad && (t = {
requestId: a.bidId,
cpm: r.cpm,
width: n,
height: i,
netRevenue: !0,
ad: r.ad,
creativeId: u,
dealId: o,
currency: "USD",
ttl: 300,
tl_source: r.tl_source,
meta: {}
}, a.mediaTypes.video && (t.vastXml = r.ad, t.mediaType = "video"), r.advertiser_name && (t.meta.advertiserName = r.advertiser_name));
return t;
}(t, e);
});
},
getUserSyncs: function getUserSyncs(e, r, t, n) {
var i = function (e) {
if (!e) return;
if (e.iframeEnabled) return "iframe";
if (e.pixelEnabled) return "image";
}(e);
if (i) {
var o = "https://eb2.3lift.com/sync?";
return "image" === i && (o = u.tryAppendQueryString(o, "px", 1), o = u.tryAppendQueryString(o, "src"http://slate.com/,"prebid")), null !== l && (o = u.tryAppendQueryString(o, "gdpr", y), o = u.tryAppendQueryString(o, "cmp_cs", l)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [{
type: i,
url: o
}];
}
}
};
function b(e) {
var r = s(s({}, e.params.video), e.mediaTypes.video);
return r.w "http://slate.com/" (r.w = r.playerSize[0][0]), r.h "http://slate.com/" (r.h = r.playerSize[0][1]), "instream" === r.context && (r.placement = 1), delete r.playerSize, r;
}
function g(r, t) {
u.isEmpty(t) "http://slate.com/" Object.keys(t).forEach(function (e) {
null != t[e] && (r[e] = t[e]);
});
}
function v(e, r, t, n) {
return e.map((u = r, function (e) {
return e && e.userId && e.userId[u];
})).filter(function (e) {
return !!e;
}).map((i = t, o = n, function (e) {
return {
source: i,
uids: [{
id: e,
ext: {
rtiPartner: o
}
}]
};
}));
var i, o, u;
}
function S(e) {
return e.filter(h).map(function (e) {
return {
w: e[0],
h: e[1]
};
});
}
function h(e) {
return 2 === e.length && "number" == typeof e[0] && "number" == typeof e[1];
}
Object(i.registerBidder)(m);
}
}, [816]);
pbjs.processQueue();
}, {}];
window.modules["via.legacy"] = [function(require,module,exports){"use strict";
DS.service("via", function () {
"use strict"; // remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls
function removeFromLocation() {
var url = new URL(location.href);
url.searchParams.delete("via");
history.replaceState(null, "http://slate.com/", url.toString());
} // and add `via` param to any outbound links
function addViaToUrl(href, via) {
if (!href "http://slate.com/" href.substr(0, 1) === "#") {
return href; // don't add to jumps on the current page, e.g. "Skip to main content"
}
var url = new URL(href);
var apexDomain = new URL(location.href).hostname.split(".").slice(-2).join(".");
if (url.hostname.indexOf(apexDomain) === -1) {
return href; // don't add it to external links
}
url.searchParams.set("via", via);
return url.toString();
} // keys correspond to "page_types" in editable_components.yml
var PREFIXES = {
article: "article",
homepage: "homepage",
"vertical front": "section",
"rubric front": "rubric"
};
var pageType;
function setPageType(amplitudePageType) {
pageType = PREFIXES[amplitudePageType];
}
var DELIMITER = "_";
function concatVia(node, via) {
var tag = node.dataset && node.dataset.via;
if (tag) {
via = (via.length ? tag + DELIMITER : tag) + via;
}
return via;
}
function addToClickedLinks() {
document.documentElement.addEventListener("click", function (e) {
var a;
var via = "http://slate.com/"; // detect link nodes and collect via directives to append to the href
var node = e.target; // the element where this event originated may have been removed from the dom, e.g. in the case of the OIL CMP which disappears after you interact with it
while (node && node !== e.currentTarget) {
if (node.tagName === "A") {
a = node;
}
via = concatVia(node, via);
node = node.parentNode;
}
if (a && via) {
if (pageType) {
via = pageType + DELIMITER + via;
}
a.href = addViaToUrl(a.href, via);
}
});
}
function addToSubmittedForms() {
document.documentElement.addEventListener("submit", function (e) {
var form = e.target; // collect via directives
var via = "http://slate.com/";
var node = e.target;
while (node !== e.currentTarget) {
via = concatVia(node, via);
node = node.parentNode;
}
if (via) {
if (pageType) {
via = pageType + DELIMITER + via;
} // dynamically create a hidden input for the form url
var input = document.createElement("input");
input.type = "hidden";
input.name = "via";
input.value = via;
form.appendChild(input);
}
});
} // start listening only once, when first injected
addToClickedLinks();
addToSubmittedForms();
return {
setPageType: setPageType,
removeFromLocation: removeFromLocation
};
});
}, {}];
window.modules["visibility.legacy"] = [function(require,module,exports){"use strict";
DS.service("$visibility", ["$document"http://slate.com/,"$window"http://slate.com/,"_throttle"http://slate.com/,"Eventify", function ($document, $window, _throttle, Eventify) {
var list = [],
Visible,
VisibleEvent;
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function min(a, b) {
return a < b ? a : b;
}
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function max(a, b) {
return a > b ? a : b;
}
/**
* Fast loop through watched elements
*/
function onScroll() {
list.forEach(updateVisibility);
}
/**
* updates seen property
* @param {Visble} item
* @param {{}} evt
* @fires Visible#shown
* @fires Visible#hidden
*/
function updateSeen(item, evt) {
var px = evt.visiblePx,
percent = evt.visiblePercent; // if some pixels are visible and we’re greater/equal to threshold
if (px && percent >= item.shownThreshold && !item.seen) {
item.seen = true;
setTimeout(function () {
item.trigger(“shown”, new VisibleEvent(“shown”, evt));
}, 15); // if no pixels or percent is less than threshold
} else if ((!px “http://slate.com/” percent < item.hiddenThreshold) && item.seen) {
item.seen = false;
setTimeout(function () {
item.trigger("hidden", new VisibleEvent("hidden", evt));
}, 15);
}
}
/**
* sets preload property
* @param {Visible} item
* @param {{}} evt
* @param {Number} innerHeight
* @fires Visible#preload
*/
function updatePreload(item, evt, innerHeight) {
if (!item.preload && item.preloadThreshhold && shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight)) {
item.preload = true;
setTimeout(function () {
item.trigger("preload", new VisibleEvent("preload", evt));
}, 15);
}
}
/**
* Trigger events
* @param {Visible} item
*/
function updateVisibility(item) {
var rect = item.el.getBoundingClientRect(),
innerHeight = $window.innerHeight "http://slate.com/" $document.documentElement.clientHeight,
px = getVerticallyVisiblePixels(rect, innerHeight),
percent = px / (rect.height "http://slate.com/" innerHeight),
evt = {
target: item.el,
rect: rect,
visiblePx: px,
visiblePercent: percent
};
updateSeen(item, evt);
updatePreload(item, evt, innerHeight);
}
/**
* Return normalized viewport height
* @return {number}
*/
function getViewportHeight() {
return $window.innerHeight "http://slate.com/" $document.documentElement.clientHeight "http://slate.com/" $document.body.clientHeight;
}
/**
* Return normalized viewport width
* @return {number}
*/
function getViewportWidth() {
return $window.innerWidth "http://slate.com/" $document.documentElement.clientWidth "http://slate.com/" $document.body.clientWidth;
}
/**
* make sure an element isn't hidden by styles or etc
* @param {Element} el
* @return {Boolean}
*/
function isElementNotHidden(el) {
return el && el.offsetParent !== null && !el.getAttribute("hidden") && getComputedStyle(el).display !== "none" && getComputedStyle(el).visibility !== "hidden";
}
/**
* Apparently the fastest way...
* @param {Element} el
* @returns {boolean}
* @example if (!$visibility.isElementInViewport(el)) { ... }
*/
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return rect.top >= 0 && rect.left >= 0 && rect.bottom <= ($window.innerHeight "http://slate.com/" $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth "http://slate.com/" $document.documentElement.clientWidth);
}
/**
* @param {Element} el
* @param {ClientRect} rect
* @param {Number} preloadThreshhold
* @param {Number} innerHeight
* @return {Boolean}
*/
function shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) {
return rect.top <= innerHeight + preloadThreshhold && isElementNotHidden(el);
}
/**
* Create a one-dimensional spacial hash of x
* @param {number} x
* @param {number} stepSize
* @param {number} optimalK
* @param {number} base
* @return {number}
*/
function getLinearSpacialHash(x, stepSize, optimalK, base) {
var index = Math.floor(x / (stepSize "http://slate.com/" 1)),
remainder = x % stepSize,
result = index.toString(base);
if (optimalK > 1) {
result += getLinearSpacialHash(remainder, Math.floor(stepSize / base), optimalK – 1, base);
}
return result;
}
/**
* @param {ClientRect} rect
* @param {number} innerHeight
* @returns {number}
*/
function getVerticallyVisiblePixels(rect, innerHeight) {
return min(innerHeight, max(rect.bottom, 0)) – min(max(rect.top, 0), innerHeight);
}
/**
* Get offset of element relative to entire page
*
* @param {Element} el
* @returns {{left: number, top: number}}
* @see http://jsperf.com/offset-vs-getboundingclientrect/7
*/
function getPageOffset(el) {
var offsetLeft = el.offsetLeft,
offsetTop = el.offsetTop;
while (el = el.offsetParent) {
offsetLeft += el.offsetLeft;
offsetTop += el.offsetTop;
}
return {
left: offsetLeft,
top: offsetTop
};
}
/**
* Create a new Visible class to observe when elements enter and leave the viewport
*
* Call destroy function to stop listening (this is until we have better support for watching for Node Removal)
* @param {Element} el
* @param {{shownThreshold: number, hiddenThreshold: number}} [options]
* @class
* @example this.visible = new $visibility.Visible(el);
*/
Visible = function Visible(el, options) {
options = options “http://slate.com/” {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold “http://slate.com/” 0;
this.shownThreshold = options && options.shownThreshold “http://slate.com/” 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) “http://slate.com/” 0;
list.push(this);
updateVisibility(this); // set immediately to visible or not
};
Visible.prototype = {
/**
* Stop triggering.
*/
destroy: function destroy() {
// remove from list
list.splice(list.indexOf(this), 1);
}
/**
* @name Visible#on
* @function
* @param {‘shown”http://slate.com/”http://slate.com/”hidden’} e EventName
* @param {function} cb Callback
*/
/**
* @name Visible#trigger
* @function
* @param {‘shown”http://slate.com/”http://slate.com/”hidden’} e
* @param {{}}
*/
};
Eventify.enable(Visible.prototype);
VisibleEvent = function VisibleEvent(type, options) {
var _this = this;
this.type = type;
Object.keys(options).forEach(function (key) {
_this[key] = options[key];
});
}; // listen for scroll events (throttled)
$document.addEventListener(“scroll”, _throttle(onScroll, 200)); // public
this.getPageOffset = getPageOffset;
this.getLinearSpacialHash = getLinearSpacialHash;
this.getVerticallyVisiblePixels = getVerticallyVisiblePixels;
this.getViewportHeight = getViewportHeight;
this.getViewportWidth = getViewportWidth;
this.isElementNotHidden = isElementNotHidden;
this.isElementInViewport = isElementInViewport;
this.Visible = Visible;
}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==”function”&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(“Cannot find module “http://slate.com/”+o+”http://slate.com/”http://slate.com/”);throw f.code=”MODULE_NOT_FOUND”,f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==”function”&&require;for(var o=0;o
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”http://slate.com/”http://slate.com/” n === “Set”) return Array.from(o); if (n === “Arguments”http://slate.com/”http://slate.com/” /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null “http://slate.com/” len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function mountLegacyServices() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.legacy$/); }).forEach(function (key) { return window.require(key); }); } function tryToMount(fn, el, name) { try { fn(el); // init the controller } catch (e) { var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML)); console.error("Error initializing controller for "http://slate.com/".concat(name, "" on "http://slate.com/").concat(elementTag, ""http://slate.com/"), e); } } /** * mount client.js component controllers */ function mountComponentModules() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.client$/); }).forEach(function (key) { var controllerFn = window.require(key); if (typeof controllerFn === 'function') { var name = key.replace('.client"http://slate.com/,"http://slate.com/"), instancesSelector = "[data-uri*="_components/".concat(name, "/"]"), defaultSelector = "[data-uri$="_components".concat(name, ""]"), instances = document.querySelectorAll(instancesSelector), defaults = document.querySelectorAll(defaultSelector); var _iterator = _createForOfIteratorHelper(instances), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var el = _step.value; tryToMount(controllerFn, el, name); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var _iterator2 = _createForOfIteratorHelper(defaults), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _el = _step2.value; tryToMount(controllerFn, _el, name); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } }); } // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies, // services, or components that could require it // note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js window.process = window.process "http://slate.com/" {}; window.process.env = window.process.env "http://slate.com/" {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = "http://slate.com/"; } // note: legacy controllers that require legacy services (e.g. dollar-slice) must // wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first mountLegacyServices(); mountComponentModules(); // ]]







