\n ').concat(e_[r.l.name],"\n
\n ").concat(o,"\n ").concat(null===(_=r.reason)||void 0===_?void 0:_.text,"\n
\n
\n \n ")}var _Q=new Set(L("breakout_71_unlocked_levels",[]));function _K(){return _$.apply(this,arguments)}function _$(){return(_$=(0,k._)(function(){var e;return(0,z.__generator)(this,function(_){switch(_.label){case 0:return[4,tr()];case 1:if(_.sent()||tc.running)return[2];return tc.running=!0,tc.ballStickToPuck=!1,!function(e){if(eo("record")&&!l){if(!c){p=(c=document.createElement("canvas")).getContext("2d",{antialias:!1,alpha:!1}),u=(i=c.captureStream(0)).getVideoTracks()[0];var _=(eu(),n);_&&i.addTrack(_.stream.getAudioTracks()[0])}c.width=e.gameZoneWidthRoundedUp,c.height=e.gameZoneHeight;var t=[],r=new MediaRecorder(i,{videoBitsPerSecond:35e5});l=r,r.start(),l.pause(),r.ondataavailable=function(e){t.push(e.data)},r.onstop=(0,k._)(function(){var e,_,r,a;return(0,z.__generator)(this,function(n){switch(n.label){case 0:if((_=new Blob(t,{type:"video/webm"})).size<2e5)return[2];n.label=1;case 1:if(e=document.getElementById("level-recording-container"))return[3,3];return[4,new Promise(function(e){return setTimeout(e,200)})];case 2:return n.sent(),[3,1];case 3:var o;if((r=document.createElement("video")).autoplay=!0,r.controls=!1,r.disablePictureInPicture=!0,r.disableRemotePlayback=!0,r.width=c.width,r.height=c.height,r.loop=!0,r.muted=!0,r.playsInline=!0,r.src=URL.createObjectURL(_),e.appendChild(r),(a=document.createElement("a")).download=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"webm";return"breakout-71-capture-"+new Date().toISOString().replace(/[^0-9\-]+/gi,"-")+"."+e}("webm"),a.target="_blank",!window.location.href.endsWith("index.html?isInWebView=true"))return[3,5];return[4,(o=_,new Promise(function(e,_){var t=new FileReader;t.onload=function(){e(t.result)},t.onerror=function(e){console.error(e),_(Error("Failed to readAsDataURL of the video "))},t.readAsDataURL(o)}))];case 4:return a.href=n.sent(),[3,6];case 5:a.href=r.src,n.label=6;case 6:return a.textContent=j("main_menu.record_download",{size:(_.size/1e6).toFixed(2)}),e.appendChild(a),[2]}})})}}(tc),null===(e=eu())||void 0===e||e.resume(),eo("record")&&(null==l?void 0:l.state)==="paused"&&l.resume(),[2]}})})).apply(this,arguments)}function _0(e){if(tc.running&&!tc.pauseTimeout){var _=function(){tc.running=!1,setTimeout(function(){var e;tc.running||null===(e=eu())||void 0===e||e.suspend()},1e3),e8(),tc.pauseTimeout=null,e2.className="",tc.needsRender=!0};e?(tc.pauseUsesDuringRun++,tc.pauseTimeout=setTimeout(_,Math.min(50*Math.max(0,tc.pauseUsesDuringRun-5),500))):_(),document.exitPointerLock&&document.exitPointerLock()}}var _1=function(){var e=function(e){e.x=tc.offsetXRoundedDown+(e.x-t)/r*tc.gameZoneWidthRoundedUp,e.y=e.y/a*tc.gameZoneHeight},_=function(e){e.x=tc.offsetXRoundedDown+(e.x-t)/r*tc.gameZoneWidthRoundedUp,e.y=e.y/a*tc.gameZoneHeight,e.previousX=e.x,e.previousY=e.y},t=tc.offsetXRoundedDown,r=tc.gameZoneWidthRoundedUp,a=tc.gameZoneHeight,n=eE.getBoundingClientRect(),o=n.width,s=n.height;tc.canvasWidth=o,tc.canvasHeight=s,eE.width=o,eE.height=s,eV.width=o,eV.height=s,eZ.width=o/16,eZ.height=s/16,tc.gameZoneHeight=eo("mobile-mode")?80*s/100:s;var l=Math.round(Math.min(tc.canvasWidth,.73*tc.gameZoneHeight));tc.brickWidth=2*Math.floor(l/tc.gridSize/2),tc.gameZoneWidth=tc.brickWidth*tc.gridSize,tc.offsetX=Math.floor((tc.canvasWidth-tc.gameZoneWidth)/2),tc.offsetXRoundedDown=tc.offsetX,tc.offsetX.95?(t++,e.rerolls++,a=j("level_up.plus_one_upgrade_and_reroll")):_>.9&&(t++,a=j("level_up.plus_one_upgrade")),e.levelMisses<3?(t++,e.rerolls++,o=j("level_up.plus_one_upgrade_and_reroll")):e.levelMisses<6&&(t++,o=j("level_up.plus_one_upgrade")),u.label=1;case 1:var c,p;if(!t--||(c=3+e.perks.one_more_choice-e.perks.instant_upgrade,(p=ew(e).map(function(_){return q(w({},_),{score:Math.random()+(e.lastOffered[_.id]||0)})}).sort(function(e,_){return e.score-_.score}).filter(function(_){return e.perks[_.id]<_.max+e.perks.limitless}).slice(0,c).sort(function(e,_){return e.id>_.id?1:-1})).forEach(function(_){_w(e,_.id)}),!(s=p.map(function(_){return{text:_.name+(e.perks[_.id]?j("level_up.upgrade_perk_to_level",{level:e.perks[_.id]+1}):""),icon:e_["icon:"+_.id],value:_.id,help:_.help(e.perks[_.id]+1)}})).length))return[3,3];return e.rerolls&&s.push({text:j("level_up.reroll",{count:e.rerolls}),help:j("level_up.reroll_help"),value:"reroll",icon:e_["icon:reroll"]}),l=r&&a&&o&&n&&j("level_up.compliment_perfect")||(r||a||o||n)&&j("level_up.compliment_good")||j("level_up.compliment_advice"),[4,_n(q(w({},{title:j("level_up.pick_upgrade_title")+(t?" ("+(t+1)+")":""),content:["".concat(j("level_up.before_buttons",{score:e.score-e.levelStartScore,catchGain:a,levelSpawnedCoins:e.levelSpawnedCoins,time:Math.round(e.levelTime/1e3),timeGain:r,levelMisses:e.levelMisses,missesGain:o,levelWallBounces:e.levelWallBounces,wallHitsGain:n,compliment:l}),"\n
\n ").concat(j("level_up.after_buttons",{level:e.currentLevel+1,max:ex(e)}),"
\n ").concat(ez(e,e.currentLevel+1),"
\n")].concat(S(s),[eS(e),_J(e),''])}),{allowClose:!1}))];case 2:return"reroll"===(i=u.sent())?(t++,e.rerolls--):(e.perks[i]++,"instant_upgrade"===i&&(t+=2),e.runStatistics.upgrades_picked++),[3,1];case 3:return[2]}})})).apply(this,arguments)}function _4(e,_){return eW(tc,Math.floor(_/tc.brickWidth),Math.floor((e-tc.offsetX)/tc.brickWidth))}function _3(e){if(tc.bricks[e])return e}function _5(e,_,t){var r,a,n;return null!==(n=null!==(a=null!==(r=_3(_4(e-t,_-t)))&&void 0!==r?r:_3(_4(e+t,_-t)))&&void 0!==a?a:_3(_4(e+t,_+t)))&&void 0!==n?n:_3(_4(e-t,_+t))}window.addEventListener("resize",_1),window.addEventListener("fullscreenchange",_1),setInterval(function(){var e=eE.getBoundingClientRect(),_=e.width,t=e.height;(_!==tc.canvasWidth||t!==tc.canvasHeight)&&_1()},1e3),eE.addEventListener("mouseup",function(e){0===e.button&&(tc.running?_0(!0):(_K(),eo("pointerLock")&&eE.requestPointerLock&&eE.requestPointerLock().then()))}),eE.addEventListener("mousemove",function(e){document.pointerLockElement===eE?_d(tc,tc.puckPosition+e.movementX):_d(tc,e.x)}),eE.addEventListener("touchstart",function(e){var _;e.preventDefault(),(null===(_=e.touches)||void 0===_?void 0:_.length)&&(_d(tc,e.touches[0].pageX),_g(tc),_K())}),eE.addEventListener("touchend",function(e){e.preventDefault(),_0(!0)}),eE.addEventListener("touchcancel",function(e){e.preventDefault(),_0(!0)}),eE.addEventListener("touchmove",function(e){var _;(null===(_=e.touches)||void 0===_?void 0:_.length)&&_d(tc,e.touches[0].pageX)});var _6=0,_7=60;setInterval(function(){_7=_6,_6=0},1e3),setInterval(function(){tc.creative||(d||(d=er.map(function(e,_){return w({name:e.name,li:_,l:e},eC(_))})),d.forEach(function(e){var _=e.name,t=e.minScore,r=e.forbidden,a=e.required;e.l,!(_Q.has(_)||tc.score"+j("unlocks.just_unlocked")+""),_x(tc,"colorChange",0,1)))}))},500),window.addEventListener("visibilitychange",function(){document.hidden&&_0(!0)}),e2.addEventListener("click",function(e){e.preventDefault(),_e||_U(tc)}),document.addEventListener("visibilitychange",function(){document.hidden&&_0(!0)}),document.getElementById("menu").addEventListener("click",function(e){e.preventDefault(),_e||_9()});var _8=(m=Math).max.apply(m,S(ea.map(function(e){return e.threshold})));function _9(){return te.apply(this,arguments)}function te(){return(te=(0,k._)(function(){var e,_;return(0,z.__generator)(this,function(t){switch(t.label){case 0:var r;return _0(!0),e=[{icon:e_["icon:new_run"],text:j("main_menu.normal"),help:(eB()?j("main_menu.high_score",{score:eB()}):"")||j("main_menu.normal_help"),value:function(){tp({levelToAvoid:eq(tc).name})}},{icon:e_["icon:creative"],text:j("lab.menu_entry"),help:C()<_8&&j("lab.unlocks_at",{score:_8})||j("lab.help"),disabled:C()<_8,value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){return function(){_I.apply(this,arguments)}(),[2]})})()}},(r=_u,{icon:e_["icon:history"],text:j("history.title"),disabled:r.length<10,help:r.length<10?j("history.locked"):j("history.help",{count:r.length}),value:function(){return(0,k._)(function(){var e,_,t,a,n;return(0,z.__generator)(this,function(o){switch(o.label){case 0:e=function(){var e,n,o,s;return(0,z.__generator)(this,function(l){switch(l.label){case 0:return e=a.map(function(e,_){return'').concat(e.label," | ")}).join(""),n=r.sort(function(e,r){return t*(a[_].field(e)-a[_].field(r))}).map(function(e){return""+a.map(function(_){var t,r=null!==(t=_.field(e))&&void 0!==t?t:0;return""+(_.render||function(e){return e.toString()})(r)+" | "}).join("")+"
"}).join(""),[4,_n({title:j("history.title"),className:"history",content:["\n\n".concat(e,"
\n").concat(n,"\n
\n ")]})];case 1:if(!(o=l.sent()))return[2,{v:void 0}];return o.startsWith("sort:")&&((s=parseInt(o.split(":")[1]))==_?t*=-1:(t=-1,_=s)),[2]}})},_=0,t=-1,a=[{label:j("history.columns.started"),field:function(e){return e.started},render:function(e){return new Date(e).toISOString().slice(0,10)}},{label:j("history.columns.score"),field:function(e){return e.score}},{label:j("history.columns.runTime"),tooltip:j("history.columns.runTime_tooltip"),field:function(e){return e.runTime},render:function(e){return Math.floor(e/1e3)+"s"}},{label:j("history.columns.puck_bounces"),tooltip:j("history.columns.puck_bounces_tooltip"),field:function(e){return e.puck_bounces}},{label:j("history.columns.max_combo"),field:function(e){return e.max_combo}},{label:j("history.columns.upgrades_picked"),field:function(e){return e.upgrades_picked}}].concat(S(N.map(function(e){return{label:e_["icon:"+e.id],tooltip:e.name,field:function(_){var t;return(null===(t=_.perks)||void 0===t?void 0:t[e.id])||0},render:function(e){return e||"-"}}}))),o.label=1;case 1:return[5,(0,z.__values)(e())];case 2:if(n=o.sent(),"object"===(0,_X._)(n))return[2,n.v];return[3,1];case 3:return[2]}})})()}}),{icon:e_["icon:unlocks"],text:j("main_menu.unlocks"),help:j("main_menu.unlocks_help"),value:function(){(function(){tn.apply(this,arguments)})()}}].concat(S(function(e){if(!eo("donation_reminder"))return[];var _=V();return[{text:j("main_menu.donate",{hours:_}),help:j("main_menu.donate_help",{suggestion:Math.min(20,Math.max(1,.2*_)).toFixed(0)}),icon:e_["icon:premium"],value:function(){window.open("https://paypal.me/renanlecaro","_blank")}}]}(0)),[{text:j("main_menu.settings_title"),help:j("main_menu.settings_help"),icon:e_["icon:settings"],value:function(){t_()}},{icon:e_["icon:help"],text:j("main_menu.help_title"),help:j("main_menu.help_help"),value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){switch(e.label){case 0:return[4,_n({title:j("main_menu.help_title"),allowClose:!0,content:[Z(j("main_menu.help_content")),j("main_menu.help_upgrades")].concat(S(ea.map(function(e){return'\n\n '.concat(e.icon,"\n
\n ").concat(e.name,"
\n ").concat(e.help(1),"\n
\n
\n \n ").concat(Z(e.fullHelp),"\n")})),[Z(j("main_menu.credits")),j("main_menu.credit_levels")],S(er.filter(function(e){var _;return null===(_=e.credit)||void 0===_?void 0:_.startsWith("http")}).map(function(e){return'\n")})))})];case 1:return e.sent(),[2]}})})()}}]),[4,_n({title:j("main_menu.title"),content:S(e).concat([j("main_menu.footer_html",{appVersion:ee})]),allowClose:!0})];case 1:return(_=t.sent())&&(_(),tc.needsRender=!0),[2]}})})).apply(this,arguments)}function t_(){return tt.apply(this,arguments)}function tt(){return(tt=(0,k._)(function(){var e,_,t,r,a,n,o,s,l,i;return(0,z.__generator)(this,function(u){switch(u.label){case 0:_0(!0),_=[{disabled:eo("easy"),icon:e_["icon:starting_perks"],text:j("main_menu.starting_perks"),help:j("main_menu.starting_perks_help"),value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){switch(e.label){case 0:return[4,_E()];case 1:return e.sent(),[2]}})})()}}],t=[{text:"English",value:"en",icon:e_.UK},{text:"Français",value:"fr",icon:e_.France}],_.push({icon:null===(e=t.find(function(e){return e.value===E()}))||void 0===e?void 0:e.icon,text:j("main_menu.language"),help:j("main_menu.language_help"),value:function(){return(0,k._)(function(){var e,_;return(0,z.__generator)(this,function(r){switch(r.label){case 0:return[4,_n({title:j("main_menu.language"),content:[j("main_menu.language_help")].concat(S(t)),allowClose:!0})];case 1:if(!(_=(e=r.sent())&&e!==E()))return[3,3];return[4,to(tc)];case 2:_=r.sent(),r.label=3;case 3:return _&&(B("lang",e),window.location.reload()),[2]}})})()}}),r=!0,a=!1,n=void 0;try{for(o=function(){var e=l.value;en[e]&&_.push({icon:eo(e)?e_["icon:checkmark_checked"]:e_["icon:checkmark_unchecked"],text:en[e].name,help:en[e].help,value:function(){es(e),_1(),tr(),t_()}})},s=Object.keys(en)[Symbol.iterator]();!(r=(l=s.next()).done);r=!0)o()}catch(e){a=!0,n=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw n}}return _.push({icon:e_["icon:download"],text:j("main_menu.download_save_file"),help:j("main_menu.download_save_file_help"),value:function(){return(0,k._)(function(){var e,_;return(0,z.__generator)(this,function(t){return e=_V(),(_=document.createElement("a")).setAttribute("href","data:application/json;base64,"+btoa(JSON.stringify({fileType:"B71-save-file",appVersion:ee,signedPayload:e,key:Y("Security by obscurity, but really the game is oss so eh"+e)}))),_.setAttribute("download","b71-save-"+new Date().toISOString().slice(0,19).replace(/[^0-9]+/gi,"-")+".b71"),document.body.appendChild(_),_.click(),setTimeout(function(){return document.body.removeChild(_)},1e3),[2]})})()}}),_.push({icon:e_["icon:upload"],text:j("main_menu.load_save_file"),help:j("main_menu.load_save_file_help"),value:function(){return(0,k._)(function(){var e,_;return(0,z.__generator)(this,function(t){if(!document.getElementById("save_file_picker")){var r;(_=document.createElement("input")).setAttribute("type","file"),_.setAttribute("id","save_file_picker"),_.setAttribute("accept",".b71,.json"),_.style.position="absolute",_.style.left="-1000px",_.addEventListener("change",(r=(0,k._)(function(e){var t,r,a,n,o,s,l,i,u;return(0,z.__generator)(this,function(e){switch(e.label){case 0:if(e.trys.push([0,4,,6]),!(r=_&&(null===(t=_.files)||void 0===t?void 0:t.item(0))))return[3,3];return[4,new Promise(function(e,_){var t=new FileReader;t.onload=function(){var _;e((null===(_=t.result)||void 0===_?void 0:_.toString())||"")},t.onerror=function(){_(t.error)},t.readAsText(r)})];case 1:if(n=(a=JSON.parse(e.sent())).fileType,o=a.appVersion,s=a.signedPayload,l=a.key,"B71-save-file"!==n)throw Error("Not a B71 save file");if(o>ee)throw Error("Please update your app first, this file is for version "+o+" or newer.");if(l!==Y("Security by obscurity, but really the game is oss so eh"+s))throw Error("Key does not match content.");for(var c in i=JSON.parse(s),localStorage.clear(),i)localStorage.setItem(c,i[c]);return[4,_n({title:j("main_menu.save_file_loaded"),content:[j("main_menu.save_file_loaded_help"),{text:j("main_menu.save_file_loaded_ok")}]})];case 2:e.sent(),window.location.reload(),e.label=3;case 3:return[3,6];case 4:return u=e.sent(),[4,_n({title:j("main_menu.save_file_error"),content:[u.message,{text:j("main_menu.save_file_loaded_ok")}]})];case 5:return e.sent(),[3,6];case 6:return _.value="",[2]}})}),function(e){return r.apply(this,arguments)})),document.body.appendChild(_)}return null===(e=document.getElementById("save_file_picker"))||void 0===e||e.click(),[2]})})()}}),_.push({icon:e_["icon:coins"],text:j("main_menu.max_coins",{max:T()}),help:j("main_menu.max_coins_help"),value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){switch(e.label){case 0:return B("max_coins",(L("max_coins",1)+1)%6),[4,t_()];case 1:return e.sent(),[2]}})})()}}),_.push({icon:e_["icon:particles"],text:j("main_menu.max_particles",{max:F()}),help:j("main_menu.max_particles_help"),value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){switch(e.label){case 0:return B("max_particles",(L("max_particles",1)+1)%6),[4,t_()];case 1:return e.sent(),[2]}})})()}}),_.push({icon:e_["icon:reset"],text:j("main_menu.reset"),help:j("main_menu.reset_help"),value:function(){return(0,k._)(function(){return(0,z.__generator)(this,function(e){switch(e.label){case 0:return[4,_n({title:j("main_menu.reset"),content:[j("main_menu.reset_instruction"),{text:j("main_menu.reset_confirm"),value:!0},{text:j("main_menu.reset_cancel"),value:!1}],allowClose:!0})];case 1:return e.sent()&&(localStorage.clear(),window.location.reload()),[2]}})})()}}),[4,_n({title:j("main_menu.settings_title"),content:[j("main_menu.settings_help")].concat(S(_)),allowClose:!0,className:"settings"})];case 1:return(i=u.sent())&&(i(),tc.needsRender=!0),[2]}})})).apply(this,arguments)}function tr(){return ta.apply(this,arguments)}function ta(){return(ta=(0,k._)(function(){var e;return(0,z.__generator)(this,function(_){switch(_.label){case 0:if(_.trys.push([0,10,,11]),!(document.fullscreenEnabled||document.webkitFullscreenEnabled))return[2,!1];if(!(null!==document.fullscreenElement&&!eo("fullscreen")))return[3,5];if(!document.exitFullscreen)return[3,2];return[4,document.exitFullscreen()];case 1:case 3:case 6:case 8:return _.sent(),[2,!0];case 2:if(!document.webkitCancelFullScreen)return[3,4];return[4,document.webkitCancelFullScreen()];case 4:return[3,9];case 5:if(!(eo("fullscreen")&&!document.fullscreenElement))return[3,9];if(!(e=document.documentElement).requestFullscreen)return[3,7];return[4,e.requestFullscreen()];case 7:if(!e.webkitRequestFullscreen)return[3,9];return[4,e.webkitRequestFullscreen()];case 9:return[3,11];case 10:return console.warn(_.sent()),[3,11];case 11:return[2,!1]}})})).apply(this,arguments)}function tn(){return(tn=(0,k._)(function(){var e,_,t,r,a;return(0,z.__generator)(this,function(n){switch(n.label){case 0:return e=C(),_=eo("mobile-mode")?"help":"tooltip",t=ea.sort(function(e,_){return e.threshold-_.threshold}).map(function(t){var r=t.name,a=t.id,n=t.threshold,o=t.icon,s=t.help;return W({text:r,disabled:e'):"";return W({text:e.name+a,disabled:!!r,value:{level:e.name},icon:e_[e.name]},_,(null==r?void 0:r.text)||eh(e))}),[4,_n({title:j("unlocks.title_upgrades",{unlocked:t.filter(function(e){return!e.disabled}).length,out_of:t.length}),content:["".concat(j("unlocks.intro",{ts:e}),"\n ").concat(t.find(function(e){return e.disabled})?j("unlocks.greyed_out_help"):"","
")].concat(S(t),[j("unlocks.level",{unlocked:r.filter(function(e){return!e.disabled}).length,out_of:r.length})],S(r)),allowClose:!0,className:eo("mobile-mode")?"":"actionsAsGrid"})];case 1:if(!(a=n.sent()))return[3,3];return[4,to(tc)];case 2:n.sent()&&tp(w({},a)),n.label=3;case 3:return[2]}})})).apply(this,arguments)}function to(e){return ts.apply(this,arguments)}function ts(){return(ts=(0,k._)(function(e){return(0,z.__generator)(this,function(_){return!e.currentLevel||_e?[2,!0]:(_0(!0),[2,_n({title:j("confirmRestart.title"),content:[j("confirmRestart.text"),{value:!0,text:j("confirmRestart.yes")},{value:!1,text:j("confirmRestart.no")}]})])})})).apply(this,arguments)}var tl={ArrowLeft:0,ArrowRight:0,Shift:0};function ti(e,_){tl[e]=_,tc.keyboardPuckSpeed=(tl.ArrowRight-tl.ArrowLeft)*(1+2*tl.Shift)*tc.gameZoneWidth/50}document.addEventListener("keydown",(t=(0,k._)(function(e){return(0,z.__generator)(this,function(_){return"f"!==e.key.toLowerCase()||e.ctrlKey||e.metaKey?e.key in tl&&ti(e.key,1):(es("fullscreen"),tr())," "!==e.key||_e||(tc.running?_0(!0):_K(),e.preventDefault()),[2]})}),function(e){return t.apply(this,arguments)}));var tu=new Date;document.addEventListener("keyup",(r=(0,k._)(function(e){var _,t,r,a,n;return(0,z.__generator)(this,function(o){switch(o.label){case 0:if(n=document.querySelector("button:focus"),!(e.key in tl))return[3,1];return ti(e.key,0),[3,10];case 1:if("ArrowDown"!==e.key||(null==n?void 0:null===(_=n.nextElementSibling)||void 0===_?void 0:_.tagName)!=="BUTTON")return[3,2];return null==n||null===(t=n.nextElementSibling)||void 0===t||t.focus(),[3,10];case 2:if("ArrowUp"!==e.key||(null==n?void 0:null===(r=n.previousElementSibling)||void 0===r?void 0:r.tagName)!=="BUTTON")return[3,3];return null==n||null===(a=n.previousElementSibling)||void 0===a||a.focus(),[3,10];case 3:if(!("Escape"===e.key&&__))return[3,4];return __(),[3,10];case 4:if(!("Escape"===e.key&&tc.running))return[3,5];return _0(!0),[3,10];case 5:if(!("m"===e.key.toLowerCase()&&!_e))return[3,6];return _9().then(),[3,10];case 6:if(!("s"===e.key.toLowerCase()&&!_e))return[3,7];return _U().then(),[3,10];case 7:if(!("r"===e.key.toLowerCase()&&!_e&&tu1&&void 0!==arguments[1]?arguments[1]:1;e.runStatistics.max_combo=Math.max(e.runStatistics.max_combo,e.combo),e.lastCombo=e.combo,e.perks.addiction&&e.lastBrickBroken&&e.lastBrickBrokene.lastTickDown+1e3&&e.perks.hot_start&&(e.lastTickDown=e.levelTime,_f(e,e.perks.hot_start,e.puckPosition,e.gameZoneHeight-2*e.puckHeight)),t<=e.perks.skip_last&&!e.autoCleanUses&&(e.bricks.forEach(function(_,t){_&&_W(e,t,e.balls[0],!0)}),e.autoCleanUses++);var r=_C(e.respawns);if(!e.running||t||r?e.winAt=0:e.winAt||(e.winAt=e.levelTime+5e3),e.running&&e.winAt&&e.levelTime>e.winAt||e.levelTime&&!t&&!_C(e.coins))e.currentLevel+17*e.baseSpeed&&(t.vx=7*e.baseSpeed),t.vx<-7*e.baseSpeed&&(t.vx=-7*e.baseSpeed),t.vy>7*e.baseSpeed&&(t.vy=7*e.baseSpeed),t.vy<-7*e.baseSpeed&&(t.vy=-7*e.baseSpeed),t.a+=t.sa,!e.perks.etherealcoins){var l=e.perks.helium>0&&2*Math.abs(t.x-e.puckPosition)>e.puckWidth+t.size;t.vy+=_*t.weight*.8*(l?-e.perks.helium:1),l&&!eo("basic")&&.1>Math.random()&&_O(e,t.x,t.y,0,e.baseSpeed,e.perks.metamorphosis||eo("colorful_coins")?t.color:"#ffd300",!0,5,250)}var i=(Math.abs(t.vx)+Math.abs(t.vy))*10,u=_P(e,t,t.size/2,_);t.y>e.gameZoneHeight-a-e.puckHeight&&t.yt&&_.threshold<=r&&(_x(e,"colorChange",0,1),_p(e_["icon:"+_.id]+""+j("gameOver.unlocked_perk")+""))})}}(e,t.points),e.score>e.highScore&&!e.creative&&(e.highScore=e.score,localStorage.setItem("breakout-3-hs-short",e.score.toString())),eo("basic")||_O(e,t.previousX,t.previousY,(e.canvasWidth-t.x)/100,-t.y/100,e.perks.metamorphosis||eo("colorful_coins")?t.color:"#ffd300",!0,e.coinSize/2,100+50*Math.random()),_x(e,"coinCatch",t.x,1),e.runStatistics.score+=t.points,e.perks.asceticism&&_f(e,3*e.perks.asceticism*t.points,t.x,t.y),_B(e.coins,r)):t.y>e.canvasHeight+10*a?(e.levelLostCoins+=t.points,_B(e.coins,r),e.perks.compound_interest&&_h(e,t.x,e.gameZoneHeight-20),e.combo<30*e.perks.fountain_toss&&Math.random()<1/e.combo*e.perks.fountain_toss&&_v(e,1,t.x,e.gameZoneHeight-20)):e.perks.unbounded&&(t.x<-e.gameZoneWidth/2||t.x>e.canvasWidth+e.gameZoneWidth/2||t.y<-e.gameZoneWidth)&&(e.levelLostCoins+=t.points,_B(e.coins,r));var c=function(e,_){var t,r,a=_.size/2,n=_.x,o=_.y,s=_.previousX,l=_.previousY,i=_5(s,o,a),u=_5(n,l,a),c=void 0===i&&void 0===u&&_5(n,o,a)||void 0;if(e.perks.ghost_coins)void 0!==(null!==(t=null!=i?i:u)&&void 0!==t?t:c)&&(_.vy*=1-.2/e.perks.ghost_coins,_.vx*=1-.2/e.perks.ghost_coins);else{if(void 0!==i||void 0!==c){_.y=_.previousY,_.vy*=-1;var p=e.bricks[_4(n-a,o+a)],d=e.bricks[_4(n+a,o+a)];p&&!d&&(_.vx+=1,_.sa-=1),!p&&d&&(_.vx-=1,_.sa+=1)}(void 0!==u||void 0!==c)&&(_.x=_.previousX,_.vx*=-1)}return null!==(r=null!=i?i:u)&&void 0!==r?r:c}(e,t);e.perks.metamorphosis&&void 0!==c&&e.bricks[c]&&t.color!==e.bricks[c]&&"black"!==e.bricks[c]&&t.metamorphosisPoints&&(e.bricks[c]=t.color,t.metamorphosisPoints--,_x(e,"colorChange",t.x,.3)),!e.perks.ghost_coins&&void 0!==c||u?(t.vx*=.8,t.vy*=.8,t.sa*=.9,i>20&&!t.collidedLastFrame&&_x(e,"coinBounce",t.x,.2),t.collidedLastFrame=!0,3>Math.abs(t.vy)&&(t.vy=0)):t.collidedLastFrame=!1}),e.balls.forEach(function(t){return function(e,_,t){_.previousVX=_.vx,_.previousVY=_.vy;var r,a=1+e.perks.telekinesis+e.perks.ball_repulse_ball+e.perks.puck_repulse_ball+e.perks.ball_attract_ball;eH(e,_)>0&&(a+=3,_.vx+=(e.puckPosition-_.x)/1e3*t*e.perks.telekinesis*eH(e,_)),eP(e,_)>0&&(a+=3,_.vx+=(e.puckPosition-_.x)/1e3*t*e.perks.yoyo*eP(e,_)),_.vx*_.vx+_.vy*_.vy0?1:-1)*.02/a);var n=!0,o=!1,s=void 0;if(e.perks.ball_repulse_ball)try{for(var l,i=e.balls[Symbol.iterator]();!(n=(l=i.next()).done);n=!0){var u=l.value;u.x>=_.x||_H(e,_,u,e.perks.ball_repulse_ball,!0)}}catch(e){o=!0,s=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw s}}var c=!0,p=!1,d=void 0;if(e.perks.ball_attract_ball)try{for(var m,g=e.balls[Symbol.iterator]();!(c=(m=g.next()).done);c=!0){var b=m.value;b.x>=_.x||function(e,_,t,r){var a=eR(_,t),n=3*e.gameZoneWidth/4;if(!(ae.offsetX+e.gameZoneWidth/2&&_h(e,_.x,_.y),e.perks.top_is_lava&&h>=2&&_h(e,_.x,_.y+3*e.ballSize),e.perks.trampoline&&_f(e,e.perks.trampoline,_.x,_.y+e.ballSize),_x(e,"wallBeep",_.x,1),e.levelWallBounces++,e.runStatistics.wall_bounces++);var v=e.gameZoneHeight-e.puckHeight-e.ballSize/2,f=Math.abs(_.x-e.puckPosition)v&&_.vy>0&&(f||e.balls.length<2&&e.perks.extra_life&&_.y>v+e.puckHeight/2)){if(f){var y=Math.sqrt(_.vx*_.vx+_.vy*_.vy),k=Math.atan2(-e.puckWidth/2,(_.x-e.puckPosition)*(e.perks.concave_puck?-1/(1+e.perks.concave_puck):1));_.vx=y*Math.cos(k),_.vy=y*Math.sin(k),_x(e,"wallBeep",_.x,1)}else _.vy*=-1,function(e,_,t,r){if(e.perks.extra_life-=1,e.perks.extra_life<0?e.perks.extra_life=0:e.perks.sacrifice&&(e.combo*=e.perks.sacrifice,e.bricks.forEach(function(t,r){return t&&_W(e,r,_,!0)})),_x(e,"lifeLost",_.x,1),!eo("basic"))for(var a=0;a<10;a++)_O(e,t,r,Math.random()*e.baseSpeed*3,3*e.baseSpeed,"#FF0000",!1,e.coinSize/2,150)}(e,_,_.x,_.y);if(e.perks.streak_shots&&_h(e,_.x,_.y),e.perks.trampoline&&_v(e,e.perks.trampoline,_.x,_.y),e.perks.nbricks&&_.hitSinceBouncee.canvasWidth+e.gameZoneWidth/2,x=e.perks.unbounded>1&&_.y<-e.gameZoneWidth/2;e.running&&(_.y>e.gameZoneHeight+e.ballSize/2||w||x)&&(_.destroyed=!0,e.runStatistics.balls_lost++,e.balls.find(function(e){return!e.destroyed})||_l(j("gameOver.lost.title"),j("gameOver.lost.summary",{score:e.score})));var S=e.ballSize/2,z=_.x,q=_.y,G=_.previousX,M=_.previousY,H=_5(G,q,S),P=_5(z,M,S),O=void 0===H&&void 0===P&&_5(z,q,S)||void 0,R=null!==(r=null!=H?H:P)&&void 0!==r?r:O;if(void 0!==R){var L=e.bricks[R];_.hitSinceBounce++,e.perks.nbricks&&(_.hitSinceBounce>e.perks.nbricks?_h(e,_.x,_.y):_v(e,e.perks.nbricks,_.x,_.y));var B=!1,C=1+(e.perks.pierce_color&&(void 0===H||e.bricks[H]===e.ballsColor)&&(void 0===P||e.bricks[P]===e.ballsColor)&&(void 0===O||e.bricks[O]===e.ballsColor)?e.perks.pierce_color:0);e.brickHP[R]-=C;var T=Math.min(_.piercePoints,Math.max(1,e.brickHP[R]+1));e.brickHP[R]-=T,_.piercePoints-=T,e.brickHP[R]<0&&(e.brickHP[R]=0,B=!0),void 0===H&&void 0===O||B||(_.y=_.previousY,_.vy*=-1),void 0===P&&void 0===O||B||(_.x=_.previousX,_.vx*=-1),e.brickHP[R]?(_x(e,"wallBeep",z,1),function(e,_,t,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:8,n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:150;_L(e.lights,function(o){o.time=e.levelTime,o.x=_,o.y=t,o.color=r,o.size=a,o.duration=n})}(e,ey(e,R),ek(e,R),"#FFFFFF",e.brickWidth+2,50*e.brickHP[R])):(_.brokenSinceBounce++,_W(e,R,_,!1),_.sapperUses0&&!_.hitSinceBounce,D=e.combo-1;if(E||D&&Math.random()>.1/(1+D)||A&&Math.random()>.1/(1+A)||D&&Math.random()>.1/(1+D)){var I=A&&(Math.random()>.5?"#ffb92a":"#FF0000")||E&&"#FF0000"||e.ballsColor;_O(e,_.x,_.y,e.perks.pierce_color||F?-_.vx+(Math.random()-.5)*e.baseSpeed/3:(Math.random()-.5)*e.baseSpeed,e.perks.pierce_color||F?-_.vy+(Math.random()-.5)*e.baseSpeed/3:(Math.random()-.5)*e.baseSpeed,I,!0,e.coinSize/2,100)}}}(e,t,_)}),e.perks.shocks&&e.balls.forEach(function(_,t){return e.balls.forEach(function(r,a){if(t.5&&_O(e,e.offsetXRoundedDown+Math.random()*e.gameZoneWidthRoundedUp,Math.random()*e.gameZoneHeight,8*n,0,_M(),!0,e.coinSize/2,150);_F(e.particles,function(t,r){t.x+=t.vx*_,t.y+=t.vy*_,!t.ethereal&&(t.vy+=.5,_3(_4(t.x,t.y))&&_B(e.particles,r))})}if(e.combo>_b(e)&&!eo("basic")&&(e.combo-_b(e))*Math.random()>5){if(e.perks.top_is_lava&&_O(e,e.offsetXRoundedDown+Math.random()*e.gameZoneWidthRoundedUp,0,(Math.random()-.5)*10,5,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.left_is_lava&&_O(e,e.offsetXRoundedDown,Math.random()*e.gameZoneHeight,5,(Math.random()-.5)*10,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.right_is_lava&&_O(e,e.offsetXRoundedDown+e.gameZoneWidthRoundedUp,Math.random()*e.gameZoneHeight,-5,(Math.random()-.5)*10,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.compound_interest){var s=e.puckPosition,l=0;do s=e.offsetXRoundedDown+e.gameZoneWidthRoundedUp*Math.random(),l++;while(Math.abs(s-e.puckPosition)_.time)_q(e,_.index,_.color),_B(e.respawns,t);else{var r=_.index,a=_.color,n=Math.random()>.5,o=Math.random()>.5?1:-1,s=Math.random()>.5?1:-1;_O(e,ey(e,r)+o*e.brickWidth/2,ek(e,r)+s*e.brickWidth/2,n?0:-o*e.baseSpeed,n?-s*e.baseSpeed:0,a,!0,e.coinSize/2,250)}}),_F(e.particles,function(_,t){e.levelTime>_.time+_.duration&&_B(e.particles,t)}),_F(e.texts,function(_,t){e.levelTime>_.time+_.duration&&_B(e.texts,t)}),_F(e.lights,function(_,t){e.levelTime>_.time+_.duration&&_B(e.lights,t)})}(tc,r)),(tc.running||tc.needsRender)&&(tc.needsRender=!1,function(e){var _=eq(e),t=e.combo>_b(e),r=eE.width,a=eE.height;if(r&&a){e.currentLevel||e.levelTime?e4.innerText=j("play.current_lvl",{level:e.currentLevel+1,max:ex(e)}):e4.innerText=j("play.menu_label");var n=e.levelSpawnedCoins?(e.levelSpawnedCoins-e.levelLostCoins)/e.levelSpawnedCoins:1;if(e2.innerHTML=(eo("show_fps")?' \n Math.abs(_7-60)&&"good"||"bad",'">\n ').concat(_7," FPS\n / \n \n "):"")+(eo("show_stats")?' \n .9&&"good"||"",'" data-tooltip="').concat(j("play.stats.coins_catch_rate"),'">\n ').concat(Math.floor(100*n),'%\n / \n \n ').concat(Math.ceil(e.levelTime/1e3),'s \n / \n \n ').concat(e.levelWallBounces,' B \n / \n \n ').concat(e.levelMisses," M\n / \n "):"")+'$').concat(e.score,""),e2.className=e.lastScoreIncrease>e.levelTime-500?"active":"",!eo("basic")&&_.svg&&"#000000"===_.color){eN.globalCompositeOperation="source-over",eN.globalAlpha=.99,eN.fillStyle=_.color,eN.fillRect(0,0,r/16,a/16);var o=eo("extra_bright")?3:1;if(eN.globalCompositeOperation="lighten",eN.globalAlpha=.1+5/(_C(e.coins)+10),_F(e.coins,function(_){e$(eN,e7(e,_),2*e.coinSize*o/16,_.x/16,_.y/16)}),eN.globalAlpha=.3,e.balls.forEach(function(_){e$(eN,e.ballsColor,2*e.ballSize*o/16,_.x/16,_.y/16)}),eN.globalAlpha=.05,e.bricks.forEach(function(_,t){if(_){var r=ey(e,t),a=ek(e,t);e$(eN,"black"==_?"#666666":_,Math.min(200,1.5*e.brickWidth*o)/16,r/16,a/16)}}),eN.globalCompositeOperation="screen",_F(e.particles,function(_){var t=_.x,r=_.y,a=_.time,n=_.color,s=_.size,l=_.duration;eN.globalAlpha=.1*Math.min(1,2-(e.levelTime-a)/l*2),e$(eN,n,3*s*o/16,t/16,r/16)}),ej.globalAlpha=1,ej.globalCompositeOperation="source-over",ej.imageSmoothingEnabled=!0,ej.imageSmoothingQuality="high",ej.drawImage(eZ,0,0,r,a),ej.imageSmoothingEnabled=!1,ej.globalAlpha=1,ej.globalCompositeOperation="multiply",_.svg&&eI.width&&eI.complete){if(eV.title!==_.name){eV.title=_.name,eV.width=e.canvasWidth,eV.height=e.canvasHeight;var s=eV.getContext("2d");if(s.globalCompositeOperation="source-over",s.fillStyle=_.color||"#000",s.fillRect(0,0,e.canvasWidth,e.canvasHeight),e.perks.clairvoyant>=3)for(var l=document.body.innerHTML.replace(/\s+/gi,""),i=Math.ceil(e.canvasWidth/15),u=Math.ceil(e.canvasHeight/20),c=Math.ceil(Math.random()*(l.length-i*u)),p=0;p_b(tc),_=e&&tc.perks.picky_eater&&eG(tc),t=e&&eL(tc),r=eM(tc),a=tc.perks.clairvoyant,n=e6(tc);_||t||-1!==r||tc.perks.zen||(n=0);var o=a&&tc.brickHP.reduce(function(e,_){return e+_},0),s=tc.gameZoneWidth+"_"+tc.bricks.join("_")+eD.complete+"_"+r+"_"+_+"_"+t+"_"+tc.ballsColor+"_"+tc.perks.pierce_color+"_"+o+"_"+n;if(s!==eY){eY=s,eU.width=tc.gameZoneWidth,eU.height=tc.gameZoneWidth+1;var l=eU.getContext("2d");l.clearRect(0,0,tc.gameZoneWidth,tc.gameZoneWidth),l.resetTransform(),l.translate(-tc.offsetX,0),tc.bricks.forEach(function(o,s){var i=ey(tc,s),u=ek(tc,s);if(o){var c=r===Math.floor(s/tc.level.size),p=tc.ballsColor!==o&&"black"!==o&&_||e&&tc.perks.zen&&"black"===o||c||t;l.globalCompositeOperation="source-over",e0(tc,l,o,i,u,p?n:-1,a>=2),tc.brickHP[s]>1&&a&&(l.globalCompositeOperation="source-over",e1(l,tc.brickHP[s].toString(),a>=2?o:tc.level.color,tc.puckHeight,i,u)),"black"===o&&(l.globalCompositeOperation="source-over",function(e,_,t,r,a){var n="svg"+_+"_"+t+"_"+_.complete;if(!eJ[n]){var o=document.createElement("canvas");o.width=t,o.height=t;var s=o.getContext("2d"),l=t/Math.max(_.width,_.height),i=_.width*l,u=_.height*l;s.drawImage(_,(t-i)/2,(t-u)/2,i,u),eJ[n]=o}e.drawImage(eJ[n],Math.round(r-t/2),Math.round(a-t/2))}(l,eD,tc.brickWidth,i,u))}})}ej.drawImage(eU,tc.offsetX,0)}(),ej.globalCompositeOperation="screen",_F(e.lights,function(_){var t=_.x,r=_.y,a=_.time,n=_.color,o=(_.size,_.duration);ej.globalAlpha=.5*Math.min(1,2-(e.levelTime-a)/o*2),e0(e,ej,n,t,r,-1,e.perks.clairvoyant>=2)}),ej.globalCompositeOperation="screen",_F(e.texts,function(_){var t=_.x,r=_.y,a=_.time,n=_.color,o=_.size,s=_.duration,l=e.levelTime-a;ej.globalAlpha=Math.max(0,Math.min(1,2-l/s*2)),ej.globalCompositeOperation="source-over",e1(ej,_.text,n,o,t,r-l/10)}),_F(e.particles,function(_){var t=_.x,r=_.y,a=_.time,n=_.color,o=_.size,s=_.duration;ej.globalAlpha=Math.max(0,Math.min(1,2-(e.levelTime-a)/s*2)),ej.globalCompositeOperation="screen",eQ(ej,n,o,t,r)}),e.perks.extra_life){ej.globalAlpha=1,ej.globalCompositeOperation="source-over",ej.fillStyle=e.puckColor;for(var h=0;h4&&void 0!==arguments[4]?arguments[4]:0,n=arguments.length>5?arguments[5]:void 0,o=arguments.length>6?arguments[6]:void 0,s="puck"+_+"_"+t+"_"+r+"_"+n+"_"+o;if(!eJ[s]){var l=document.createElement("canvas");l.width=t,l.height=2*r;var i=l.getContext("2d");i.fillStyle=_,i.beginPath(),i.moveTo(0,2*r),n?(i.lineTo(0,.75*r),i.bezierCurveTo(t/2,r*(2+n)/3,t/2,r*(2+n)/3,t,.75*r)):(i.lineTo(0,1.25*r),i.bezierCurveTo(0,.75*r,t,.75*r,t,1.25*r)),i.lineTo(t,2*r),i.fill(),-1!==o&&(i.strokeStyle="#FF0000",i.lineWidth=4,i.setLineDash(e5),i.lineDashOffset=o,i.stroke()),eJ[s]=l}e.drawImage(eJ[s],Math.round(tc.puckPosition-t/2),tc.gameZoneHeight-2*r+a)}(ej,e.puckColor,e.puckWidth,e.puckHeight,0,e.perks.concave_puck,e.perks.streak_shots&&t?e6(e):-1),e.combo>1){ej.globalCompositeOperation="source-over";var v="x "+e.combo,f=v.length*e.puckHeight/1.8,y=f+2*e.coinSize,k=e.puckPosition-y/2;ye.puckWidth?e.combo.toString():v,"#000",f>e.puckWidth?12:20,e.puckPosition,e.gameZoneHeight-e.puckHeight/2,!1)}ej.globalCompositeOperation="source-over",ej.globalAlpha=e.perks.unbounded?.1:1;var W=t&&!e.perks.unbounded&&(e.perks.left_is_lava||e.perks.trampoline),w=t&&!e.perks.unbounded&&(e.perks.right_is_lava||e.perks.trampoline),x=t&&e.perks.unbounded<=2&&(e.perks.top_is_lava||e.perks.trampoline);e.offsetXRoundedDown?(eX(ej,e,W&&"#FF0000"||"#FFFFFF",e.offsetX-1,0,e.offsetX-1,a,e.perks.unbounded?.1:1),eX(ej,e,w&&"#FF0000"||"#FFFFFF",r-e.offsetX+1,0,r-e.offsetX+1,a,e.perks.unbounded?.1:1)):(eX(ej,e,W&&"#FF0000"||"",0,0,0,a,1),eX(ej,e,w&&"#FF0000"||"",r-1,0,r-1,a,1)),x&&eX(ej,e,"#FF0000",e.perks.unbounded?0:e.offsetXRoundedDown,1,e.perks.unbounded?r:r-e.offsetXRoundedDown,1,1),ej.globalAlpha=1,eX(ej,e,t&&e.perks.compound_interest&&"#FF0000"||eo("mobile-mode")&&"#FFFFFF"||"",e.offsetXRoundedDown,e.gameZoneHeight,r-e.offsetXRoundedDown,e.gameZoneHeight,1),!eo("basic")&&eo("contrast")&&_.svg&&"#000000"===_.color&&(ej.imageSmoothingEnabled=!0,eN.fillStyle="#FFFFFF",eN.globalAlpha=.25,eN.globalCompositeOperation="screen",eN.fillRect(0,0,eZ.width,eZ.height),ej.globalAlpha=1,ej.globalCompositeOperation="overlay",ej.drawImage(eZ,0,0,r,a),ej.imageSmoothingEnabled=!1),ej.globalCompositeOperation="source-over",ej.globalAlpha=1,eo("mobile-mode")&&!e.running&&e1(ej,j("play.mobile_press_to_play"),e.puckColor,e.puckHeight,e.canvasWidth/2,e.gameZoneHeight+(e.canvasHeight-e.gameZoneHeight)/2),g&&ej.resetTransform()}}(tc)),tc.running&&function(e){if(eo("record")){var _;i&&(_=e,p&&(p.drawImage(eE,_.offsetXRoundedDown,0,_.gameZoneWidthRoundedUp,_.gameZoneHeight,0,0,c.width,c.height),p.fillStyle="#FFFFFF",p.textBaseline="top",p.font="12px monospace",p.textAlign="right",p.fillText(_.score.toString(),c.width-12,12),p.textAlign="left",p.fillText("Level "+(_.currentLevel+1)+"/"+ex(_),12,12)),(null==u?void 0:u.requestFrame)?null==u||u.requestFrame():(null==i?void 0:i.requestFrame)&&i.requestFrame())}}(tc),eo("sound")&&function(e){if(!(el>Date.now()-60))for(var _ in el=Date.now(),e.aboutToPlaySound){var t,r=e.aboutToPlaySound[_];r.vol&&(ei[_](Math.min(2,r.vol),(t=e,Math.max(0,Math.min(1,(r.x-t.offsetXRoundedDown)/t.gameZoneWidthRoundedUp))),e.combo),r.vol=0)}}(tc),requestAnimationFrame(e),_6++}(),function(){var e=document.getElementById("tooltip");if(eo("mobile-mode")){e.style.display="none";return}function _(_){e.style.transform="translate(".concat(_.clientX,"px,").concat(_.clientY,"px) translate(").concat(_.clientX>window.innerWidth/2?"-100%":"0",",").concat(_.clientY>2*window.innerHeight/3?"-100%":"20px",")")}function t(){e.style.display="none",r=null}var r=null;document.body.addEventListener("mouseenter",function(a){for(var n,o=a.target;o&&!o.hasAttribute("data-tooltip");)o=o.parentElement;(null==o?void 0:null===(n=o.getAttribute("data-tooltip"))||void 0===n?void 0:n.trim())?(e.innerHTML=(r=o).getAttribute("data-tooltip")||"",e.style.display="",_(a)):t()},!0),setInterval(function(){r&&!document.body.contains(r)&&t()},200),document.body.addEventListener("mousemove",function(t){e.style.display||_(t)},!0),document.body.addEventListener("mouseleave",function(e){t()},!0)}(),null===(g=document.getElementById("menu"))||void 0===g||g.setAttribute("data-tooltip",j("play.menu_tooltip"))}();