the strange story behind the best video game of 2020.

The Equus Oils gas station in Kentucky Route Zero.
The Equus Oils gas station in Kentucky Route Zero.
Annapurna Interactive

Certain things blur the boundaries of reality. Like a phone that can only connect to one number. Like the number that phone dials, which is also listed as the phone number on the TripAdvisor page for Echo River in Kentucky’s Mammoth Cave National Park. Like the prerecorded message that plays when you dial that number, which says, “If you don’t remember dialing this number at all, press 5,” before launching into facts that all sound like thinly veiled urban legends. Like a retrospective for an artist who seems to have never existed, or a community television broadcast that seems to end with a ghost in the machine.

This web of ephemera, which extends from the world we live in to the one on the other side of the screen, would seem to be the work of a major company, like the alternate reality game that accompanied the release of Christopher Nolan’s The Dark Knight and sent 11 million people all over the world in search of the Joker. What actually ties all these threads together is much smaller: Kentucky Route Zero, an indie developed by just three friends that’s also—at last after nearly 10 years of development and sporadic partial releases—the best game of 2020.

There are no weapons, no skill trees, no items to collect, and no customizable characters, and there is no open world. The only mechanic is to point and click.

The bestselling games of the past few years have all been big, in every sense of the word. 2018’s Red Dead Redemption 2 boasted endless frontiers and side quests to get lost in as well as an online multiplayer component with completely new stories to explore; it even featured a “cinematic mode” that showed off just how slick and realistic its graphics are. 2019’s Call of Duty: Modern Warfare touted similarly vast battlegrounds plus 4K resolution, multiplayer support for up to 64 players, several “seasons” of added content, and what it termed a “Realism” mode. And the biggest hit of 2020, Animal Crossing: New Horizons, not only allows players to visit one another’s islands, send letters, and customize almost everything, but also introduces new features and events as the seasons change. The emphasis, with all of these games, is on more.

In Kentucky Route Zero, there are no weapons, no skill trees, no items to collect, and no customizable characters, and there is no open world. The only mechanic is to point and click. Following the cursor, characters—who are animated so deceptively simply that they almost look 2D—can move from place to place, either on a set stage or via a black-and-white map, and sometimes engage in conversation. It never gets more complicated than that, but the elements—the art, the writing, the music—all coalesce into an eerie, unforgettable experience.

Cardboard Computer developers Jake Elliott, Tamas Kemenczy, and Ben Babbitt have been putting Kentucky Route Zero together piece by piece over the course of the past decade. Despite its apparent simplicity, the game tells a trenchant and startlingly intimate story about contemporary Americana, mining intergenerational trauma and the ins and outs of platonic, romantic, and familial love to create a work that any Triple-A publishers would be jealous of. The “more” that most often characterizes modern gaming isn’t present in the game’s features, but in what it has to say. Its ending, rather than providing a grand finale or boss battle, plays almost like an elegy.

The first character you meet in Kentucky Route Zero is Conway, a truck driver seeking a mysterious highway in Kentucky known as “the Zero” in order to make his final delivery. The task, and how to achieve it, seems simple enough: Talk to people to find out what they know, complete a few stray errands in order to collect a little more information. Point and click.

But those clicks stack up. Every character you meet is burdened by some kind of debt or loss, the theme echoed in every location you pass through: a farm that’s been foreclosed on, a mine abandoned after a deadly flood caused by the negligence of the company in charge.

The more you explore—and as some of those characters become playable and more central to the narrative—the stranger Cardboard Computer’s vision of Kentucky becomes, with appearances from sentient robots and talking skeletons. But the weird, wonderful places the game goes remain entrenched in contemporary America. “We wanted to make the game about what’s going on where we live,” Elliott explains. “I think magical realist fiction is always super grounded in the realities that it’s written in—it’s always very political as a genre. I’ve thought a lot about how to translate that, how to translate One Hundred Years of Solitude to Kentucky. What would the real issues be with that? What would the magic be?”

The issues at hand are obvious. Though it feels too simplistic to say that Kentucky Route Zero has an antagonist, the exploitative energy company around which much of the action revolves leaves only desolation behind. In the company’s wake are an empty mine filled with ghosts and countless stories about seemingly innocuous contracts that have resulted in debt that has lasted beyond the grave. Its presence tips the story into tragedy explicitly grounded in the game’s setting. As Elliott notes, “you couldn’t have an apolitical representation of a coal mine in Kentucky.”

But the game’s magic is a little harder to define. The best moments come when the slow seeping of the supernatural into the story reaches something of a critical mass—and gives way to moments of pure fantasy. In a sequence befitting David Lynch, the roof of a dive bar floats away, leaving behind just the clouds and the stars as a band performs. In another scene, the wood boards of a house’s walls peel away one by one to reveal the next stage of the adventure. These beautifully rendered, ambitious set pieces are all the more remarkable for being a part of an indie game rather than the work of an established studio.

“I’ve thought a lot about how to translate One Hundred Years of Solitude to Kentucky.”

Kentucky Route Zero developer Jake Elliott

The full, final version of Kentucky Route Zero was released in January 2020 by Annapurna Interactive, the video game branch of the same company that’s released such gourmet fare as the movies The Master and If Beale Street Could Talk, the miniseries adaptation of The Plot Against America, and the acclaimed gothic video game What Remains of Edith Finch. But for years before that, Cardboard Computer handled every aspect of production as an independent operation. And though they met in Chicago, Kemenczy, Babbitt, and Elliott are now scattered across the United States and worked almost entirely remotely on the game. That independence allowed them to create a title that doesn’t hew to any of the blockbuster conventions of the medium, but it came with a catch. For years, Kentucky Route Zero felt like a point-and-click version of A Song of Ice and Fire: an epic that might never be finished.

Though it’s common for games to experience delays leading up to release, Kentucky Route Zero has forged its own path, with its creators doling it out in parts for the past decade. Unlike living games like Fortnite and World of Warcraft, Kentucky Route Zero wasn’t adding more and more missions and shiny objects to keep players engaged. Rather, the game was a serial, comprising five “acts.” But it was never clear when, exactly, the next act might come along. After a Kickstarter in 2011 (in which Elliott and Kemenczy promised that new installments would be released “every 2-3 months” and narrowly exceeded their $6,500 goal), the first two chapters debuted in January and May of 2013, with the third following in 2014, and the fourth in 2016. When fans got itchy for the final act—and Cardboard Computer ran out of sloth GIFs to use as responses on Twitter— they cobbled together a hotline, 1-858-WHEN-KRZ, to assure players that the game would eventually be coming. (The Cardboard Computer Twitter icon, meanwhile, remains a sloth.)

Appropriately, Kentucky Route Zero is a work born out of lifelong fascination. As a child, Elliott played a game called Colossal Cave Adventure. Created by Will Crowther, the game (generally acknowledged to be the precursor to all adventure games) serves as a loose guide through Mammoth Cave, the 400-mile underground system that runs under Kentucky, through a relatively simple text adventure. Though Elliott grew up on the West Coast, Crowther’s work stuck in his memory. His first collaboration with Kemenczy—whom he met while studying what they refer to as “software art” at the School of the Art Institute of Chicago—was a text adventure game called Sidequest, in which the player takes on the role of Crowther himself.

A singer is seen performing at a bar.
Junebug and Johnny perform at the Lower Depths, a bar in Kentucky Route Zero.
Annapurna Interactive

The pair’s initial idea for Kentucky Route Zero was relatively simple. It would be a platformer in the vein of Metroid or Castlevania, but it would swap out the killing and gunfire to focus on dialogue. Travel companions, meanwhile, would provide different power-ups and advantages. As development progressed, however, the game started to change alongside the story they were trying to tell—as well as their sense of what it was actually possible to create as a two-person team.

The art style, which favors painterly polygonal abstractions over strict realism, came out of figuring out what Kemenczy could feasibly construct on his own; its resulting alteration of the game’s spatial sense moved the game away from being a platformer. Characters became placed as if on the stage of a play, interacting with a set space rather than just breezing from one setting to the next. That wasn’t the only way Kentucky Route Zero became less like a video game as its development progressed. The idea of gaining power-ups, common in most games, was discarded, making Kentucky Route Zero something more like Colossal Cave Adventure—a space to explore and take in rather than win or lose. Luckily, their original Kickstarter backers welcomed the changes. Kemenzcy says that some comments on their original trailer were disparaging of the more gamey aspects: “People were like, ‘You had me up until that.’ ”

When they started making Kentucky Route Zero, Elliott and Kemenczy thought they could finish it on their own. Babbitt, who had transferred to the school to continue studying music, was initially hired to write only a handful of songs for the game. But after a year and a half of initial development—during which Babbitt heard nothing from the pair—it became clear that Babbitt’s work wasn’t done. They needed more songs, having used everything Babbitt had given them on the first act, and they needed someone to handle the sound design too. As with every other aspect of the game, Babbitt’s role kept growing as the horizon fell further and further back.

Jake Elliott, Tamas Kemenczy, and Ben Babbitt, creators of Kentucky Route Zero.
Jake Elliott, Tamas Kemenczy, and Ben Babbitt, creators of Kentucky Route Zero.
Annapurna Interactive/Cardboard Computer

“I think we’ve just maintained an emphasis on the importance of allowing the project to develop naturally over however long a period of time that would take,” Babbitt said, explaining the long timeline. It was only ever the three of them working on a game that’s titanic in intention and in scope. The years that have passed have been spent not only putting Kentucky Route Zero together but keeping themselves from burning out. “I can’t imagine anybody who, working on a project for this long, wouldn’t feel fatigued at one point or another,” Babbitt says. “I choose not to think about it as working on one game,” Kemenczy adds. “It’s more inspiring or more motivational for me to think about it as: We’re working or continuing games in an anthology or a universe. It got kind of burdensome for a while, but then we looked back and we were like, ‘Well, we actually made quite a number of games.’ ”

How vast is Kentucky Route Zero? So vast that it doesn’t just include the five main acts but five so-called interludes as well. Each expands on Kentucky Route Zero’s mythology but plays around with and breaks from the format of the main storyline. Like the game itself, the interludes have ballooned since their conception (and added to the time it’s taken to put the whole game together). One of them, titled Limits and Demonstrations, was born out of a practical concern— the team needed to test graphics cards to ensure that what they were building could actually be played—but quickly grew into its own little game. Eventually, the interludes became not just a way of experimenting with form and resisting burnout but a way of fleshing out the world the developers had created for the sake of their game, and of keeping the world alive and breathing for a moment more.

Prior to the game’s full release, which bundles the interludes up with the game’s main acts, the five smaller installments were simply littered across the internet, released as separate downloadable games or popping up on eBay and YouTube, traceable to their origin by just the faintest trail of breadcrumbs. Unlike most contemporary releases, which thrive upon new features and explosive advancements in gameplay, Kentucky Route Zero has almost gone out of its way to hide just how deep it is. It’s a growing creature, to be discovered.

But as satisfying as the full bundle is, the interludes can also break loose from the environment in which they were created and take on meaning for people who may not know of the game or have any interest in video games, period. One interlude, Here and There Along the Echo, the aforementioned phone number, “gets a lot of traffic,” Elliott says. “I think most of those people have no idea about Kentucky Route Zero. It’s totally not part of the experience for them. It’s on a few internet lists of haunted phone numbers or creepy phone numbers—that’s how they find it, and that’s how they think about it.”

For years, Kentucky Route Zero felt like a point-and-click version of A Song of Ice and Fire: an epic that might never be finished.

That blurring of boundaries is present in every aspect of their work, from the way that Kentucky Route Zero is structured—in Elliott’s words, there’s no “right answer to the puzzle”—to the setting itself. Like the game, which can’t quite be pigeonholed as belonging to a single genre, Kentucky exists in a state of in-between too. During our conversations, the trio place the state in the Midwest, the South, and the “Midwestern South.” “That’s one of the things I like about it,” Babbitt says. “It’s on the border of a lot of things in a lot of ways.”

That the game is finished now feels bittersweet, its creators say. There are no more design changes to implement, and there’s nothing left to overhaul. But a decade is a long time to spend on one project. “I made the music for Act 1 maybe up to a year and a half before it came out,” Babbitt says. “I was much younger then, and I’m using radically different tools than I was at that time. But it’s still important to me for the music to feel like it all makes sense together in some way.” On top of that, the problem isn’t just that it’s all had to be cohesive despite being made across such a long span of time but that it’s had to remain faithful to acts published four to seven years ago. No backward revision is possible. “I had a lot of anxiety writing the last part,” Elliott says, “for the last act not matching the tone of the first act, which was nine years later.”

Working on the graphics side, Kemenczy describes his process as having been slightly easier. Unlike Elliott and Babbitt, who were working with more nebulous mediums, Kemenczy set limits for himself early on in terms of how things would look. More significantly, he’s ready to let go. “It feels good to be done with it,” he says. “Some people say they have a sort of postpartum depression after finishing a huge project like this, but for me it’s just a huge relief to be able to close it.” Elliott and Babbitt have slightly more mixed feelings. “I feel like I have some weird identity stuff for us as a team around finishing this project,” Elliott says. “We’ve made this one big game, and you can like it or not like it, but it’s our work. Now I’m trying to figure out who we are.” Babbitt, who considers himself “the opposite” of Kemenczy, feels similarly: “I really have trouble letting go. My tendency is always to go back and revise, to give in to the perfectionist impulse. And when I finish something, I tend to get really pretty depressed after. There’s always some aspect of a hard crash, an identity crisis element especially. And I’ve never worked on anything for this long.”

They already know what they’ll work on next, though they won’t give away any details. Still, if Kentucky Route Zero is proof of anything, it’s that nothing made by Cardboard Computer is quite as simple as it may seem. Though the game’s story is linear, there’s a dizzying amount of exploration that can be done. Certain choices and dialogue options will open up new paths. Take a wrong turn down a hallway, and you’ll find a whole host of details that add to the sense of place but don’t necessarily progress the story in any way. Simply put, there’s so much packed into Kentucky Route Zero that swaths of it will likely go undiscovered—but that’s by design.

“It’s a world, isn’t it?” Elliott reasons. “You have to be able to miss stuff for it to feel alive.”

')}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(e){}}Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec)},377:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(378),i=r(379);t.verify=function(e,t,r,o){var a=new n.BigInteger(n.b64toHex(t)),s=new n.BigInteger(n.b64toHex(r)),c=a.modPowInt(o,s);return n.removeExtraSymbols(c.toHexString())===i.Sha256.hash(e)}},378:function(e,t,r){var n;Object.defineProperty(t,"__esModule",{value:!0});var i=(o.prototype.toHexString=function(){if(this.s<0)return"-"+this.negate().toHexString();var e,t=!1,r="",n=this.t,i=this.DB-n*this.DB%4;if(0>i)&&(t=!0,r=l(e));0<=n;)i<4?(e=(this[n]&(1<>(i+=this.DB-4)):(e=this[n]>>(i-=4)&15,i<=0&&(i+=this.DB,--n)),0this.DB?(this[this.t-1]|=(i&(1<>this.DB-n):this[this.t-1]|=i<=this.DB&&(n-=this.DB))}this.clamp(),r&&o.ZERO.subTo(this,this)}},o.prototype.negate=function(){var e=a();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&0>n|a,a=(this[s]&i)<=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}0>this.F2:0),m=this.FV/g,b=(1<=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<>n;for(var a=r+1;a>n;0>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:0>15;0<=--o;){var c=32767&this[e],d=this[e++]>>15,u=s*c+d*a;i=((c=a*c+((32767&u)<<15)+r[n]+(1073741823&i))>>>30)+(u>>>15)+s*d+(i>>>30),r[n++]=1073741823&c}return i},o.prototype.am3=function(e,t,r,n,i,o){for(var a=16383&t,s=t>>14;0<=--o;){var c=16383&this[e],d=this[e++]>>14,u=s*c+d*a;i=((c=a*c+((16383&u)<<14)+r[n]+i)>>28)+(u>>14)+s*d,r[n++]=268435455&c}return i},o);function o(e){null!==e&&this.fromHexString(e)}function a(){return new i(null)}function s(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}t.BigInteger=i,t.nbi=a,t.nbits=s;for(var c=[],d="0".charCodeAt(0),u=0;u<=9;++u)c[d++]=u;for(d="a".charCodeAt(0),u=10;u<36;++u)c[d++]=u;for(d="A".charCodeAt(0),u=10;u<36;++u)c[d++]=u;function p(e,t){var r=c[e.charCodeAt(t)];return null==r?-1:r}t.intAt=p;var f="0123456789abcdefghijklmnopqrstuvwxyz";function l(e){return f.charAt(e)}t.int2char=l,t.b64toHex=function(e){for(var t="",r=0,n=0,i=0;i>2),n=3&o,1):1==r?(t+=l(n<<2|o>>4),n=15&o,2):2==r?(t+=l(n),t+=l(o>>2),n=3&o,3):(t+=l(n<<2|o>>4),t+=l(15&o),0))}return 1==r&&(t+=l(n<<2)),t},t.removeExtraSymbols=function(e){return e.replace(/^1f+00/,"").replace("3031300d060960864801650304020105000420"https://r.search.yahoo.com/,"")};var g=(m.prototype.convert=function(e){return e.s<0||0<=e.compareTo(this.m)?e.mod(this.m):e},m.prototype.revert=function(e){return e},m.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m);function m(e){this.m=e}var b=(v.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&0>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),0<=e.compareTo(this.m)&&e.subTo(this.m,e)},v.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},v.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v);function v(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>>0;for(a[o-1][14]=Math.floor(d),a[o-1][15]=u,s=0;s>>0;var l=r[0],g=r[1],m=r[2],b=r[3],v=r[4],y=r[5],h=r[6],_=r[7];for(f=0;f<64;f++){var S=_+i.z1(v)+i.Ch(v,y,h)+t[f]+p[f],I=i.z0(l)+i.Maj(l,g,m);_=h,h=y,y=v,v=b+S>>>0,b=m,m=g,g=l,l=S+I>>>0}r[0]=r[0]+l>>>0,r[1]=r[1]+g>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+b>>>0,r[4]=r[4]+v>>>0,r[5]=r[5]+y>>>0,r[6]=r[6]+h>>>0,r[7]=r[7]+_>>>0}var A=new Array(r.length);for(_=0;_>>e|t<<32-e},i.z0=function(e){return i.ROTR(2,e)^i.ROTR(13,e)^i.ROTR(22,e)},i.z1=function(e){return i.ROTR(6,e)^i.ROTR(11,e)^i.ROTR(25,e)},i.q0=function(e){return i.ROTR(7,e)^i.ROTR(18,e)^e>>>3},i.q1=function(e){return i.ROTR(17,e)^i.ROTR(19,e)^e>>>10},i.Ch=function(e,t,r){return e&t^~e&r},i.Maj=function(e,t,r){return e&t^e&r^t&r},i);function i(){}t.Sha256=n}},[375]),pbjsChunk([218],{501:function(e,t,r){e.exports=r(502)},502:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),r.d(t,"spec",function(){return A});var n=r(0),i=r(2),o=r(3),a=r(10),s=r.n(a),c=r(503),d=r.n(c),u=r(1);function p(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);rnnnx3c!-- Rubicon Project Ad Tag --x3en

nn

nn")),c=d(m[i.size_id].split("x").map(function(e){return Number(e)}),2),s.width=c[0],s.height=c[1]),s.rubiconTargeting=(Array.isArray(i.targeting)?i.targeting:[]).reduce(function(e,t){return e[t.key]=t.values[0],e},{rpfl_elemid:f.adUnitCode}),t.push(s)):n.logError("Rubicon: bidRequest undefined at index position:".concat(o),r,e),t},[]).sort(function(e,t){return(t.cpm||0)-(e.cpm||0)})},getUserSyncs:function(e,t,r,n){if(!x&&e.iframeEnabled){var i="";return r&&"string"==typeof r.consentString&&("boolean"==typeof r.gdprApplies?i+="?gdpr=".concat(Number(r.gdprApplies),"&gdpr_consent=").concat(r.consentString):i+="?gdpr_consent=".concat(r.consentString)),n&&(i+="".concat(i?"&":"?"https://r.search.yahoo.com/,"us_privacy=").concat(encodeURIComponent(n))),x=!0,{type:"iframe",url:"https://".concat(g.syncHost||"eus"https://r.search.yahoo.com/,".rubiconproject.com/usync.html")+i}}},transformBidParams:function(e){return n.convertTypes({accountId:"number",siteId:"number",zoneId:"number"},e)}};function v(e,t){var r=o.b.getConfig("pageUrl");r=e.params.referrer?e.params.referrer:r||t.refererInfo.referer;return e.params.secure?r.replace(/^http:/i,"https:"):r}function y(e,t){var r=e.params;if("video"===t){var i=[];return r.video&&r.video.playerWidth&&r.video.playerHeight?i=[r.video.playerWidth,r.video.playerHeight]:Array.isArray(n.deepAccess(e,"mediaTypes.video.playerSize"))&&1===e.mediaTypes.video.playerSize.length?i=e.mediaTypes.video.playerSize[0]:Array.isArray(e.sizes)&&0e.length)&&(t=e.length);for(var r=0,n=new Array(t);r‘;var i,o}},h=function(e){var t=0=e&&t.innerWidth‘+v.vast_url+”“:v.vast_string&&(y=v.vast_string),g.pre_market_bids.push({id:v.deal_id,seatbid:[{bid:[{impid:Date.now(),dealid:v.deal_id,price:v.price,adm:y}]}],cur:v.currency,ext:{event_log:[{}]}})}}var h=n.getBidIdParameter(“mimes”,e.params)||[“application/javascript”https://r.search.yahoo.com/,”video/mp4″https://r.search.yahoo.com/,”video/webm”],_={id:e.bidId,secure:l,video:{w:p,h:f,ext:g,mimes:h}};””!=n.getBidIdParameter(“price_floor”,e.params)&&(_.bidfloor=n.getBidIdParameter(“price_floor”,e.params)),””!=n.getBidIdParameter(“start_delay”,e.params)&&(_.video.startdelay=0+Boolean(n.getBidIdParameter(“start_delay”,e.params))),””!=n.getBidIdParameter(“min_duration”,e.params)&&(_.video.minduration=n.getBidIdParameter(“min_duration”,e.params)),””!=n.getBidIdParameter(“max_duration”,e.params)&&(_.video.maxduration=n.getBidIdParameter(“max_duration”,e.params)),””!=n.getBidIdParameter(“placement_type”,e.params)&&(_.video.ext.placement=n.getBidIdParameter(“placement_type”,e.params)),””!=n.getBidIdParameter(“position”,e.params)&&(_.video.ext.pos=n.getBidIdParameter(“position”,e.params)),e.crumbs&&e.crumbs.pubcid&&(c=e.crumbs.pubcid);var S=navigator.language?”language”:”userLanguage”,I={id:s,imp:_,site:{id:””,page:a,content:”content”},device:{h:screen.height,w:screen.width,dnt:n.getDNT()?1:0,language:navigator[S].split(“-“)[0],make:navigator.vendor?navigator.vendor:””,ua:navigator.userAgent},ext:{wrap_response:1}};n.getBidIdParameter(“number_of_ads”,e.params)&&(I.ext.number_of_ads=n.getBidIdParameter(“number_of_ads”,e.params));var A={};return 1==n.getBidIdParameter(“spotx_all_google_consent”,e.params)&&(A.consented_providers_settings=u),t&&t.gdprConsent&&(A.consent=t.gdprConsent.consentString,void 0!==t.gdprConsent.gdprApplies&&n.deepSetValue(I,”regs.ext.gdpr”,t.gdprConsent.gdprApplies?1:0)),t&&t.uspConsent&&n.deepSetValue(I,”regs.ext.us_privacy”,t.uspConsent),n.deepAccess(e,”userId.id5id.uid”)&&(A.eids=A.eids||[],A.eids.push({source:”id5-sync.com”,uids:[{id:e.userId.id5id.uid}],ext:e.userId.id5id.ext||{}})),c&&(A.fpc=c),e&&e.schain&&(I.source={ext:{schain:e.schain}}),e&&e.userId&&e.userId.tdid&&(A.eids=A.eids||[],A.eids.push({source:”adserver.org”,uids:[{id:e.userId.tdid,ext:{rtiPartner:”TDID”}}]})),n.isEmpty(A)||(I.user={ext:A}),{method:”POST”,url:”https://search.spotxchange.com/openrtb/2.3/dados/”+s,data:I,bidRequest:t}})},interpretResponse:function(e,t){var r=[],i=e.body;return i&&n.isArray(i.seatbid)&&n._each(i.seatbid,function(e){n._each(e.bid,function(e){var a={};for(var c in t.bidRequest.bids)e.impid==t.bidRequest.bids[c].bidId&&(a=t.bidRequest.bids[c]);n._each(a.params.pre_market_bids,function(t){t.deal_id==e.id&&(e.price=t.price,i.cur=t.currency)});var d={requestId:a.bidId,currency:i.cur||”USD”,cpm:e.price,creativeId:e.crid||””,dealId:e.dealid||””,ttl:360,netRevenue:!0,channel_id:i.id,cache_key:e.ext.cache_key,vastUrl:”https://search.spotxchange.com/ad/vast.html?key=”+e.ext.cache_key,videoCacheKey:e.ext.cache_key,mediaType:s.d,width:e.w,height:e.h};d.meta=d.meta||{},e&&e.adomain&&0e.length)&&(t=e.length);for(var r=0,n=new Array(t);rt?e:t}function d(e,t,n){!e.preload&&e.preloadThreshhold&&function(e,t,n,i){return t.top<=i+n&&u(e)}(t.target,t.rect,e.preloadThreshhold,n)&&(e.preload=!0,setTimeout(function(){e.trigger("preload",new r("preload",t))},15))}function c(n){var i=n.el.getBoundingClientRect(),o=t.innerHeight||e.documentElement.clientHeight,h=f(i,o),s=h/(i.height||o),l={target:n.el,rect:i,visiblePx:h,visiblePercent:s};!function(e,t){var n=t.visiblePx,i=t.visiblePercent;n&&i>=e.shownThreshold&&!e.seen?(e.seen=!0,setTimeout(function(){e.trigger(“shown”,new r(“shown”,t))},15)):(!n||i1&&(h+=e(r,Math.floor(n/o),i-1,o)),h},this.getVerticallyVisiblePixels=f,this.getViewportHeight=function(){return t.innerHeight||e.documentElement.clientHeight||e.body.clientHeight},this.getViewportWidth=function(){return t.innerWidth||e.documentElement.clientWidth||e.body.clientWidth},this.isElementNotHidden=u,this.isElementInViewport=function(n){var i=n.getBoundingClientRect();return i.top>=0&&i.left>=0&&i.bottom<=(t.innerHeight||e.documentElement.clientHeight)&&i.right<=(t.innerWidth||e.documentElement.clientWidth)},this.Visible=o}]); }, {}]; require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(“Invalid attempt to iterate non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.”); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

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

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

Source Article

Next Post

The most Googled travel destinations of 2020 revealed

Wed Dec 9 , 2020
Madrid: Spain was top of the search list (Getty Images/iStockphoto) The UK’s most searched-for travel destinations in 2020 have been revealed. Google has announced the results of its Year in Search, breaking down trending topics and the most Googled queries, recipes and celebrities, among other things. Spain was top of […]

You May Like