\n ").concat(a.name,"\n ").concat(a.help(Math.max(1,e.perks[a.id])),"\n
\n ").concat(t.reverse().join(""),"\n".concat(et("score_panel.upgrades_picked"),"
")+a.join("")}function ej(e,a){if(!e.perks.clairvoyant||e.creative)return"";for(var r="",t=0;t".concat(et("score_panel.upcoming_levels"),"
").concat(r,"
")}function eE(e){return e.level}function eA(e){return -1!==e.bricks.indexOf(e.ballsColor)}function eH(e){if(!e.perks.reach)return -1;for(var a=e.level.size,r=-1,t=-1,n=-1,i=0;i0&&en(1-a.y/e.gameZoneHeight*1.1+.1,0,1)||0}function eI(e,a){return Math.pow(e.x-a.x,2)+Math.pow(e.y-a.y,2)}function eV(e,a){return Math.sqrt(eI(e,a))}function eZ(e){return!!(e.lastPuckMove&&e.perks.passive_income&&e.lastPuckMove>e.levelTime-250*e.perks.passive_income)}function eN(){try{return parseInt(localStorage.getItem("breakout-3-hs-short")||"0")}catch(e){}return 0}function eU(e){var a=[],r=[],t=Math.max(-1e3+100*e,0);if(e>20){var n=ed.slice(0,Math.floor(e/2)).map(function(e){return e}).filter(function(e){var a;return a=e.id,i||(i=new Set(["extra_levels","extra_life","one_more_choice","instant_upgrade","shunt","slow_down"]),ed.forEach(function(e){e.requires&&i.add(e.requires)})),!i.has(a)}).sort(function(a,r){return em(e+a.id)-em(e+r.id)}),s=Math.min(3,Math.ceil(e/30));a=n.slice(0,s),r=n.slice(s,s+s)}return{required:a,forbidden:r,minScore:t}}function eK(e,a,r){var t=eU(e),n=t.required,i=t.forbidden,s=t.minScore,_=function(e){var a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return(a=Math).max.apply(a,[0].concat(M(e.filter(function(e){return!r.find(function(a){var r;return!(null==e?void 0:null===(r=e.perks)||void 0===r?void 0:r[a.id])})&&!t.find(function(a){var r;return null==e?void 0:null===(r=e.perks)||void 0===r?void 0:r[a.id]})}).map(function(e){return e.score}))))}(a,n,i),o=_&&r?et("unlocks.reached",{reached:_}):"";return _>=s?null:n.length||i.length?{reached:_,minScore:s,text:et("unlocks.minScoreWithPerks",{minScore:s,required:n.map(function(e){return e.name}).join(", "),forbidden:i.map(function(e){return e.name}).join(", ")})+o}:{reached:_,minScore:s,text:et("unlocks.minScore",{minScore:s})+o}}function eY(e,a){return e.perks.metamorphosis||e0("colorful_coins")||e.perks.hypnosis||e.perks.rainbow?a.color:"#ffd300"}function eX(e){return(e.levelTime?e.perks.corner_shot*e.brickWidth:0)-e.perks.unbounded*e.brickWidth}var eJ=!!window.location.href.includes("isInWebView=true");function e$(){try{var e=Z("breakout_71_total_play_time",0);return Math.floor(e/1e3/60/60)}catch(e){return 0}}var eQ={sound:{default:!0,name:et("settings.sounds"),help:et("settings.sounds_help")},"mobile-mode":{default:window.innerHeight>window.innerWidth,name:et("settings.mobile"),help:et("settings.mobile_help")},basic:{default:!1,name:et("settings.basic"),help:et("settings.basic_help")},colorful_coins:{default:!1,name:et("settings.colorful_coins"),help:et("settings.colorful_coins_help")},extra_bright:{default:!0,name:et("settings.extra_bright"),help:et("settings.extra_bright_help")},smooth_lighting:{default:!0,name:et("settings.smooth_lighting"),help:et("settings.smooth_lighting_help")},precise_lighting:{default:!0,name:et("settings.precise_lighting"),help:et("settings.precise_lighting_help")},probabilistic_lighting:{default:!1,name:et("settings.probabilistic_lighting"),help:et("settings.probabilistic_lighting_help")},contrast:{default:!1,name:et("settings.contrast"),help:et("settings.contrast_help")},show_fps:{default:!1,name:et("settings.show_fps"),help:et("settings.show_fps_help")},show_stats:{default:!1,name:et("settings.show_stats"),help:et("settings.show_stats_help")},pointerLock:{default:!1,name:et("settings.pointer_lock"),help:et("settings.pointer_lock_help")},easy:{default:!1,name:et("settings.kid"),help:et("settings.kid_help")},record:{default:!1,name:et("settings.record"),help:et("settings.record_help")},fullscreen:{default:!1,name:et("settings.fullscreen"),help:et("settings.fullscreen_help")},donation_reminder:{default:e$()>5,name:et("settings.donation_reminder"),help:et("settings.donation_reminder_help")},red_miss:{default:!0,name:et("settings.red_miss"),help:et("settings.red_miss_help")},comboIncreaseTexts:{default:!0,name:et("settings.comboIncreaseTexts"),help:et("settings.comboIncreaseTexts_help")}};function e0(e){var a;return Z("breakout-settings-enable-"+e,null===(a=eQ[e])||void 0===a?void 0:a.default)}function e1(e){U("breakout-settings-enable-"+e,!e0(e))}var e2=Date.now(),e4={wallBeep:function(e,a){e0("sound")&&e5(800,a,e)},plouf:function(e,a){e0("sound")&&e5(500,a,.5*e)},comboIncreaseMaybe:function(e,a,r){if(e0("sound")){var t=0;!isNaN(e7)&&(e7\n ").concat(e.name,"\n ").concat(e.help(1),"\n
\n".concat(a,"
\n").concat(et("gameOver.cumulative_total",{startTs:n,endTs:t}),"
\n "),{icon:ef["icon:new_run"],value:null,text:et("confirmRestart.yes"),help:""},'',eT(r0),s,function(e){if(e.creative)return"";var a="",r="";try{var t=ew.map(function(e,a){var r;return{li:a,l:e,r:null===(r=eK(a,aY,!1))||void 0===r?void 0:r.text}}).filter(function(e){return e.r});e.runStatistics.runTime=Math.round(e.runStatistics.runTime);var n=w({},e.perks);for(var i in n)n[i]||delete n[i];aY.push(S(w({},e.runStatistics),{perks:n,appVersion:ey}));var s=t.filter(function(e){var a=e.li;return!eK(a,aY,!0)});s.length&&(a="\n\n\n ").concat(a.name,"\n ").concat(ex(a),"\n
\n".concat(et("gameOver.stats_intro",{count:aY.length-1}),"
")+r)}catch(e){console.warn(e)}return a+r}(r0)]}).then(function(){return r1({levelToAvoid:eE(r0).name})})}}function aK(e){return e.creative?""+et("gameOver.creative")+"
":""}var aY=[];try{aY=JSON.parse(localStorage.getItem("breakout_71_runs_history")||"[]").sort(function(e,a){return a.score-e.score}).slice(0,100)}catch(e){}function aX(e,a){e.startParams.computer_controlled||(e.puckPosition=a,e.needsRender=!0)}function aJ(e){a$(e);var a,r=1+((null===(a=e.perks)||void 0===a?void 0:a.multiball)||0),t=e.puckWidth/(r+1);e.balls=[],e.ballsColor="#FFFFFF",(e.perks.picky_eater||e.perks.pierce_color)&&(e.ballsColor=function(e){var a,r={};e.forEach(function(e){return r[e]=(r[e]||0)+1});var t=(a=Math).max.apply(a,M(Object.keys(r).map(function(e){return r[e]})));return eB(Object.keys(r).filter(function(e){return r[e]==t}))}(e.bricks.filter(function(e){return e}))||"#FFFFFF");for(var n=0;n".concat(et("score_panel.close_to_unlock"),'
\n\n ").concat(s,"\n ").concat(null===(a=t.reason)||void 0===a?void 0:a.text,"\n
\n".concat(et("level_up.before_buttons",{score:e.score-e.levelStartScore,catchGain:n,levelSpawnedCoins:e.levelSpawnedCoins,time:Math.round(e.levelTime/1e3),timeGain:t,levelMisses:e.levelMisses,missesGain:s,levelWallBounces:e.levelWallBounces,wallHitsGain:i,compliment:o}),"\n
\n").concat(et("level_up.after_buttons",{level:e.currentLevel+1,max:eC(e)}),"
\n").concat(ej(e,e.currentLevel+1),"
\n")].concat(M(_),[eT(e),rw(e),''])}),{allowClose:!1}))];case 2:return"reroll"===(l=u.sent())?(r++,e.rerolls--):(e.perks[l]++,"instant_upgrade"===l&&(r+=2),e.runStatistics.upgrades_picked++),[3,1];case 3:return[2]}})})).apply(this,arguments)}function rO(e,a){return eL(r0,Math.floor(a/r0.brickWidth),Math.floor((e-r0.offsetX)/r0.brickWidth))}function rL(e){if(r0.bricks[e])return e}function rR(e,a,r){var t,n,i;return null!==(i=null!==(n=null!==(t=rL(rO(e-r,a-r)))&&void 0!==t?t:rL(rO(e+r,a-r)))&&void 0!==n?n:rL(rO(e+r,a+r)))&&void 0!==i?i:rL(rO(e-r,a+r))}window.addEventListener("resize",function(){return rq(r0)}),window.addEventListener("fullscreenchange",function(){return rq(r0)}),setInterval(function(){var e=window.innerWidth,a=window.innerHeight;(e!==r0.canvasWidth||a!==r0.canvasHeight)&&rq(r0)},1e3),at.addEventListener("mouseup",function(e){0===e.button&&(r0.running?rM(!0):(rx(),e0("pointerLock")&&at.requestPointerLock&&at.requestPointerLock().then()))}),at.addEventListener("mousemove",function(e){document.pointerLockElement===at?aX(r0,r0.puckPosition+e.movementX):aX(r0,e.x)}),at.addEventListener("touchstart",function(e){var a;e.preventDefault(),(null===(a=e.touches)||void 0===a?void 0:a.length)&&(aX(r0,e.touches[0].pageX),a$(r0),rx())}),at.addEventListener("touchend",function(e){e.preventDefault(),rM(!0)}),at.addEventListener("touchcancel",function(e){e.preventDefault(),rM(!0)}),at.addEventListener("touchmove",function(e){var a;(null===(a=e.touches)||void 0===a?void 0:a.length)&&aX(r0,e.touches[0].pageX)});var rG=document.getElementById("stats"),rC={},rT=performance.now(),rj="idle",rE=0,rA=60;function rH(e){if(r0.startParams.stress){var a=performance.now();rj&&(rC[rj]=(rC[rj]||0)+(a-rT)),rT=a,rj=e}}setInterval(function(){if(rA=rE,rE=0,!r0.startParams.stress){rG.style.display="none";return}rG.style.display="block";var e=eM(rC);rG.innerHTML="\n\n ").concat(e.name,"
\n ").concat(e.help(1),"\n
\n ").concat(e.name," \n
\n ").concat(eo(e.credit||""),"\n\n Made in France by Renan LE CARO. \n Donate\n Discord\n F-Droid\n Google Play\n itch.io \n Gitlab\n Web version\n HackerNews\n Privacy Policy\n Archives\n v.'.concat(ey,"\n
")]),allowClose:!0})];case 1:return(a=r.sent())&&(a(),r0.needsRender=!0),[2]}})})).apply(this,arguments)}function rV(){return rZ.apply(this,arguments)}function rZ(){return(rZ=(0,W._)(function(){var e,a,r,t,n,i,s,_,o;return(0,q.__generator)(this,function(l){switch(l.label){case 0:rM(!0),(a=[{disabled:e0("easy"),icon:ef["icon:starting_perks"],text:et("starting_perks.title"),help:et("starting_perks.help"),value:function(){return(0,W._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return[4,rg()];case 1:return e.sent(),[2]}})})()}}]).push({icon:ef[null===(e=Q.find(function(e){return e.value===er()}))||void 0===e?void 0:e.levelName],text:et("settings.language"),help:et("settings.language_help"),value:function(){return(0,W._)(function(){var e,a;return(0,q.__generator)(this,function(r){switch(r.label){case 0:return[4,aC({title:et("settings.language"),content:[et("settings.language_help")].concat(M(Q.map(function(e){return S(w({},e),{icon:ef[e.levelName]})}))),allowClose:!0})];case 1:if(!(a=(e=r.sent())&&e!==er()))return[3,3];return[4,rY(r0)];case 2:a=r.sent(),r.label=3;case 3:return a&&(U("lang",e),K(),window.location.reload()),[2]}})})()}}),r=!0,t=!1,n=void 0;try{for(i=function(){var e=_.value;eQ[e]&&a.push({icon:e0(e)?ef["icon:checkmark_checked"]:ef["icon:checkmark_unchecked"],text:eQ[e].name,help:eQ[e].help,disabled:e0("basic")&&["extra_bright","contrast","smooth_lighting","precise_lighting","probabilistic_lighting"].includes(e)||!1,value:function(){e1(e),rq(r0),rN(),rV()}})},s=Object.keys(eQ)[Symbol.iterator]();!(r=(_=s.next()).done);r=!0)i()}catch(e){t=!0,n=e}finally{try{r||null==s.return||s.return()}finally{if(t)throw n}}return a.push({icon:ef["icon:download"],text:et("settings.download_save_file"),help:et("settings.download_save_file_help"),value:function(){return(0,W._)(function(){var e,a;return(0,q.__generator)(this,function(r){return e=document.createElement("a"),a=JSON.stringify({fileType:"B71-save-file",appVersion:ey,payload:rv()},null,2),e.setAttribute("href","data:application/json;charset=utf-8,"+encodeURIComponent(a)),e.setAttribute("download","b71-save-"+new Date().toISOString().slice(0,19).replace(/[^0-9]+/gi,"-")+".json"),document.body.appendChild(e),e.click(),setTimeout(function(){return document.body.removeChild(e)},1e3),[2]})})()}}),a.push({icon:ef["icon:upload"],text:et("settings.load_save_file"),help:et("settings.load_save_file_help"),value:function(){return(0,W._)(function(){var e,a;return(0,q.__generator)(this,function(r){if(!document.getElementById("save_file_picker")){var t;(a=document.createElement("input")).setAttribute("type","file"),a.setAttribute("id","save_file_picker"),a.setAttribute("accept",".b71,.json"),a.style.position="absolute",a.style.left="-1000px",a.addEventListener("change",(t=(0,W._)(function(e){var r,t,n,i,s,_,o,l;return(0,q.__generator)(this,function(e){switch(e.label){case 0:if(e.trys.push([0,4,,6]),!(t=a&&(null===(r=a.files)||void 0===r?void 0:r.item(0))))return[3,3];return[4,new Promise(function(e,a){var r=new FileReader;r.onload=function(){var a;e((null===(a=r.result)||void 0===a?void 0:a.toString())||"")},r.onerror=function(){a(r.error)},r.readAsText(t)})];case 1:if(i=(n=JSON.parse(e.sent())).fileType,s=n.signedPayload,_=n.payload,"B71-save-file"!==i)throw Error("Not a B71 save file");if(_)for(var u in localStorage.clear(),_)localStorage.setItem(u,JSON.stringify(_[u]));else if(s)for(var d in o=JSON.parse(s),localStorage.clear(),o)localStorage.setItem(d,o[d]);return[4,aC({title:et("settings.save_file_loaded"),content:[et("settings.save_file_loaded_help"),{text:et("settings.save_file_loaded_ok")}]})];case 2:e.sent(),window.location.reload(),e.label=3;case 3:return[3,6];case 4:return l=e.sent(),[4,aC({title:et("settings.save_file_error"),content:[l.message,{text:et("settings.save_file_loaded_ok")}]})];case 5:return e.sent(),[3,6];case 6:return a.value="",[2]}})}),function(e){return t.apply(this,arguments)})),document.body.appendChild(a)}return null===(e=document.getElementById("save_file_picker"))||void 0===e||e.click(),[2]})})()}}),a.push({icon:ef["icon:coins"],text:et("settings.max_coins",{max:X()}),help:et("settings.max_coins_help"),value:function(){return(0,W._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return U("max_coins",(Z("max_coins",2)+1)%7),[4,rV()];case 1:return e.sent(),[2]}})})()}}),a.push({icon:ef["icon:reset"],text:et("settings.reset"),help:et("settings.reset_help"),value:function(){return(0,W._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return[4,aC({title:et("settings.reset"),content:[et("settings.reset_instruction"),{text:et("settings.reset_confirm"),value:!0},{text:et("settings.reset_cancel"),value:!1}],allowClose:!0})];case 1:return e.sent()&&(localStorage.clear(),window.location.reload()),[2]}})})()}}),a.push({text:et("settings.autoplay"),help:et("settings.autoplay_help"),value:function(){return(0,W._)(function(){return(0,q.__generator)(this,function(e){return r2(!1),[2]})})()}}),a.push({text:et("settings.stress_test"),help:et("settings.stress_test_help"),value:function(){return(0,W._)(function(){return(0,q.__generator)(this,function(e){return r2(!0),[2]})})()}}),[4,aC({title:et("main_menu.settings_title"),content:[et("main_menu.settings_help")].concat(M(a)),allowClose:!0,className:"settings"})];case 1:return(o=l.sent())&&(o(),r0.needsRender=!0),[2]}})})).apply(this,arguments)}function rN(){return rU.apply(this,arguments)}function rU(){return(rU=(0,W._)(function(){var e;return(0,q.__generator)(this,function(a){switch(a.label){case 0:if(a.trys.push([0,10,,11]),!(document.fullscreenEnabled||document.webkitFullscreenEnabled))return[2,!1];if(!(null!==document.fullscreenElement&&!e0("fullscreen")))return[3,5];if(!document.exitFullscreen)return[3,2];return[4,document.exitFullscreen()];case 1:case 3:case 6:case 8:return a.sent(),[2,!0];case 2:if(!document.webkitCancelFullScreen)return[3,4];return[4,document.webkitCancelFullScreen()];case 4:return[3,9];case 5:if(!(e0("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(a.sent()),[3,11];case 11:return[2,!1]}})})).apply(this,arguments)}function rK(){return(rK=(0,W._)(function(){var e,a,r,t,n,i;return(0,q.__generator)(this,function(s){switch(s.label){case 0:return e=Y(),a=e0("mobile-mode")?"help":"tooltip",r=eS.sort(function(e,a){return e.threshold-a.threshold}).map(function(r){var t=r.name,n=r.id,i=r.threshold,s=r.icon,_=r.help;return z({text:t,disabled:e'):"";return z({text:e.name+i,disabled:!!n,value:{level:e},icon:ef[e.name]},a,(null==n?void 0:n.text)||ex(e))}),[4,aC({title:et("unlocks.title_upgrades",{unlocked:r.filter(function(e){return!e.disabled}).length,out_of:r.length}),content:["".concat(et("unlocks.intro",{ts:e}),"\n ").concat(r.find(function(e){return e.disabled})?et("unlocks.greyed_out_help"):"","
")].concat(M(r),[et("unlocks.level",{unlocked:n.filter(function(e){return!e.disabled}).length,out_of:n.length})],M(n)),allowClose:!0,className:e0("mobile-mode")?"":"actionsAsGrid"})];case 1:if(!(i=s.sent()))return[3,3];return[4,rY(r0)];case 2:s.sent()&&r1(w({},i)),s.label=3;case 3:return[2]}})})).apply(this,arguments)}function rY(e){return rX.apply(this,arguments)}function rX(){return(rX=(0,W._)(function(e){return(0,q.__generator)(this,function(a){return!e.currentLevel||aP?[2,!0]:(rM(!0),[2,aC({title:et("confirmRestart.title"),content:[et("confirmRestart.text"),{value:!0,text:et("confirmRestart.yes")},{value:!1,text:et("confirmRestart.no")}]})])})})).apply(this,arguments)}var rJ={ArrowLeft:0,ArrowRight:0,Shift:0};function r$(e,a){rJ[e]=a,r0.keyboardPuckSpeed=(rJ.ArrowRight-rJ.ArrowLeft)*(1+2*rJ.Shift)*r0.gameZoneWidth/50}document.addEventListener("keydown",(r=(0,W._)(function(e){return(0,q.__generator)(this,function(a){return"f"!==e.key.toLowerCase()||e.ctrlKey||e.metaKey?e.key in rJ&&r$(e.key,1):(e1("fullscreen"),rN())," "!==e.key||aP||(r0.running?rM(!0):rx(),e.preventDefault()),[2]})}),function(e){return r.apply(this,arguments)}));var rQ=new Date;document.addEventListener("keyup",(t=(0,W._)(function(e){var a,r,t,n,i;return(0,q.__generator)(this,function(s){switch(s.label){case 0:if(i=document.querySelector("button:focus"),!(e.key in rJ))return[3,1];return r$(e.key,0),[3,10];case 1:if("ArrowDown"!==e.key||(null==i?void 0:null===(a=i.nextElementSibling)||void 0===a?void 0:a.tagName)!=="BUTTON")return[3,2];return null==i||null===(r=i.nextElementSibling)||void 0===r||r.focus(),[3,10];case 2:if("ArrowUp"!==e.key||(null==i?void 0:null===(t=i.previousElementSibling)||void 0===t?void 0:t.tagName)!=="BUTTON")return[3,3];return null==i||null===(n=i.previousElementSibling)||void 0===n||n.focus(),[3,10];case 3:if(!("Escape"===e.key&&aO))return[3,4];return aO(),[3,10];case 4:if(!("Escape"===e.key&&r0.running))return[3,5];return rM(!0),[3,10];case 5:if(!("m"===e.key.toLowerCase()&&!aP))return[3,6];return rF().then(),[3,10];case 6:if(!("s"===e.key.toLowerCase()&&!aP))return[3,7];return rW(r0).then(),[3,10];case 7:if(!("r"===e.key.toLowerCase()&&!aP&&rQaQ(r0),a=e&&r0.perks.picky_eater&&eA(r0),r=e&&eZ(r0),t=eH(r0),n=r0.perks.clairvoyant,i=aS(r0);a||r||-1!==t||r0.perks.zen||(i=0);var s=n&&r0.brickHP.reduce(function(e,a){return e+a},0),_=r0.gameZoneWidth+"_"+r0.bricks.join("_")+ai.complete+"_"+t+"_"+a+"_"+r+"_"+r0.ballsColor+"_"+r0.perks.pierce_color+"_"+s+"_"+i;if(_!==am){am=_,ap.width=r0.gameZoneWidth,ap.height=r0.gameZoneWidth+1;var o=ap.getContext("2d");o.clearRect(0,0,r0.gameZoneWidth,r0.gameZoneWidth),o.resetTransform(),o.translate(-r0.offsetX,0),r0.bricks.forEach(function(s,_){var l=eP(r0,_),u=eO(r0,_);if(s){var d=t===Math.floor(_/r0.level.size),c=r0.ballsColor!==s&&"black"!==s&&a||e&&r0.perks.zen&&"black"===s||d||r;o.globalCompositeOperation="source-over",ak(r0,o,s,l,u,c?i:-1,n>=2),r0.brickHP[_]>1&&n&&(o.globalCompositeOperation="source-over",ay(o,r0.brickHP[_].toString(),n>=2?s:r0.level.color,r0.puckHeight,l,u)),"black"===s&&(o.globalCompositeOperation="source-over",function(e,a,r,t,n){var i="svg"+a+"_"+r+"_"+a.complete;if(!ag[i]){var s=document.createElement("canvas");s.width=r,s.height=r;var _=s.getContext("2d"),o=r/Math.max(a.width,a.height),l=a.width*o,u=a.height*o;_.drawImage(a,(r-l)/2,(r-u)/2,l,u),ag[i]=s}e.drawImage(ag[i],Math.round(t-r/2),Math.round(n-r/2))}(o,ai,r0.brickWidth,l,u))}})}an.drawImage(ap,r0.offsetX,0)}(),rH("render:lights"),an.globalCompositeOperation="screen",rd(e.lights,function(a){var r=a.x,t=a.y,n=a.time,i=a.color,s=(a.size,a.duration);an.globalAlpha=.5*Math.min(1,2-(e.levelTime-n)/s*2),ak(e,an,i,r,t,-1,e.perks.clairvoyant>=2)}),rH("render:texts"),an.globalCompositeOperation="screen",rd(e.texts,function(a){var r=a.x,t=a.y,n=a.time,i=a.color,s=a.size,_=a.duration,o=e.levelTime-n;an.globalAlpha=Math.max(0,Math.min(1,2-o/_*2)),an.globalCompositeOperation="source-over",ay(an,a.text,i,s,r,t-o/10)}),rH("render:particles"),rd(e.particles,function(a){var r=a.x,t=a.y,n=a.time,i=a.color,s=a.size,_=a.duration;an.globalAlpha=Math.max(0,Math.min(1,2-(e.levelTime-n)/_*2)),an.globalCompositeOperation="screen",ab(an,i,s,r,t)}),rH("render:extra_life"),e.perks.extra_life){an.globalAlpha=1,an.globalCompositeOperation="source-over",an.fillStyle=e.puckColor;for(var y=0;y