From d1fe5c013c308a4c31002a4fe268041ac534deaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Sun, 14 Mar 2021 14:50:04 +0100 Subject: [PATCH 01/25] Bump dev to 2.031.6 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- package.json | 2 +- src/Data/Moddata.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index de60e309..a1edba83 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Mo(),l("tooltip").innerHTML}function Bo(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBar").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),Mo(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Eo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Oo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=No(e[t],e[t].price)}function Fo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=No(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=No(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Wo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Wo("Elder"),!Ho("Veteran")&&e>=14&&Wo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ho("Mathematician")||Vt[e].amount=1&&Wo("One with everything"),1===o&&Wo("Mathematician"),1===n&&Wo("Base 10"),i>=100&&Wo("Centennial"),i>=150&&Wo("Centennial and a half"),i>=200&&Wo("Bicentennial"),i>=250&&Wo("Bicentennial and a half"),i>=300&&Wo("Tricentennial"),i>=350&&Wo("Tricentennial and a half"),i>=400&&Wo("Quadricentennial"),i>=450&&Wo("Quadricentennial and a half"),i>=500&&Wo("Quincentennial"),i>=550&&Wo("Quincentennial and a half"),i>=600&&Wo("Sexcentennial"),t>=100&&Wo("Builder"),t>=500&&Wo("Architect"),t>=1e3&&Wo("Engineer"),t>=2e3&&Wo("Lord of Constructs"),t>=4e3&&Wo("Grand design"),t>=8e3&&Wo("Ecumenopolis"),Ee>=20&&Wo("Enhancer"),Ee>=50&&Wo("Augmenter"),Ee>=100&&Wo("Upgrader"),Ee>=200&&Wo("Lord of Progress"),Ee>=300&&Wo("The full picture"),Ee>=400&&Wo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Wo("Polymath"),t>=8e3&&Ee>=400&&Wo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Wo("The elder scrolls");let a=!0;for(const e of Object.keys(jo))Zt(jo[e])||(a=!1);a&&Wo("Spooky cookies");let r=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(r=!1);if(r&&Wo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Wo("O Fortuna")}}function Io(e,t){wo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Wo("Click"),o.amount>=2&&Wo("Double-click"),o.amount>=50&&Wo("Mouse wheel"),o.amount>=100&&Wo("Of Mice and Men"),o.amount>=200&&Wo("The Digital"),o.amount>=300&&Wo("Extreme polydactyly"),o.amount>=400&&Wo("Dr. T"),o.amount>=500&&Wo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Wo("With her finger and her thumb"),o.amount>=700&&Wo("Gotta hand it to you"),o.amount>=800&&Wo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Wo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Lo(),$o(),n!==Oe&&Lo(),De-Game.cookiesPs}function zo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Wo("Elder nap"),Ne>=5&&Wo("Elder slumber")):"Elder Covenant"===e?Wo("Elder calm"):"Prism heart biscuits"===e?Wo("Lovely cookies"):"Heavenly key"===e&&Wo("Wholesome");const t=Oe;Lo(),$o(),t!==Oe&&Lo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function Vo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=Io(t,e),1!==e&&(Se=1);return o}function _o(){for(const e of Object.keys(Game.Objects))ct[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Xo(){ct=Vo(1),dt=Vo(10),pt=Vo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=zo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Jo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function tn(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){for(let e=0;eht[0]&&(ht=[t,e]))}}function nn(){bo(),on(),en(),tn(),qo(),Jo(),Zo(),ce=new Po(Q[Q.length-1]),de=new Po(Q[Q.length-1]),pe=new Po(Q[Q.length-1]),ue=new Po(Q[Q.length-1]),me=new Po(q[q.length-1]),he=new Po(5),Yo(),Eo(),Xo(),_o(),Fo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function cn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const fn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Fo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){on(),Fo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Eo(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in an)if(void 0===e[t])o=!0,e[t]=an[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n]);else for(const n in an.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n]);o&&Tn(),xn();for(const e in an)"Header"!==e&&void 0!==fn[e].func&&fn[e].func()}else Mn(an)}function Sn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Bn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Lo(),t=De,wo()),Wt>=1e6&&Wo("Sacrifice"),Wt>=1e9&&Wo("Oblivion"),Wt>=1e12&&Wo("From scratch"),Wt>=1e15&&Wo("Nihilism"),Wt>=1e18&&Wo("Dematerialize"),Wt>=1e21&&Wo("Nil zero zilch"),Wt>=1e24&&Wo("Transcendence"),Wt>=1e27&&Wo("Obliterate"),Wt>=1e30&&Wo("Negative void"),Wt>=1e33&&Wo("To crumbs, you say?"),Wt>=1e36&&Wo("You get nothing"),Wt>=1e39&&Wo("Humble rebeginnings"),Wt>=1e42&&Wo("The end of the world"),Wt>=1e45&&Wo("Oh, you're back"),Wt>=1e48&&Wo("Lazarus"),Wt>=1e51&&Wo("Smurf account"),Wt>=1e54&&Wo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Lo(),$o(),o!==Oe&&Lo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(i.push(jo[e]),n=!0);const a=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(a.push(Uo[e]),n=!0);const r=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(r.push(Do[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ro))Game.HasUnlocked(Ro[e])||(d.push(Ro[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Ao))Game.Has(Ao[t])||e.push(Ao[t]);0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===fn[t].type){const n=document.createElement("a");fn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]++,e[t]===fn[t].label.length?(e[t]=0,fn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==fn[t].func&&fn[t].func(),l(Fn+t).innerHTML=fn[t].label[e[t]],Tn()}(t)},n.textContent=fn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=fn[t].desc,o.appendChild(i),o}if("vol"===fn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=fn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===fn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${fn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=fn[t].desc,o.appendChild(s),o}if("color"===fn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=fn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Lo(),$o(),o!==Oe&&Lo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Rn)){const n=$n(t,Rn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Hn)){const n=$n(t,Hn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in fn)fn[e].group===t&&o.appendChild(In(e))}else for(const e of Object.keys(fn))fn[e].group===t&&o.appendChild(In(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),l("ascendTooltip").innerHTML+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:""}}function _n(){yn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))To(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),En()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Vn(),En(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",xn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Mo(),l("tooltip").innerHTML}function Bo(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBar").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),Mo(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Eo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Oo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=No(e[t],e[t].price)}function Fo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=No(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=No(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Wo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Wo("Elder"),!Ho("Veteran")&&e>=14&&Wo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ho("Mathematician")||Vt[e].amount=1&&Wo("One with everything"),1===o&&Wo("Mathematician"),1===n&&Wo("Base 10"),i>=100&&Wo("Centennial"),i>=150&&Wo("Centennial and a half"),i>=200&&Wo("Bicentennial"),i>=250&&Wo("Bicentennial and a half"),i>=300&&Wo("Tricentennial"),i>=350&&Wo("Tricentennial and a half"),i>=400&&Wo("Quadricentennial"),i>=450&&Wo("Quadricentennial and a half"),i>=500&&Wo("Quincentennial"),i>=550&&Wo("Quincentennial and a half"),i>=600&&Wo("Sexcentennial"),t>=100&&Wo("Builder"),t>=500&&Wo("Architect"),t>=1e3&&Wo("Engineer"),t>=2e3&&Wo("Lord of Constructs"),t>=4e3&&Wo("Grand design"),t>=8e3&&Wo("Ecumenopolis"),Ee>=20&&Wo("Enhancer"),Ee>=50&&Wo("Augmenter"),Ee>=100&&Wo("Upgrader"),Ee>=200&&Wo("Lord of Progress"),Ee>=300&&Wo("The full picture"),Ee>=400&&Wo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Wo("Polymath"),t>=8e3&&Ee>=400&&Wo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Wo("The elder scrolls");let a=!0;for(const e of Object.keys(jo))Zt(jo[e])||(a=!1);a&&Wo("Spooky cookies");let r=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(r=!1);if(r&&Wo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Wo("O Fortuna")}}function Io(e,t){wo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Wo("Click"),o.amount>=2&&Wo("Double-click"),o.amount>=50&&Wo("Mouse wheel"),o.amount>=100&&Wo("Of Mice and Men"),o.amount>=200&&Wo("The Digital"),o.amount>=300&&Wo("Extreme polydactyly"),o.amount>=400&&Wo("Dr. T"),o.amount>=500&&Wo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Wo("With her finger and her thumb"),o.amount>=700&&Wo("Gotta hand it to you"),o.amount>=800&&Wo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Wo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Lo(),$o(),n!==Oe&&Lo(),De-Game.cookiesPs}function zo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Wo("Elder nap"),Ne>=5&&Wo("Elder slumber")):"Elder Covenant"===e?Wo("Elder calm"):"Prism heart biscuits"===e?Wo("Lovely cookies"):"Heavenly key"===e&&Wo("Wholesome");const t=Oe;Lo(),$o(),t!==Oe&&Lo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function Vo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=Io(t,e),1!==e&&(Se=1);return o}function _o(){for(const e of Object.keys(Game.Objects))ct[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Xo(){ct=Vo(1),dt=Vo(10),pt=Vo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=zo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Jo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function tn(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){for(let e=0;eht[0]&&(ht=[t,e]))}}function nn(){bo(),on(),en(),tn(),qo(),Jo(),Zo(),ce=new Po(Q[Q.length-1]),de=new Po(Q[Q.length-1]),pe=new Po(Q[Q.length-1]),ue=new Po(Q[Q.length-1]),me=new Po(q[q.length-1]),he=new Po(5),Yo(),Eo(),Xo(),_o(),Fo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function cn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const fn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Fo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.6"})}function Cn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){on(),Fo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Eo(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in an)if(void 0===e[t])o=!0,e[t]=an[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n]);else for(const n in an.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n]);o&&Tn(),xn();for(const e in an)"Header"!==e&&void 0!==fn[e].func&&fn[e].func()}else Mn(an)}function Sn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Bn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Lo(),t=De,wo()),Wt>=1e6&&Wo("Sacrifice"),Wt>=1e9&&Wo("Oblivion"),Wt>=1e12&&Wo("From scratch"),Wt>=1e15&&Wo("Nihilism"),Wt>=1e18&&Wo("Dematerialize"),Wt>=1e21&&Wo("Nil zero zilch"),Wt>=1e24&&Wo("Transcendence"),Wt>=1e27&&Wo("Obliterate"),Wt>=1e30&&Wo("Negative void"),Wt>=1e33&&Wo("To crumbs, you say?"),Wt>=1e36&&Wo("You get nothing"),Wt>=1e39&&Wo("Humble rebeginnings"),Wt>=1e42&&Wo("The end of the world"),Wt>=1e45&&Wo("Oh, you're back"),Wt>=1e48&&Wo("Lazarus"),Wt>=1e51&&Wo("Smurf account"),Wt>=1e54&&Wo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Lo(),$o(),o!==Oe&&Lo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(i.push(jo[e]),n=!0);const a=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(a.push(Uo[e]),n=!0);const r=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(r.push(Do[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ro))Game.HasUnlocked(Ro[e])||(d.push(Ro[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Ao))Game.Has(Ao[t])||e.push(Ao[t]);0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===fn[t].type){const n=document.createElement("a");fn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]++,e[t]===fn[t].label.length?(e[t]=0,fn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==fn[t].func&&fn[t].func(),l(Fn+t).innerHTML=fn[t].label[e[t]],Tn()}(t)},n.textContent=fn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=fn[t].desc,o.appendChild(i),o}if("vol"===fn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=fn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===fn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${fn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=fn[t].desc,o.appendChild(s),o}if("color"===fn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=fn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Lo(),$o(),o!==Oe&&Lo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Rn)){const n=$n(t,Rn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Hn)){const n=$n(t,Hn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in fn)fn[e].group===t&&o.appendChild(In(e))}else for(const e of Object.keys(fn))fn[e].group===t&&o.appendChild(In(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),l("ascendTooltip").innerHTML+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:""}}function _n(){yn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.6",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))To(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),En()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Vn(),En(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.6 loaded!"):Game.Notify("Cookie Monster version 2.031.6 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.6 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",xn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Mn(t.settings),"2.031.6"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index de60e309..a1edba83 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Mo(),l("tooltip").innerHTML}function Bo(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBar").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),Mo(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Eo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Oo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=No(e[t],e[t].price)}function Fo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=No(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=No(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Wo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Wo("Elder"),!Ho("Veteran")&&e>=14&&Wo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ho("Mathematician")||Vt[e].amount=1&&Wo("One with everything"),1===o&&Wo("Mathematician"),1===n&&Wo("Base 10"),i>=100&&Wo("Centennial"),i>=150&&Wo("Centennial and a half"),i>=200&&Wo("Bicentennial"),i>=250&&Wo("Bicentennial and a half"),i>=300&&Wo("Tricentennial"),i>=350&&Wo("Tricentennial and a half"),i>=400&&Wo("Quadricentennial"),i>=450&&Wo("Quadricentennial and a half"),i>=500&&Wo("Quincentennial"),i>=550&&Wo("Quincentennial and a half"),i>=600&&Wo("Sexcentennial"),t>=100&&Wo("Builder"),t>=500&&Wo("Architect"),t>=1e3&&Wo("Engineer"),t>=2e3&&Wo("Lord of Constructs"),t>=4e3&&Wo("Grand design"),t>=8e3&&Wo("Ecumenopolis"),Ee>=20&&Wo("Enhancer"),Ee>=50&&Wo("Augmenter"),Ee>=100&&Wo("Upgrader"),Ee>=200&&Wo("Lord of Progress"),Ee>=300&&Wo("The full picture"),Ee>=400&&Wo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Wo("Polymath"),t>=8e3&&Ee>=400&&Wo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Wo("The elder scrolls");let a=!0;for(const e of Object.keys(jo))Zt(jo[e])||(a=!1);a&&Wo("Spooky cookies");let r=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(r=!1);if(r&&Wo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Wo("O Fortuna")}}function Io(e,t){wo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Wo("Click"),o.amount>=2&&Wo("Double-click"),o.amount>=50&&Wo("Mouse wheel"),o.amount>=100&&Wo("Of Mice and Men"),o.amount>=200&&Wo("The Digital"),o.amount>=300&&Wo("Extreme polydactyly"),o.amount>=400&&Wo("Dr. T"),o.amount>=500&&Wo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Wo("With her finger and her thumb"),o.amount>=700&&Wo("Gotta hand it to you"),o.amount>=800&&Wo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Wo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Lo(),$o(),n!==Oe&&Lo(),De-Game.cookiesPs}function zo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Wo("Elder nap"),Ne>=5&&Wo("Elder slumber")):"Elder Covenant"===e?Wo("Elder calm"):"Prism heart biscuits"===e?Wo("Lovely cookies"):"Heavenly key"===e&&Wo("Wholesome");const t=Oe;Lo(),$o(),t!==Oe&&Lo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function Vo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=Io(t,e),1!==e&&(Se=1);return o}function _o(){for(const e of Object.keys(Game.Objects))ct[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Xo(){ct=Vo(1),dt=Vo(10),pt=Vo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=zo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Jo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function tn(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){for(let e=0;eht[0]&&(ht=[t,e]))}}function nn(){bo(),on(),en(),tn(),qo(),Jo(),Zo(),ce=new Po(Q[Q.length-1]),de=new Po(Q[Q.length-1]),pe=new Po(Q[Q.length-1]),ue=new Po(Q[Q.length-1]),me=new Po(q[q.length-1]),he=new Po(5),Yo(),Eo(),Xo(),_o(),Fo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function cn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const fn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Fo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){on(),Fo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Eo(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in an)if(void 0===e[t])o=!0,e[t]=an[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n]);else for(const n in an.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n]);o&&Tn(),xn();for(const e in an)"Header"!==e&&void 0!==fn[e].func&&fn[e].func()}else Mn(an)}function Sn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Bn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Lo(),t=De,wo()),Wt>=1e6&&Wo("Sacrifice"),Wt>=1e9&&Wo("Oblivion"),Wt>=1e12&&Wo("From scratch"),Wt>=1e15&&Wo("Nihilism"),Wt>=1e18&&Wo("Dematerialize"),Wt>=1e21&&Wo("Nil zero zilch"),Wt>=1e24&&Wo("Transcendence"),Wt>=1e27&&Wo("Obliterate"),Wt>=1e30&&Wo("Negative void"),Wt>=1e33&&Wo("To crumbs, you say?"),Wt>=1e36&&Wo("You get nothing"),Wt>=1e39&&Wo("Humble rebeginnings"),Wt>=1e42&&Wo("The end of the world"),Wt>=1e45&&Wo("Oh, you're back"),Wt>=1e48&&Wo("Lazarus"),Wt>=1e51&&Wo("Smurf account"),Wt>=1e54&&Wo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Lo(),$o(),o!==Oe&&Lo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(i.push(jo[e]),n=!0);const a=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(a.push(Uo[e]),n=!0);const r=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(r.push(Do[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ro))Game.HasUnlocked(Ro[e])||(d.push(Ro[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Ao))Game.Has(Ao[t])||e.push(Ao[t]);0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===fn[t].type){const n=document.createElement("a");fn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]++,e[t]===fn[t].label.length?(e[t]=0,fn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==fn[t].func&&fn[t].func(),l(Fn+t).innerHTML=fn[t].label[e[t]],Tn()}(t)},n.textContent=fn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=fn[t].desc,o.appendChild(i),o}if("vol"===fn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=fn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===fn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${fn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=fn[t].desc,o.appendChild(s),o}if("color"===fn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=fn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Lo(),$o(),o!==Oe&&Lo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Rn)){const n=$n(t,Rn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Hn)){const n=$n(t,Hn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in fn)fn[e].group===t&&o.appendChild(In(e))}else for(const e of Object.keys(fn))fn[e].group===t&&o.appendChild(In(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),l("ascendTooltip").innerHTML+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:""}}function _n(){yn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))To(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),En()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Vn(),En(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",xn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Mo(),l("tooltip").innerHTML}function Bo(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBar").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),Mo(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Eo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Oo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=No(e[t],e[t].price)}function Fo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=No(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=No(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Wo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Wo("Elder"),!Ho("Veteran")&&e>=14&&Wo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ho("Mathematician")||Vt[e].amount=1&&Wo("One with everything"),1===o&&Wo("Mathematician"),1===n&&Wo("Base 10"),i>=100&&Wo("Centennial"),i>=150&&Wo("Centennial and a half"),i>=200&&Wo("Bicentennial"),i>=250&&Wo("Bicentennial and a half"),i>=300&&Wo("Tricentennial"),i>=350&&Wo("Tricentennial and a half"),i>=400&&Wo("Quadricentennial"),i>=450&&Wo("Quadricentennial and a half"),i>=500&&Wo("Quincentennial"),i>=550&&Wo("Quincentennial and a half"),i>=600&&Wo("Sexcentennial"),t>=100&&Wo("Builder"),t>=500&&Wo("Architect"),t>=1e3&&Wo("Engineer"),t>=2e3&&Wo("Lord of Constructs"),t>=4e3&&Wo("Grand design"),t>=8e3&&Wo("Ecumenopolis"),Ee>=20&&Wo("Enhancer"),Ee>=50&&Wo("Augmenter"),Ee>=100&&Wo("Upgrader"),Ee>=200&&Wo("Lord of Progress"),Ee>=300&&Wo("The full picture"),Ee>=400&&Wo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Wo("Polymath"),t>=8e3&&Ee>=400&&Wo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Wo("The elder scrolls");let a=!0;for(const e of Object.keys(jo))Zt(jo[e])||(a=!1);a&&Wo("Spooky cookies");let r=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(r=!1);if(r&&Wo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Wo("O Fortuna")}}function Io(e,t){wo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Wo("Click"),o.amount>=2&&Wo("Double-click"),o.amount>=50&&Wo("Mouse wheel"),o.amount>=100&&Wo("Of Mice and Men"),o.amount>=200&&Wo("The Digital"),o.amount>=300&&Wo("Extreme polydactyly"),o.amount>=400&&Wo("Dr. T"),o.amount>=500&&Wo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Wo("With her finger and her thumb"),o.amount>=700&&Wo("Gotta hand it to you"),o.amount>=800&&Wo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Wo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Lo(),$o(),n!==Oe&&Lo(),De-Game.cookiesPs}function zo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Wo("Elder nap"),Ne>=5&&Wo("Elder slumber")):"Elder Covenant"===e?Wo("Elder calm"):"Prism heart biscuits"===e?Wo("Lovely cookies"):"Heavenly key"===e&&Wo("Wholesome");const t=Oe;Lo(),$o(),t!==Oe&&Lo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function Vo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=Io(t,e),1!==e&&(Se=1);return o}function _o(){for(const e of Object.keys(Game.Objects))ct[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=xo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Xo(){ct=Vo(1),dt=Vo(10),pt=Vo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=zo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Jo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function tn(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){for(let e=0;eht[0]&&(ht=[t,e]))}}function nn(){bo(),on(),en(),tn(),qo(),Jo(),Zo(),ce=new Po(Q[Q.length-1]),de=new Po(Q[Q.length-1]),pe=new Po(Q[Q.length-1]),ue=new Po(Q[Q.length-1]),me=new Po(q[q.length-1]),he=new Po(5),Yo(),Eo(),Xo(),_o(),Fo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function cn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const fn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Fo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.6"})}function Cn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){on(),Fo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Eo(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in an)if(void 0===e[t])o=!0,e[t]=an[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n]);else for(const n in an.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n]);o&&Tn(),xn();for(const e in an)"Header"!==e&&void 0!==fn[e].func&&fn[e].func()}else Mn(an)}function Sn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Bn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Lo(),t=De,wo()),Wt>=1e6&&Wo("Sacrifice"),Wt>=1e9&&Wo("Oblivion"),Wt>=1e12&&Wo("From scratch"),Wt>=1e15&&Wo("Nihilism"),Wt>=1e18&&Wo("Dematerialize"),Wt>=1e21&&Wo("Nil zero zilch"),Wt>=1e24&&Wo("Transcendence"),Wt>=1e27&&Wo("Obliterate"),Wt>=1e30&&Wo("Negative void"),Wt>=1e33&&Wo("To crumbs, you say?"),Wt>=1e36&&Wo("You get nothing"),Wt>=1e39&&Wo("Humble rebeginnings"),Wt>=1e42&&Wo("The end of the world"),Wt>=1e45&&Wo("Oh, you're back"),Wt>=1e48&&Wo("Lazarus"),Wt>=1e51&&Wo("Smurf account"),Wt>=1e54&&Wo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Lo(),$o(),o!==Oe&&Lo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(i.push(jo[e]),n=!0);const a=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(a.push(Uo[e]),n=!0);const r=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(r.push(Do[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ro))Game.HasUnlocked(Ro[e])||(d.push(Ro[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Ao))Game.Has(Ao[t])||e.push(Ao[t]);0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===fn[t].type){const n=document.createElement("a");fn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]++,e[t]===fn[t].label.length?(e[t]=0,fn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==fn[t].func&&fn[t].func(),l(Fn+t).innerHTML=fn[t].label[e[t]],Tn()}(t)},n.textContent=fn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=fn[t].desc,o.appendChild(i),o}if("vol"===fn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=fn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===fn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${fn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=fn[t].desc,o.appendChild(s),o}if("color"===fn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=fn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Lo(),$o(),o!==Oe&&Lo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Rn)){const n=$n(t,Rn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Hn)){const n=$n(t,Hn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in fn)fn[e].group===t&&o.appendChild(In(e))}else for(const e of Object.keys(fn))fn[e].group===t&&o.appendChild(In(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),l("ascendTooltip").innerHTML+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:""}}function _n(){yn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.6",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))To(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return So("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),En()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Vn(),En(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.6 loaded!"):Game.Notify("Cookie Monster version 2.031.6 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.6 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",xn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Mn(t.settings),"2.031.6"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/package.json b/package.json index 956603fb..34c0e5a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cookiemonster-mod", - "version": "2.031.5", + "version": "2.031.6", "description": "Cookie Monster is an add-on that you can load into Cookie Clicker which offers a wide range of tools and statistics to enhance the game. It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want. This is a helper and everything is an option.", "main": "CookieMonster.js", "keywords": [ diff --git a/src/Data/Moddata.js b/src/Data/Moddata.js index f03a734c..85b6a6db 100644 --- a/src/Data/Moddata.js +++ b/src/Data/Moddata.js @@ -1,7 +1,7 @@ /** Data related directly to Cookie Monster */ export const VersionMajor = '2.031'; -export const VersionMinor = '5'; +export const VersionMinor = '6'; /** Information about Cookie Monster to be displayed in the info section */ export const ModDescription = `
From 932509a877993cd81f553caee7f88571a3cbe601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Sun, 14 Mar 2021 18:57:07 +0100 Subject: [PATCH 02/25] Added prettier (#661) * Added prettier * Added prettier * Added prettier --- .eslintrc.js | 71 +- .prettierrc.json | 5 + dist/CookieMonster.js.map | 2 +- package-lock.json | 107 +- package.json | 5 +- src/Cache/CPS/AverageQueue.js | 72 +- src/Cache/CPS/CPS.js | 119 +- src/Cache/CPS/CurrWrinklerCPS.js | 38 +- src/Cache/CPS/GetCPSBuffMult.js | 11 +- src/Cache/CPS/NoGoldSwitchCPS.js | 6 +- src/Cache/CPS/SellChoEgg.js | 28 +- src/Cache/CacheInit.js | 38 +- src/Cache/CacheLoop.js | 21 +- src/Cache/Dragon/CacheDragonAuras.js | 4 +- src/Cache/Dragon/Dragon.js | 110 +- src/Cache/PP/Building.js | 178 ++- src/Cache/PP/ColourOfPP.js | 45 +- src/Cache/PP/PP.js | 4 +- src/Cache/PP/Upgrade.js | 25 +- src/Cache/PriceAndIncome/PriceAndIncome.js | 78 +- src/Cache/Stats/ChainCookies.js | 130 +- src/Cache/Stats/HeavenlyChips.js | 44 +- src/Cache/Stats/MissingUpgrades.js | 59 +- src/Cache/Stats/Reindeer.js | 14 +- src/Cache/Stats/Stats.js | 116 +- src/Cache/Wrinklers/Wrinklers.js | 43 +- src/Config/CheckNotificationPermissions.js | 38 +- .../SaveLoadReload/SaveLoadReloadSettings.js | 127 +- src/Config/SpecificToggles.js | 67 +- src/Config/ToggleSetting.js | 38 +- src/Config/Toggles/ToggleBotBar.js | 14 +- src/Config/Toggles/ToggleDetailedTime.js | 4 +- src/Config/Toggles/ToggleGCTimer.js | 18 +- src/Config/Toggles/ToggleToolWarnPos.js | 22 +- .../Toggles/ToggleUpgradeBarAndColor.js | 23 +- .../Toggles/ToggleUpgradeBarFixedPos.js | 13 +- src/Config/Toggles/ToggleWrinklerButtons.js | 14 +- src/CookieMonster.js | 6 +- src/Data/Gamedata.js | 147 +- src/Data/Moddata.js | 2 +- src/Data/Scales.js | 271 ++-- src/Data/Sectionheaders.js | 30 +- src/Data/SettingClasses.js | 66 +- src/Data/SettingsData.js | 1361 +++++++++-------- src/Data/SettingsDefault.js | 220 +-- .../BeautifyFormatting.js | 196 ++- src/Disp/BuildingsUpgrades/Buildings.js | 137 +- src/Disp/BuildingsUpgrades/UpgradeBar.js | 143 +- src/Disp/BuildingsUpgrades/Upgrades.js | 148 +- src/Disp/Dragon/Dragon.js | 83 +- src/Disp/Draw.js | 79 +- .../GoldenCookieTimers/GoldenCookieTimers.js | 50 +- .../CalculateGrimoireRefillTime.js | 19 +- src/Disp/HelperFunctions/GetCPS.js | 42 +- src/Disp/HelperFunctions/GetLumpColor.js | 35 +- .../HelperFunctions/GetWrinkConfigBank.js | 18 +- src/Disp/HelperFunctions/PopWrinklers.js | 10 +- src/Disp/HelperFunctions/RefreshScale.js | 12 +- src/Disp/HelperFunctions/UpdateAscendState.js | 18 +- src/Disp/HelperFunctions/UpdateBackground.js | 11 +- src/Disp/HelperFunctions/UpdateColors.js | 35 +- src/Disp/InfoBars/BottomBar.js | 158 +- src/Disp/InfoBars/CreateDOMElements.js | 126 +- src/Disp/InfoBars/TimerBar.js | 276 ++-- .../Initialization/CreateWrinklerButton.js | 29 +- src/Disp/Initialization/CssArea.js | 8 +- .../UpdateBuildingUpgradeStyle.js | 8 +- src/Disp/Initialization/WhiteScreen.js | 18 +- src/Disp/MenuSections/AddMenus.js | 28 +- src/Disp/MenuSections/AddStatsPage.js | 417 +++-- src/Disp/MenuSections/CreateDOMElements.js | 179 ++- .../MenuSections/CreateMissingUpgrades.js | 148 +- src/Disp/MenuSections/CreateStatsSections.js | 996 ++++++++---- src/Disp/MenuSections/InfoPage.js | 57 +- src/Disp/MenuSections/Refreshmenu.js | 8 +- src/Disp/MenuSections/SettingsPage.js | 408 ++--- src/Disp/Notifications/Flash.js | 35 +- src/Disp/Notifications/Notification.js | 14 +- src/Disp/Notifications/Sound.js | 17 +- src/Disp/TabTitle/FavIcon.js | 24 +- src/Disp/TabTitle/TabTitle.js | 133 +- src/Disp/Tooltips/AscendButton.js | 71 +- src/Disp/Tooltips/CreateTooltip.js | 237 +-- src/Disp/Tooltips/PositionLocation.js | 29 +- src/Disp/Tooltips/Tooltip.js | 205 ++- src/Disp/Tooltips/UpdateTooltips.js | 729 +++++---- src/Disp/Tooltips/WrinklerTooltips.js | 96 +- src/Disp/VariablesAndData.js | 63 +- src/InitSaveLoad/init.js | 34 +- src/InitSaveLoad/load.js | 24 +- src/InitSaveLoad/save.js | 8 +- src/Main/CheckStates/Garden.js | 17 +- src/Main/CheckStates/GoldenCookie.js | 98 +- src/Main/CheckStates/Grimoire.js | 27 +- src/Main/CheckStates/Season.js | 28 +- src/Main/CheckStates/Ticker.js | 24 +- src/Main/CheckStates/Wrinkler.js | 77 +- src/Main/Initialization.js | 84 +- src/Main/Loop.js | 105 +- .../ReplaceGameElements/NativeGrimoire.js | 73 +- .../ReplaceGameElements/TooltipGrimoire.js | 30 +- .../ReplaceGameElements/TooltipUpgrades.js | 36 +- src/Main/ReplaceGameElements/Tooltips.js | 116 +- src/Main/ReplaceGameFunctions/FixMouse.js | 16 +- .../ReplaceGameFunctions/ReplaceNative.js | 246 +-- src/Main/WrinklerArea/AddDetectArea.js | 23 +- src/Sim/Calculations/CalculateGains.js | 436 +++--- src/Sim/Calculations/CheckOtherAchiev.js | 144 +- src/Sim/Calculations/NoGoldenSwitchCalc.js | 8 +- src/Sim/InitializeData/InitAchievement.js | 8 +- src/Sim/InitializeData/InitData.js | 32 +- src/Sim/InitializeData/InitUpgrade.js | 58 +- src/Sim/InitializeData/InitialBuildingData.js | 155 +- src/Sim/ReplacedGameFunctions/SimAuraMult.js | 16 +- src/Sim/ReplacedGameFunctions/SimEff.js | 7 +- .../SimGetHeavenlyMultiplier.js | 36 +- .../SimGetSellMultiplier.js | 6 +- .../SimGetTieredCpsMult.js | 63 +- src/Sim/ReplacedGameFunctions/SimHas.js | 10 +- src/Sim/ReplacedGameFunctions/SimHasAchiev.js | 2 +- src/Sim/ReplacedGameFunctions/SimHasAura.js | 11 +- src/Sim/ReplacedGameFunctions/SimHasGod.js | 24 +- .../SimModifyBuidlingPrice.js | 38 +- src/Sim/SimulationData/CopyData.js | 121 +- src/Sim/SimulationData/SimWin.js | 12 +- src/Sim/SimulationEvents/AuraChange.js | 79 +- src/Sim/SimulationEvents/BuyBuilding.js | 26 +- .../BuyBuildingBonusIncome.js | 67 +- src/Sim/SimulationEvents/BuyUpgrades.js | 248 +-- src/Sim/SimulationEvents/ResetAscension.js | 147 +- src/Sim/SimulationEvents/SellBuilding.js | 47 +- .../SimulationEvents/SellBuildingForChoEgg.js | 69 +- 132 files changed, 7296 insertions(+), 5047 deletions(-) create mode 100644 .prettierrc.json diff --git a/.eslintrc.js b/.eslintrc.js index 3da7a309..8c45ee69 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,40 +1,35 @@ module.exports = { - env: { - browser: true, - es2021: true, - }, - globals: { - Game: 'writable', - l: 'readonly', - b64_to_utf8: 'readonly', - utf8_to_b64: 'readonly', - realAudio: 'readonly', - BeautifyAll: 'readonly', - CM: 'writable', - unsafeWindow: 'readonly', - }, - extends: 'airbnb-base', - parserOptions: { - ecmaVersion: 12, - }, - rules: { - indent: ['error', 'tab'], - 'import/no-named-default': 'off', - 'import/no-mutable-exports': 'off', - 'no-tabs': 'off', - 'max-len': 'off', - 'no-param-reassign': 'off', - 'no-plusplus': 'off', - 'no-new-func': 'off', - 'no-restricted-syntax': 'off', - 'no-mixed-operators': 'off', - 'prefer-destructuring': 'off', - 'func-names': 'off', - 'no-console': 'off', - 'no-nested-ternary': 'off', - 'prefer-arrow-callback': 'off', - 'no-new': 'off', - 'no-alert': 'off', - 'no-restricted-globals': 'off', - }, + env: { + browser: true, + es2021: true, + }, + globals: { + Game: 'writable', + l: 'readonly', + b64_to_utf8: 'readonly', + utf8_to_b64: 'readonly', + realAudio: 'readonly', + BeautifyAll: 'readonly', + CM: 'writable', + unsafeWindow: 'readonly', + }, + extends: ['airbnb-base', 'plugin:prettier/recommended'], + parserOptions: { + ecmaVersion: 12, + }, + rules: { + 'import/no-named-default': 'off', + 'import/no-mutable-exports': 'off', + 'no-param-reassign': 'off', + 'no-plusplus': 'off', + 'no-new-func': 'off', + 'no-restricted-syntax': 'off', + 'prefer-destructuring': 'off', + 'func-names': 'off', + 'no-console': 'off', + 'no-nested-ternary': 'off', + 'no-new': 'off', + 'no-alert': 'off', + 'no-restricted-globals': 'off', + }, }; diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..94099675 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80 +} diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 7ef56382..2daef300 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","BuildingGetPrice","increase","CreateSimpleTooltip","placeholder","minWidth","Tooltip","desc","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CreateTooltip","TooltipAmor","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","ObjectsById","tileTooltip","toolTooltip","area","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","wrinkler","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CM","Options","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CookieMonster_CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IACA,IACA,KAIKC,EAAa,CAAC,GACnB,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIKC,EAAwB,CAAC,GAC9B,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMD,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CAACH,EAAWN,EAAWC,EAAYC,EAAaC,EAAaC,EAAUC,EAAaE,EAAWC,GASxGE,EAAc,CACnB,CAAC,6BAA8B,oCAAqC,SACpE,CAAC,2CAA4C,6EAA8E,SAC3H,CAAC,6BAA8B,qPAAsP,SACrR,CAAC,8BAA+B,kEAAmE,SACnG,CAAC,kCAAmC,2PAA4P,SAChS,CAAC,0BAA2B,gLAAiL,SAC7M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CAAC,+CAAgD,+CACjD,2EACA,GAID9oB,MAAO,IAAI8oB,GACV,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAED/F,aAAc,IAAI+F,GACjB,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAED9F,eAAgB,IAAI8F,GACnB,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,WAAchB,GAAoC7rB,EAAU+mB,mBAE7DC,QAAS,IAAI6F,GACZ,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAED5F,QAAS,IAAI4F,GACZ,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAED3F,SAAU,IAAI+F,GACb,MACA,iBACA,GACA,UAED9F,WAAY,IAAI0F,GACf,MACA,iBACA,aACA,6DAEDzF,oBAAqB,IAAIyF,GACxB,OACA,iBACA,CAAC,mBAAoB,mBACrB,8DACA,GACA,WAAchB,GAAoC7rB,EAAUonB,wBAE7DC,aAAc,IAAIwF,GACjB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEDvF,aAAc,IAAIuF,GACjB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEDtF,cAAe,IAAI0F,GAClB,MACA,iBACA,GACA,UAGDzF,gBAAiB,IAAIqF,GACpB,MACA,iBACA,aACA,sEAEDpF,gBAAiB,IAAIoF,GACpB,OACA,kBACA,CAAC,mBAAoB,mBACrB,yCACA,GACA,WAAchB,GAAoC7rB,EAAUynB,oBAE7DC,SAAU,IAAImF,GACb,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEDlF,SAAU,IAAIkF,GACb,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEDjF,UAAW,IAAIqF,GACd,MACA,kBACA,GACA,UAEDpF,YAAa,IAAIgF,GAChB,MACA,kBACA,aACA,8DAED/E,UAAW,IAAI+E,GACd,OACA,mBACA,CAAC,wBAAyB,YAC1B,+BACA,GAED9E,UAAW,IAAI8E,GACd,OACA,mBACA,CAAC,YAAa,YACd,+BACA,GAED7E,WAAY,IAAIiF,GACf,MACA,mBACA,GACA,UAEDhF,aAAc,IAAI4E,GACjB,MACA,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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","BuildingGetPrice","increase","CreateSimpleTooltip","placeholder","minWidth","Tooltip","desc","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CreateTooltip","TooltipAmor","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","ObjectsById","tileTooltip","toolTooltip","area","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","wrinkler","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CM","Options","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CookieMonster_CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ec2189ba..6834be4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cookiemonster-mod", - "version": "2.031.5", + "version": "2.031.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cookiemonster-mod", - "version": "2.031.5", + "version": "2.031.6", "license": "MIT", "dependencies": { "@eastdesire/jscolor": "^2.4.5" @@ -14,8 +14,11 @@ "devDependencies": { "eslint": "^7.19.0", "eslint-config-airbnb-base": "^14.2.1", + "eslint-config-prettier": "^8.1.0", "eslint-plugin-import": "^2.22.1", + "eslint-plugin-prettier": "^3.3.1", "npm-run-all": "^4.1.5", + "prettier": "2.2.1", "webpack": "^5.24.4", "webpack-cli": "^4.5.0" } @@ -857,6 +860,18 @@ "eslint-plugin-import": "^2.22.1" } }, + "node_modules/eslint-config-prettier": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", + "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.4", "dev": true, @@ -954,6 +969,27 @@ "dev": true, "license": "MIT" }, + "node_modules/eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=5.0.0", + "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "dev": true, @@ -1118,6 +1154,12 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "dev": true, @@ -2271,6 +2313,30 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/progress": { "version": "2.0.3", "dev": true, @@ -3639,6 +3705,13 @@ "object.entries": "^1.1.2" } }, + "eslint-config-prettier": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", + "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "dev": true, + "requires": {} + }, "eslint-import-resolver-node": { "version": "0.3.4", "dev": true, @@ -3721,6 +3794,15 @@ } } }, + "eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-scope": { "version": "5.1.1", "dev": true, @@ -3822,6 +3904,12 @@ "version": "3.1.3", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-json-stable-stringify": { "version": "2.1.0", "dev": true @@ -4538,6 +4626,21 @@ "version": "1.2.1", "dev": true }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, "progress": { "version": "2.0.3", "dev": true diff --git a/package.json b/package.json index 34c0e5a8..d1f14100 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cookiemonster-mod", - "version": "2.031.6", + "version": "2.031.5", "description": "Cookie Monster is an add-on that you can load into Cookie Clicker which offers a wide range of tools and statistics to enhance the game. It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want. This is a helper and everything is an option.", "main": "CookieMonster.js", "keywords": [ @@ -45,8 +45,11 @@ "devDependencies": { "eslint": "^7.19.0", "eslint-config-airbnb-base": "^14.2.1", + "eslint-config-prettier": "^8.1.0", "eslint-plugin-import": "^2.22.1", + "eslint-plugin-prettier": "^3.3.1", "npm-run-all": "^4.1.5", + "prettier": "2.2.1", "webpack": "^5.24.4", "webpack-cli": "^4.5.0" }, diff --git a/src/Cache/CPS/AverageQueue.js b/src/Cache/CPS/AverageQueue.js index b056d900..b7932a2f 100644 --- a/src/Cache/CPS/AverageQueue.js +++ b/src/Cache/CPS/AverageQueue.js @@ -1,7 +1,11 @@ /* eslint-disable no-unused-vars */ import { ClickTimes, CookieTimes } from '../../Disp/VariablesAndData'; import { - ChoEggDiff, ClicksDiff, CookiesDiff, WrinkDiff, WrinkFattestDiff, + ChoEggDiff, + ClicksDiff, + CookiesDiff, + WrinkDiff, + WrinkFattestDiff, } from '../VariablesAndData'; /** @@ -13,34 +17,38 @@ import { * @method calcAverage(timePeriod) Returns the average over the specified timeperiod */ export class CMAvgQueue { - constructor(maxLength) { - this.maxLength = maxLength; - this.queue = []; - } + constructor(maxLength) { + this.maxLength = maxLength; + this.queue = []; + } - addLatest(newValue) { - if (this.queue.push(newValue) > this.maxLength) { - this.queue.shift(); - } - } + addLatest(newValue) { + if (this.queue.push(newValue) > this.maxLength) { + this.queue.shift(); + } + } - /** - * This functions returns the average of the values in the queue - * @param {number} timePeriod The period in seconds to computer average over - * @returns {number} ret The average - */ - calcAverage(timePeriod) { - if (timePeriod > this.maxLength) timePeriod = this.maxLength; - if (timePeriod > this.queue.length) timePeriod = this.queue.length; - let ret = 0; - for (let i = this.queue.length - 1; i >= 0 && i > this.queue.length - 1 - timePeriod; i--) { - ret += this.queue[i]; - } - if (ret === 0) { - return 0; - } - return ret / timePeriod; - } + /** + * This functions returns the average of the values in the queue + * @param {number} timePeriod The period in seconds to computer average over + * @returns {number} ret The average + */ + calcAverage(timePeriod) { + if (timePeriod > this.maxLength) timePeriod = this.maxLength; + if (timePeriod > this.queue.length) timePeriod = this.queue.length; + let ret = 0; + for ( + let i = this.queue.length - 1; + i >= 0 && i > this.queue.length - 1 - timePeriod; + i-- + ) { + ret += this.queue[i]; + } + if (ret === 0) { + return 0; + } + return ret / timePeriod; + } } /** @@ -48,9 +56,9 @@ export class CMAvgQueue { * Called by CM.Cache.InitCache() */ export function InitCookiesDiff() { - CookiesDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); - WrinkDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); - WrinkFattestDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); - ChoEggDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); - ClicksDiff = new CMAvgQueue(ClickTimes[ClickTimes.length - 1]); + CookiesDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); + WrinkDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); + WrinkFattestDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); + ChoEggDiff = new CMAvgQueue(CookieTimes[CookieTimes.length - 1]); + ClicksDiff = new CMAvgQueue(ClickTimes[ClickTimes.length - 1]); } diff --git a/src/Cache/CPS/CPS.js b/src/Cache/CPS/CPS.js index 3bd44c39..7e4f8e6d 100644 --- a/src/Cache/CPS/CPS.js +++ b/src/Cache/CPS/CPS.js @@ -3,7 +3,28 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { ClickTimes, CookieTimes } from '../../Disp/VariablesAndData'; import { - CacheAverageClicks, CacheAverageCPS, CacheAverageGainBank, CacheAverageGainChoEgg, CacheAverageGainWrink, CacheAverageGainWrinkFattest, CacheAvgCPSWithChoEgg, CacheLastChoEgg, CacheLastClicks, CacheLastCookies, CacheLastCPSCheck, CacheLastWrinkCookies, CacheLastWrinkFattestCookies, CacheRealCookiesEarned, CacheSellForChoEgg, CacheWrinklersFattest, CacheWrinklersTotal, ChoEggDiff, ClicksDiff, CookiesDiff, WrinkDiff, WrinkFattestDiff, + CacheAverageClicks, + CacheAverageCPS, + CacheAverageGainBank, + CacheAverageGainChoEgg, + CacheAverageGainWrink, + CacheAverageGainWrinkFattest, + CacheAvgCPSWithChoEgg, + CacheLastChoEgg, + CacheLastClicks, + CacheLastCookies, + CacheLastCPSCheck, + CacheLastWrinkCookies, + CacheLastWrinkFattestCookies, + CacheRealCookiesEarned, + CacheSellForChoEgg, + CacheWrinklersFattest, + CacheWrinklersTotal, + ChoEggDiff, + ClicksDiff, + CookiesDiff, + WrinkDiff, + WrinkFattestDiff, } from '../VariablesAndData'; /** @@ -15,53 +36,63 @@ import { * @global {number} CM.Cache.AvgCPSChoEgg Average cookies from combination of normal CPS and average Chocolate Cookie CPS */ export default function CacheAvgCPS() { - const currDate = Math.floor(Date.now() / 1000); - // Only calculate every new second - if ((Game.T / Game.fps) % 1 === 0) { - let choEggTotal = Game.cookies + CacheSellForChoEgg; - if (Game.cpsSucked > 0) choEggTotal += CacheWrinklersTotal; - CacheRealCookiesEarned = Math.max(Game.cookiesEarned, choEggTotal); - choEggTotal *= 0.05; + const currDate = Math.floor(Date.now() / 1000); + // Only calculate every new second + if ((Game.T / Game.fps) % 1 === 0) { + let choEggTotal = Game.cookies + CacheSellForChoEgg; + if (Game.cpsSucked > 0) choEggTotal += CacheWrinklersTotal; + CacheRealCookiesEarned = Math.max(Game.cookiesEarned, choEggTotal); + choEggTotal *= 0.05; - // Add recent gains to AvgQueue's - const timeDiff = currDate - CacheLastCPSCheck; - const bankDiffAvg = Math.max(0, (Game.cookies - CacheLastCookies)) / timeDiff; - const wrinkDiffAvg = Math.max(0, (CacheWrinklersTotal - CacheLastWrinkCookies)) / timeDiff; - const wrinkFattestDiffAvg = Math.max(0, (CacheWrinklersFattest[0] - CacheLastWrinkFattestCookies)) / timeDiff; - const choEggDiffAvg = Math.max(0, (choEggTotal - CacheLastChoEgg)) / timeDiff; - const clicksDiffAvg = (Game.cookieClicks - CacheLastClicks) / timeDiff; - for (let i = 0; i < timeDiff; i++) { - CookiesDiff.addLatest(bankDiffAvg); - WrinkDiff.addLatest(wrinkDiffAvg); - WrinkFattestDiff.addLatest(wrinkFattestDiffAvg); - ChoEggDiff.addLatest(choEggDiffAvg); - ClicksDiff.addLatest(clicksDiffAvg); - } + // Add recent gains to AvgQueue's + const timeDiff = currDate - CacheLastCPSCheck; + const bankDiffAvg = Math.max(0, Game.cookies - CacheLastCookies) / timeDiff; + const wrinkDiffAvg = + Math.max(0, CacheWrinklersTotal - CacheLastWrinkCookies) / timeDiff; + const wrinkFattestDiffAvg = + Math.max(0, CacheWrinklersFattest[0] - CacheLastWrinkFattestCookies) / + timeDiff; + const choEggDiffAvg = Math.max(0, choEggTotal - CacheLastChoEgg) / timeDiff; + const clicksDiffAvg = (Game.cookieClicks - CacheLastClicks) / timeDiff; + for (let i = 0; i < timeDiff; i++) { + CookiesDiff.addLatest(bankDiffAvg); + WrinkDiff.addLatest(wrinkDiffAvg); + WrinkFattestDiff.addLatest(wrinkFattestDiffAvg); + ChoEggDiff.addLatest(choEggDiffAvg); + ClicksDiff.addLatest(clicksDiffAvg); + } - // Store current data for next loop - CacheLastCPSCheck = currDate; - CacheLastCookies = Game.cookies; - CacheLastWrinkCookies = CacheWrinklersTotal; - CacheLastWrinkFattestCookies = CacheWrinklersFattest[0]; - CacheLastChoEgg = choEggTotal; - CacheLastClicks = Game.cookieClicks; + // Store current data for next loop + CacheLastCPSCheck = currDate; + CacheLastCookies = Game.cookies; + CacheLastWrinkCookies = CacheWrinklersTotal; + CacheLastWrinkFattestCookies = CacheWrinklersFattest[0]; + CacheLastChoEgg = choEggTotal; + CacheLastClicks = Game.cookieClicks; - // Get average gain over period of cpsLength seconds - const cpsLength = CookieTimes[CMOptions.AvgCPSHist]; - CacheAverageGainBank = CookiesDiff.calcAverage(cpsLength); - CacheAverageGainWrink = WrinkDiff.calcAverage(cpsLength); - CacheAverageGainWrinkFattest = WrinkFattestDiff.calcAverage(cpsLength); - CacheAverageGainChoEgg = ChoEggDiff.calcAverage(cpsLength); - CacheAverageCPS = CacheAverageGainBank; - if (CMOptions.CalcWrink === 1) CacheAverageCPS += CacheAverageGainWrink; - if (CMOptions.CalcWrink === 2) CacheAverageCPS += CacheAverageGainWrinkFattest; + // Get average gain over period of cpsLength seconds + const cpsLength = CookieTimes[CMOptions.AvgCPSHist]; + CacheAverageGainBank = CookiesDiff.calcAverage(cpsLength); + CacheAverageGainWrink = WrinkDiff.calcAverage(cpsLength); + CacheAverageGainWrinkFattest = WrinkFattestDiff.calcAverage(cpsLength); + CacheAverageGainChoEgg = ChoEggDiff.calcAverage(cpsLength); + CacheAverageCPS = CacheAverageGainBank; + if (CMOptions.CalcWrink === 1) CacheAverageCPS += CacheAverageGainWrink; + if (CMOptions.CalcWrink === 2) + CacheAverageCPS += CacheAverageGainWrinkFattest; - const choEgg = (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')); + const choEgg = + Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'); - if (choEgg || CMOptions.CalcWrink === 0) { - CacheAvgCPSWithChoEgg = CacheAverageGainBank + CacheAverageGainWrink + (choEgg ? CacheAverageGainChoEgg : 0); - } else CacheAvgCPSWithChoEgg = CacheAverageCPS; + if (choEgg || CMOptions.CalcWrink === 0) { + CacheAvgCPSWithChoEgg = + CacheAverageGainBank + + CacheAverageGainWrink + + (choEgg ? CacheAverageGainChoEgg : 0); + } else CacheAvgCPSWithChoEgg = CacheAverageCPS; - CacheAverageClicks = ClicksDiff.calcAverage(ClickTimes[CMOptions.AvgClicksHist]); - } + CacheAverageClicks = ClicksDiff.calcAverage( + ClickTimes[CMOptions.AvgClicksHist], + ); + } } diff --git a/src/Cache/CPS/CurrWrinklerCPS.js b/src/Cache/CPS/CurrWrinklerCPS.js index 925dc547..e508c0b9 100644 --- a/src/Cache/CPS/CurrWrinklerCPS.js +++ b/src/Cache/CPS/CurrWrinklerCPS.js @@ -1,6 +1,9 @@ /* eslint-disable no-unused-vars */ import { SimObjects } from '../../Sim/VariablesAndData'; -import { CacheCurrWrinklerCount, CacheCurrWrinklerCPSMult } from '../VariablesAndData'; +import { + CacheCurrWrinklerCount, + CacheCurrWrinklerCPSMult, +} from '../VariablesAndData'; /** * This functions caches the current Wrinkler CPS multiplier @@ -8,18 +11,23 @@ import { CacheCurrWrinklerCount, CacheCurrWrinklerCPSMult } from '../VariablesAn * @global {number} CM.Cache.CurrWrinklerCPSMult Current multiplier of CPS because of wrinklers (excluding their negative sucking effect) */ export default function CacheCurrWrinklerCPS() { - CacheCurrWrinklerCPSMult = 0; - let count = 0; - for (const i in Game.wrinklers) { - if (Game.wrinklers[i].phase === 2) count++; - } - let godMult = 1; - if (SimObjects.Temple.minigameLoaded) { - const godLvl = Game.hasGod('scorn'); - if (godLvl === 1) godMult *= 1.15; - else if (godLvl === 2) godMult *= 1.1; - else if (godLvl === 3) godMult *= 1.05; - } - CacheCurrWrinklerCount = count; - CacheCurrWrinklerCPSMult = count * (count * 0.05 * 1.1) * (Game.Has('Sacrilegious corruption') * 0.05 + 1) * (Game.Has('Wrinklerspawn') * 0.05 + 1) * godMult; + CacheCurrWrinklerCPSMult = 0; + let count = 0; + for (const i in Game.wrinklers) { + if (Game.wrinklers[i].phase === 2) count++; + } + let godMult = 1; + if (SimObjects.Temple.minigameLoaded) { + const godLvl = Game.hasGod('scorn'); + if (godLvl === 1) godMult *= 1.15; + else if (godLvl === 2) godMult *= 1.1; + else if (godLvl === 3) godMult *= 1.05; + } + CacheCurrWrinklerCount = count; + CacheCurrWrinklerCPSMult = + count * + (count * 0.05 * 1.1) * + (Game.Has('Sacrilegious corruption') * 0.05 + 1) * + (Game.Has('Wrinklerspawn') * 0.05 + 1) * + godMult; } diff --git a/src/Cache/CPS/GetCPSBuffMult.js b/src/Cache/CPS/GetCPSBuffMult.js index 5b3c4656..4a458d87 100644 --- a/src/Cache/CPS/GetCPSBuffMult.js +++ b/src/Cache/CPS/GetCPSBuffMult.js @@ -3,9 +3,10 @@ * @returns {number} mult The multiplier */ export default function GetCPSBuffMult() { - let mult = 1; - for (const i of Object.keys(Game.buffs)) { - if (typeof Game.buffs[i].multCpS !== 'undefined') mult *= Game.buffs[i].multCpS; - } - return mult; + let mult = 1; + for (const i of Object.keys(Game.buffs)) { + if (typeof Game.buffs[i].multCpS !== 'undefined') + mult *= Game.buffs[i].multCpS; + } + return mult; } diff --git a/src/Cache/CPS/NoGoldSwitchCPS.js b/src/Cache/CPS/NoGoldSwitchCPS.js index 1fe20175..a3a58301 100644 --- a/src/Cache/CPS/NoGoldSwitchCPS.js +++ b/src/Cache/CPS/NoGoldSwitchCPS.js @@ -8,7 +8,7 @@ import { CacheNoGoldSwitchCookiesPS } from '../VariablesAndData'; * It is called at the end of any functions that simulates certain behaviour */ export default function CacheNoGoldSwitchCPS() { - if (Game.Has('Golden switch [off]')) { - CacheNoGoldSwitchCookiesPS = CalcNoGoldSwitchCPS(); - } else CacheNoGoldSwitchCookiesPS = Game.cookiesPs; + if (Game.Has('Golden switch [off]')) { + CacheNoGoldSwitchCookiesPS = CalcNoGoldSwitchCPS(); + } else CacheNoGoldSwitchCookiesPS = Game.cookiesPs; } diff --git a/src/Cache/CPS/SellChoEgg.js b/src/Cache/CPS/SellChoEgg.js index 89fbb51b..4dfaaf52 100644 --- a/src/Cache/CPS/SellChoEgg.js +++ b/src/Cache/CPS/SellChoEgg.js @@ -8,18 +8,18 @@ import { CacheSellForChoEgg } from '../VariablesAndData'; * @global {number} CM.Cache.SellForChoEgg Total cookies to be gained from selling Chocolate egg */ export default function CacheSellAllForChoEgg() { - let sellTotal = 0; - // Compute cookies earned by selling stock market goods - if (Game.Objects.Bank.minigameLoaded) { - const marketGoods = Game.Objects.Bank.minigame.goods; - let goodsVal = 0; - for (const i of Object.keys(marketGoods)) { - const marketGood = marketGoods[i]; - goodsVal += marketGood.stock * marketGood.val; - } - sellTotal += goodsVal * Game.cookiesPsRawHighest; - } - // Compute cookies earned by selling all buildings with optimal auras (ES + RB) - sellTotal += SellBuildingsForChoEgg(); - CacheSellForChoEgg = sellTotal; + let sellTotal = 0; + // Compute cookies earned by selling stock market goods + if (Game.Objects.Bank.minigameLoaded) { + const marketGoods = Game.Objects.Bank.minigame.goods; + let goodsVal = 0; + for (const i of Object.keys(marketGoods)) { + const marketGood = marketGoods[i]; + goodsVal += marketGood.stock * marketGood.val; + } + sellTotal += goodsVal * Game.cookiesPsRawHighest; + } + // Compute cookies earned by selling all buildings with optimal auras (ES + RB) + sellTotal += SellBuildingsForChoEgg(); + CacheSellForChoEgg = sellTotal; } diff --git a/src/Cache/CacheInit.js b/src/Cache/CacheInit.js index 42ddf7bd..728ad759 100644 --- a/src/Cache/CacheInit.js +++ b/src/Cache/CacheInit.js @@ -3,12 +3,18 @@ import { CMAvgQueue, InitCookiesDiff } from './CPS/AverageQueue'; import CacheAvgCPS from './CPS/CPS'; import CacheDragonAuras from './Dragon/CacheDragonAuras'; import CachePP from './PP/PP'; -import { CacheBuildingsPrices, CacheIncome } from './PriceAndIncome/PriceAndIncome'; +import { + CacheBuildingsPrices, + CacheIncome, +} from './PriceAndIncome/PriceAndIncome'; import { CacheChain } from './Stats/ChainCookies'; import CacheHeavenlyChipsPS from './Stats/HeavenlyChips'; import CacheAllMissingUpgrades from './Stats/MissingUpgrades'; import CacheSeasonSpec from './Stats/Reindeer'; -import { CacheGoldenAndWrathCookiesMults, CacheStatsCookies } from './Stats/Stats'; +import { + CacheGoldenAndWrathCookiesMults, + CacheStatsCookies, +} from './Stats/Stats'; import { HeavenlyChipsDiff } from './VariablesAndData'; import CacheWrinklers from './Wrinklers/Wrinklers'; @@ -16,18 +22,18 @@ import CacheWrinklers from './Wrinklers/Wrinklers'; * This functions runs all cache-functions to generate all "full" cache */ export default function InitCache() { - CacheDragonAuras(); - CacheWrinklers(); - CacheStatsCookies(); - CacheGoldenAndWrathCookiesMults(); - CacheChain(); - CacheAllMissingUpgrades(); - CacheSeasonSpec(); - InitCookiesDiff(); - HeavenlyChipsDiff = new CMAvgQueue(5); // Used by CM.Cache.CacheHeavenlyChipsPS() - CacheHeavenlyChipsPS(); - CacheAvgCPS(); - CacheIncome(); - CacheBuildingsPrices(); - CachePP(); + CacheDragonAuras(); + CacheWrinklers(); + CacheStatsCookies(); + CacheGoldenAndWrathCookiesMults(); + CacheChain(); + CacheAllMissingUpgrades(); + CacheSeasonSpec(); + InitCookiesDiff(); + HeavenlyChipsDiff = new CMAvgQueue(5); // Used by CM.Cache.CacheHeavenlyChipsPS() + CacheHeavenlyChipsPS(); + CacheAvgCPS(); + CacheIncome(); + CacheBuildingsPrices(); + CachePP(); } diff --git a/src/Cache/CacheLoop.js b/src/Cache/CacheLoop.js index df7b74f2..e9e7af42 100644 --- a/src/Cache/CacheLoop.js +++ b/src/Cache/CacheLoop.js @@ -13,14 +13,19 @@ import CacheWrinklers from './Wrinklers/Wrinklers'; * @global {string} CM.Cache.TimeTillNextPrestige Time requried till next prestige level */ export default function LoopCache() { - // Update Wrinkler Bank - CacheWrinklers(); + // Update Wrinkler Bank + CacheWrinklers(); - CachePP(); - CacheCurrWrinklerCPS(); - CacheAvgCPS(); - CacheHeavenlyChipsPS(); + CachePP(); + CacheCurrWrinklerCPS(); + CacheAvgCPS(); + CacheHeavenlyChipsPS(); - const cookiesToNext = Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) + 1) - (Game.cookiesEarned + Game.cookiesReset); - CacheTimeTillNextPrestige = FormatTime(cookiesToNext / GetCPS()); + const cookiesToNext = + Game.HowManyCookiesReset( + Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) + + 1, + ) - + (Game.cookiesEarned + Game.cookiesReset); + CacheTimeTillNextPrestige = FormatTime(cookiesToNext / GetCPS()); } diff --git a/src/Cache/Dragon/CacheDragonAuras.js b/src/Cache/Dragon/CacheDragonAuras.js index 620e7ea6..04904821 100644 --- a/src/Cache/Dragon/CacheDragonAuras.js +++ b/src/Cache/Dragon/CacheDragonAuras.js @@ -5,6 +5,6 @@ import { CacheDragonAura, CacheDragonAura2 } from '../VariablesAndData'; * This functions caches the currently selected Dragon Auras */ export default function CacheDragonAuras() { - CacheDragonAura = Game.dragonAura; - CacheDragonAura2 = Game.dragonAura2; + CacheDragonAura = Game.dragonAura; + CacheDragonAura2 = Game.dragonAura2; } diff --git a/src/Cache/Dragon/Dragon.js b/src/Cache/Dragon/Dragon.js index f1bd0e9e..25e80025 100644 --- a/src/Cache/Dragon/Dragon.js +++ b/src/Cache/Dragon/Dragon.js @@ -5,54 +5,76 @@ import { Beautify } from '../../Disp/BeautifyAndFormatting/BeautifyFormatting'; import CopyData from '../../Sim/SimulationData/CopyData'; import { SimDoSims, SimObjects } from '../../Sim/VariablesAndData'; import { - CacheCostDragonUpgrade, CacheDragonAura, CacheDragonAura2, CacheLastDragonLevel, + CacheCostDragonUpgrade, + CacheDragonAura, + CacheDragonAura2, + CacheLastDragonLevel, } from '../VariablesAndData'; /** * This functions caches the current cost of upgrading the dragon level so it can be displayed in the tooltip */ export default function CacheDragonCost() { - if (CacheLastDragonLevel !== Game.dragonLevel || SimDoSims) { - if (Game.dragonLevel < 25 && Game.dragonLevels[Game.dragonLevel].buy.toString().includes('sacrifice')) { - let target = Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1]; - const amount = Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1]; - if (target !== 'i') { - target = target.replaceAll("'", ''); - if (Game.Objects[target].amount < amount) { - CacheCostDragonUpgrade = 'Not enough buildings to sell'; - } else { - let cost = 0; - CopyData(); - for (let i = 0; i < amount; i++) { - let price = SimObjects[target].basePrice * Game.priceIncrease ** Math.max(0, SimObjects[target].amount - 1 - SimObjects[target].free); - price = Game.modifyBuildingPrice(SimObjects[target], price); - price = Math.ceil(price); - cost += price; - SimObjects[target].amount--; - } - CacheCostDragonUpgrade = `Cost to rebuy: ${(cost)}`; - } - } else { - let cost = 0; - CopyData(); - for (const j of Object.keys(Game.Objects)) { - target = j; - if (Game.Objects[target].amount < amount) { - CacheCostDragonUpgrade = 'Not enough buildings to sell'; - break; - } else { - for (let i = 0; i < amount; i++) { - let price = SimObjects[target].basePrice * Game.priceIncrease ** Math.max(0, SimObjects[target].amount - 1 - SimObjects[target].free); - price = Game.modifyBuildingPrice(SimObjects[target], price); - price = Math.ceil(price); - cost += price; - SimObjects[target].amount--; - } - } - CacheCostDragonUpgrade = `Cost to rebuy: ${Beautify(cost)}`; - } - } - } - CacheLastDragonLevel = Game.dragonLevel; - } + if (CacheLastDragonLevel !== Game.dragonLevel || SimDoSims) { + if ( + Game.dragonLevel < 25 && + Game.dragonLevels[Game.dragonLevel].buy.toString().includes('sacrifice') + ) { + let target = Game.dragonLevels[Game.dragonLevel].buy + .toString() + .match(/Objects\[(.*)\]/)[1]; + const amount = Game.dragonLevels[Game.dragonLevel].buy + .toString() + .match(/sacrifice\((.*?)\)/)[1]; + if (target !== 'i') { + target = target.replaceAll("'", ''); + if (Game.Objects[target].amount < amount) { + CacheCostDragonUpgrade = 'Not enough buildings to sell'; + } else { + let cost = 0; + CopyData(); + for (let i = 0; i < amount; i++) { + let price = + SimObjects[target].basePrice * + Game.priceIncrease ** + Math.max( + 0, + SimObjects[target].amount - 1 - SimObjects[target].free, + ); + price = Game.modifyBuildingPrice(SimObjects[target], price); + price = Math.ceil(price); + cost += price; + SimObjects[target].amount--; + } + CacheCostDragonUpgrade = `Cost to rebuy: ${cost}`; + } + } else { + let cost = 0; + CopyData(); + for (const j of Object.keys(Game.Objects)) { + target = j; + if (Game.Objects[target].amount < amount) { + CacheCostDragonUpgrade = 'Not enough buildings to sell'; + break; + } else { + for (let i = 0; i < amount; i++) { + let price = + SimObjects[target].basePrice * + Game.priceIncrease ** + Math.max( + 0, + SimObjects[target].amount - 1 - SimObjects[target].free, + ); + price = Game.modifyBuildingPrice(SimObjects[target], price); + price = Math.ceil(price); + cost += price; + SimObjects[target].amount--; + } + } + CacheCostDragonUpgrade = `Cost to rebuy: ${Beautify(cost)}`; + } + } + } + CacheLastDragonLevel = Game.dragonLevel; + } } diff --git a/src/Cache/PP/Building.js b/src/Cache/PP/Building.js index a5d286a8..20495754 100644 --- a/src/Cache/PP/Building.js +++ b/src/Cache/PP/Building.js @@ -3,8 +3,13 @@ import { CMOptions } from '../../Config/VariablesAndData'; import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank'; import { ColorGray } from '../../Disp/VariablesAndData'; import { - CacheArrayOfPPs, - CacheMaxPP, CacheMidPP, CacheMinPP, CacheObjects1, CacheObjects10, CacheObjects100, + CacheArrayOfPPs, + CacheMaxPP, + CacheMidPP, + CacheMinPP, + CacheObjects1, + CacheObjects10, + CacheObjects100, } from '../VariablesAndData'; import ColourOfPP from './ColourOfPP'; @@ -14,13 +19,16 @@ import ColourOfPP from './ColourOfPP'; * It is called by CM.Cache.CacheBuildingsPP() */ function CacheBuildingsBulkPP(target) { - for (const i of Object.keys(target)) { - if (Game.cookiesPs) { - target[i].pp = (Math.max(target[i].price - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs) + (target[i].price / target[i].bonus); - } else target[i].pp = (target[i].price / target[i].bonus); + for (const i of Object.keys(target)) { + if (Game.cookiesPs) { + target[i].pp = + Math.max(target[i].price - (Game.cookies + GetWrinkConfigBank()), 0) / + Game.cookiesPs + + target[i].price / target[i].bonus; + } else target[i].pp = target[i].price / target[i].bonus; - target[i].color = ColourOfPP(target[i], target[i].price); - } + target[i].color = ColourOfPP(target[i], target[i].price); + } } /** @@ -28,74 +36,92 @@ function CacheBuildingsBulkPP(target) { * It is called by CM.Cache.CachePP() */ export default function CacheBuildingsPP() { - CacheMinPP = Infinity; - CacheMaxPP = 1; - CacheArrayOfPPs = []; - if (typeof CMOptions.PPExcludeTop === 'undefined') CMOptions.PPExcludeTop = 0; // Otherwise breaks during initialization + CacheMinPP = Infinity; + CacheMaxPP = 1; + CacheArrayOfPPs = []; + if (typeof CMOptions.PPExcludeTop === 'undefined') CMOptions.PPExcludeTop = 0; // Otherwise breaks during initialization - // Calculate PP and colors when compared to purchase of optimal building in single-purchase mode - if (CMOptions.ColorPPBulkMode === 0 && Game.buyMode > 0) { - for (const i of Object.keys(CacheObjects1)) { - if (Game.cookiesPs) { - CacheObjects1[i].pp = (Math.max(Game.Objects[i].getPrice() - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Objects[i].getPrice() / CacheObjects1[i].bonus); - } else CacheObjects1[i].pp = (Game.Objects[i].getPrice() / CacheObjects1[i].bonus); - CacheArrayOfPPs.push([CacheObjects1[i].pp, Game.Objects[i].getPrice()]); - } - // Set CM.Cache.min to best non-excluded buidliung - CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); - if (CMOptions.PPOnlyConsiderBuyable) { - while (CacheArrayOfPPs[0][1] > Game.cookies) { - if (CacheArrayOfPPs.length === 1) { - break; - } - CacheArrayOfPPs.shift(); - } - } - CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; - CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; - CacheMidPP = ((CacheMaxPP - CacheMinPP) / 2) + CacheMinPP; - for (const i of Object.keys(CacheObjects1)) { - CacheObjects1[i].color = ColourOfPP(CacheObjects1[i], Game.Objects[i].getPrice()); - // Colour based on excluding certain top-buildings - for (let j = 0; j < CMOptions.PPExcludeTop; j++) { - if (CacheObjects1[i].pp === CacheArrayOfPPs[j][0]) CacheObjects1[i].color = ColorGray; - } - } - // Calculate PP of bulk-buy modes - CacheBuildingsBulkPP(CacheObjects10); - CacheBuildingsBulkPP(CacheObjects100); - } else if (Game.buyMode > 0) { - // Calculate PP and colors when compared to purchase of selected bulk mode - let target; - if (Game.buyBulk === 1) target = CacheObjects1; - else if (Game.buyBulk === 10) target = CacheObjects10; - else if (Game.buyBulk === 100) target = CacheObjects100; - for (const i of Object.keys(target)) { - if (Game.cookiesPs) { - target[i].pp = (Math.max(Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Objects[i].bulkPrice / target[i].bonus); - } else target[i].pp = (Game.Objects[i].bulkPrice / target[i].bonus); - CacheArrayOfPPs.push([target[i].pp, Game.Objects[i].bulkPrice]); - } - // Set CM.Cache.min to best non-excluded buidliung - CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); - if (CMOptions.PPOnlyConsiderBuyable) { - while (CacheArrayOfPPs[0][1] > Game.cookies) { - if (CacheArrayOfPPs.length === 1) { - break; - } - CacheArrayOfPPs.shift(); - } - } - CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; - CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; - CacheMidPP = ((CacheMaxPP - CacheMinPP) / 2) + CacheMinPP; + // Calculate PP and colors when compared to purchase of optimal building in single-purchase mode + if (CMOptions.ColorPPBulkMode === 0 && Game.buyMode > 0) { + for (const i of Object.keys(CacheObjects1)) { + if (Game.cookiesPs) { + CacheObjects1[i].pp = + Math.max( + Game.Objects[i].getPrice() - (Game.cookies + GetWrinkConfigBank()), + 0, + ) / + Game.cookiesPs + + Game.Objects[i].getPrice() / CacheObjects1[i].bonus; + } else + CacheObjects1[i].pp = + Game.Objects[i].getPrice() / CacheObjects1[i].bonus; + CacheArrayOfPPs.push([CacheObjects1[i].pp, Game.Objects[i].getPrice()]); + } + // Set CM.Cache.min to best non-excluded buidliung + CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); + if (CMOptions.PPOnlyConsiderBuyable) { + while (CacheArrayOfPPs[0][1] > Game.cookies) { + if (CacheArrayOfPPs.length === 1) { + break; + } + CacheArrayOfPPs.shift(); + } + } + CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; + CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; + CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; + for (const i of Object.keys(CacheObjects1)) { + CacheObjects1[i].color = ColourOfPP( + CacheObjects1[i], + Game.Objects[i].getPrice(), + ); + // Colour based on excluding certain top-buildings + for (let j = 0; j < CMOptions.PPExcludeTop; j++) { + if (CacheObjects1[i].pp === CacheArrayOfPPs[j][0]) + CacheObjects1[i].color = ColorGray; + } + } + // Calculate PP of bulk-buy modes + CacheBuildingsBulkPP(CacheObjects10); + CacheBuildingsBulkPP(CacheObjects100); + } else if (Game.buyMode > 0) { + // Calculate PP and colors when compared to purchase of selected bulk mode + let target; + if (Game.buyBulk === 1) target = CacheObjects1; + else if (Game.buyBulk === 10) target = CacheObjects10; + else if (Game.buyBulk === 100) target = CacheObjects100; + for (const i of Object.keys(target)) { + if (Game.cookiesPs) { + target[i].pp = + Math.max( + Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank()), + 0, + ) / + Game.cookiesPs + + Game.Objects[i].bulkPrice / target[i].bonus; + } else target[i].pp = Game.Objects[i].bulkPrice / target[i].bonus; + CacheArrayOfPPs.push([target[i].pp, Game.Objects[i].bulkPrice]); + } + // Set CM.Cache.min to best non-excluded buidliung + CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); + if (CMOptions.PPOnlyConsiderBuyable) { + while (CacheArrayOfPPs[0][1] > Game.cookies) { + if (CacheArrayOfPPs.length === 1) { + break; + } + CacheArrayOfPPs.shift(); + } + } + CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; + CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; + CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; - for (const i of Object.keys(CacheObjects1)) { - target[i].color = ColourOfPP(target[i], Game.Objects[i].bulkPrice); - // Colour based on excluding certain top-buildings - for (let j = 0; j < CMOptions.PPExcludeTop; j++) { - if (target[i].pp === CacheArrayOfPPs[j][0]) target[i].color = ColorGray; - } - } - } + for (const i of Object.keys(CacheObjects1)) { + target[i].color = ColourOfPP(target[i], Game.Objects[i].bulkPrice); + // Colour based on excluding certain top-buildings + for (let j = 0; j < CMOptions.PPExcludeTop; j++) { + if (target[i].pp === CacheArrayOfPPs[j][0]) target[i].color = ColorGray; + } + } + } } diff --git a/src/Cache/PP/ColourOfPP.js b/src/Cache/PP/ColourOfPP.js index 1177d26b..2c0c722f 100644 --- a/src/Cache/PP/ColourOfPP.js +++ b/src/Cache/PP/ColourOfPP.js @@ -1,7 +1,13 @@ import { CMOptions } from '../../Config/VariablesAndData'; import GetCPS from '../../Disp/HelperFunctions/GetCPS'; import { - ColorBlue, ColorGray, ColorGreen, ColorOrange, ColorPurple, ColorRed, ColorYellow, + ColorBlue, + ColorGray, + ColorGreen, + ColorOrange, + ColorPurple, + ColorRed, + ColorYellow, } from '../../Disp/VariablesAndData'; import { CacheMaxPP, CacheMidPP, CacheMinPP } from '../VariablesAndData'; @@ -13,23 +19,24 @@ import { CacheMaxPP, CacheMidPP, CacheMinPP } from '../VariablesAndData'; * @returns {string} color The colour assosciated with the pp value */ export default function ColourOfPP(me, price) { - let color = ''; - // Colour based on PP - if (me.pp <= 0 || me.pp === Infinity) color = ColorGray; - else if (me.pp < CacheMinPP) color = ColorBlue; - else if (me.pp === CacheMinPP) color = ColorGreen; - else if (me.pp === CacheMaxPP) color = ColorRed; - else if (me.pp > CacheMaxPP) color = ColorPurple; - else if (me.pp > CacheMidPP) color = ColorOrange; - else color = ColorYellow; + let color = ''; + // Colour based on PP + if (me.pp <= 0 || me.pp === Infinity) color = ColorGray; + else if (me.pp < CacheMinPP) color = ColorBlue; + else if (me.pp === CacheMinPP) color = ColorGreen; + else if (me.pp === CacheMaxPP) color = ColorRed; + else if (me.pp > CacheMaxPP) color = ColorPurple; + else if (me.pp > CacheMidPP) color = ColorOrange; + else color = ColorYellow; - // Colour based on price in terms of CPS - if (Number(CMOptions.PPSecondsLowerLimit) !== 0) { - if (price / GetCPS() < Number(CMOptions.PPSecondsLowerLimit)) color = ColorBlue; - } - // Colour based on being able to purchase - if (CMOptions.PPOnlyConsiderBuyable) { - if (price - Game.cookies > 0) color = ColorRed; - } - return color; + // Colour based on price in terms of CPS + if (Number(CMOptions.PPSecondsLowerLimit) !== 0) { + if (price / GetCPS() < Number(CMOptions.PPSecondsLowerLimit)) + color = ColorBlue; + } + // Colour based on being able to purchase + if (CMOptions.PPOnlyConsiderBuyable) { + if (price - Game.cookies > 0) color = ColorRed; + } + return color; } diff --git a/src/Cache/PP/PP.js b/src/Cache/PP/PP.js index 66ad2bf1..24cf9586 100644 --- a/src/Cache/PP/PP.js +++ b/src/Cache/PP/PP.js @@ -9,6 +9,6 @@ import CacheUpgradePP from './Upgrade'; * It is called by CM.Cache.LoopCache() and CM.Cache.InitCache() */ export default function CachePP() { - CacheBuildingsPP(); - CacheUpgradePP(); + CacheBuildingsPP(); + CacheUpgradePP(); } diff --git a/src/Cache/PP/Upgrade.js b/src/Cache/PP/Upgrade.js index 3a972456..17d39546 100644 --- a/src/Cache/PP/Upgrade.js +++ b/src/Cache/PP/Upgrade.js @@ -7,12 +7,23 @@ import ColourOfPP from './ColourOfPP'; * It is called by CM.Cache.CachePP() */ export default function CacheUpgradePP() { - for (const i of Object.keys(CacheUpgrades)) { - if (Game.cookiesPs) { - CacheUpgrades[i].pp = (Math.max(Game.Upgrades[i].getPrice() - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Upgrades[i].getPrice() / CacheUpgrades[i].bonus); - } else CacheUpgrades[i].pp = (Game.Upgrades[i].getPrice() / CacheUpgrades[i].bonus); - if (Number.isNaN(CacheUpgrades[i].pp)) CacheUpgrades[i].pp = Infinity; + for (const i of Object.keys(CacheUpgrades)) { + if (Game.cookiesPs) { + CacheUpgrades[i].pp = + Math.max( + Game.Upgrades[i].getPrice() - (Game.cookies + GetWrinkConfigBank()), + 0, + ) / + Game.cookiesPs + + Game.Upgrades[i].getPrice() / CacheUpgrades[i].bonus; + } else + CacheUpgrades[i].pp = + Game.Upgrades[i].getPrice() / CacheUpgrades[i].bonus; + if (Number.isNaN(CacheUpgrades[i].pp)) CacheUpgrades[i].pp = Infinity; - CacheUpgrades[i].color = ColourOfPP(CacheUpgrades[i], Game.Upgrades[i].getPrice()); - } + CacheUpgrades[i].color = ColourOfPP( + CacheUpgrades[i], + Game.Upgrades[i].getPrice(), + ); + } } diff --git a/src/Cache/PriceAndIncome/PriceAndIncome.js b/src/Cache/PriceAndIncome/PriceAndIncome.js index ce2f69de..cefff600 100644 --- a/src/Cache/PriceAndIncome/PriceAndIncome.js +++ b/src/Cache/PriceAndIncome/PriceAndIncome.js @@ -5,7 +5,11 @@ import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding'; import BuyBuildingsBonusIncome from '../../Sim/SimulationEvents/BuyBuildingBonusIncome'; import BuyUpgradesBonusIncome from '../../Sim/SimulationEvents/BuyUpgrades'; import { - CacheDoRemakeBuildPrices, CacheObjects1, CacheObjects10, CacheObjects100, CacheUpgrades, + CacheDoRemakeBuildPrices, + CacheObjects1, + CacheObjects10, + CacheObjects100, + CacheUpgrades, } from '../VariablesAndData'; /** @@ -15,15 +19,15 @@ import { * @parem {string} target The target Cache object ("Objects1", "Objects10" or "Objects100") */ function CacheBuildingIncome(amount, target) { - const result = []; - for (const i of Object.keys(Game.Objects)) { - result[i] = {}; - result[i].bonus = BuyBuildingsBonusIncome(i, amount); - if (amount !== 1) { - CacheDoRemakeBuildPrices = 1; - } - } - return result; + const result = []; + for (const i of Object.keys(Game.Objects)) { + result[i] = {}; + result[i].bonus = BuyBuildingsBonusIncome(i, amount); + if (amount !== 1) { + CacheDoRemakeBuildPrices = 1; + } + } + return result; } /** @@ -31,24 +35,42 @@ function CacheBuildingIncome(amount, target) { * It is called by CM.Cache.CacheIncome() */ function CacheUpgradeIncome() { - CacheUpgrades = []; - for (const i of Object.keys(Game.Upgrades)) { - const bonusIncome = BuyUpgradesBonusIncome(i); - CacheUpgrades[i] = {}; - if (bonusIncome[0]) CacheUpgrades[i].bonus = bonusIncome[0]; - if (bonusIncome[1]) CacheUpgrades[i].bonusMouse = bonusIncome[1]; - } + CacheUpgrades = []; + for (const i of Object.keys(Game.Upgrades)) { + const bonusIncome = BuyUpgradesBonusIncome(i); + CacheUpgrades[i] = {}; + if (bonusIncome[0]) CacheUpgrades[i].bonus = bonusIncome[0]; + if (bonusIncome[1]) CacheUpgrades[i].bonusMouse = bonusIncome[1]; + } } /** * This functions caches the price of each building and stores it in the cache */ export function CacheBuildingsPrices() { - for (const i of Object.keys(Game.Objects)) { - CacheObjects1[i].price = BuildingGetPrice(Game.Objects[i], Game.Objects[i].basePrice, Game.Objects[i].amount, Game.Objects[i].free, 1); - CacheObjects10[i].price = BuildingGetPrice(Game.Objects[i], Game.Objects[i].basePrice, Game.Objects[i].amount, Game.Objects[i].free, 10); - CacheObjects100[i].price = BuildingGetPrice(Game.Objects[i], Game.Objects[i].basePrice, Game.Objects[i].amount, Game.Objects[i].free, 100); - } + for (const i of Object.keys(Game.Objects)) { + CacheObjects1[i].price = BuildingGetPrice( + Game.Objects[i], + Game.Objects[i].basePrice, + Game.Objects[i].amount, + Game.Objects[i].free, + 1, + ); + CacheObjects10[i].price = BuildingGetPrice( + Game.Objects[i], + Game.Objects[i].basePrice, + Game.Objects[i].amount, + Game.Objects[i].free, + 10, + ); + CacheObjects100[i].price = BuildingGetPrice( + Game.Objects[i], + Game.Objects[i].basePrice, + Game.Objects[i].amount, + Game.Objects[i].free, + 100, + ); + } } /** @@ -56,11 +78,11 @@ export function CacheBuildingsPrices() { * It is called by CM.Main.Loop() and CM.Cache.InitCache() */ export function CacheIncome() { - // Simulate Building Buys for 1, 10 and 100 amount - CacheObjects1 = CacheBuildingIncome(1); - CacheObjects10 = CacheBuildingIncome(10); - CacheObjects100 = CacheBuildingIncome(100); + // Simulate Building Buys for 1, 10 and 100 amount + CacheObjects1 = CacheBuildingIncome(1); + CacheObjects10 = CacheBuildingIncome(10); + CacheObjects100 = CacheBuildingIncome(100); - // Simulate Upgrade Buys - CacheUpgradeIncome(); + // Simulate Upgrade Buys + CacheUpgradeIncome(); } diff --git a/src/Cache/Stats/ChainCookies.js b/src/Cache/Stats/ChainCookies.js index 1478b405..0af5d5d8 100644 --- a/src/Cache/Stats/ChainCookies.js +++ b/src/Cache/Stats/ChainCookies.js @@ -1,7 +1,22 @@ /* eslint-disable no-unused-vars */ import GetCPSBuffMult from '../CPS/GetCPSBuffMult'; import { - CacheChainFrenzyMaxReward, CacheChainFrenzyRequired, CacheChainFrenzyRequiredNext, CacheChainFrenzyWrathMaxReward, CacheChainFrenzyWrathRequired, CacheChainFrenzyWrathRequiredNext, CacheChainMaxReward, CacheChainRequired, CacheChainRequiredNext, CacheChainWrathMaxReward, CacheChainWrathRequired, CacheChainWrathRequiredNext, CacheDragonsFortuneMultAdjustment, CacheGoldenCookiesMult, CacheNoGoldSwitchCookiesPS, CacheWrathCookiesMult, + CacheChainFrenzyMaxReward, + CacheChainFrenzyRequired, + CacheChainFrenzyRequiredNext, + CacheChainFrenzyWrathMaxReward, + CacheChainFrenzyWrathRequired, + CacheChainFrenzyWrathRequiredNext, + CacheChainMaxReward, + CacheChainRequired, + CacheChainRequiredNext, + CacheChainWrathMaxReward, + CacheChainWrathRequired, + CacheChainWrathRequiredNext, + CacheDragonsFortuneMultAdjustment, + CacheGoldenCookiesMult, + CacheNoGoldSwitchCookiesPS, + CacheWrathCookiesMult, } from '../VariablesAndData'; /** @@ -13,19 +28,32 @@ import { * @returns [{number, number, number}] Total cookies earned, cookie needed for this and next level */ export function MaxChainCookieReward(digit, maxPayout, mult) { - let totalFromChain = 0; - let moni = 0; - let nextMoni = 0; - let nextRequired = 0; - let chain = 1 + Math.max(0, Math.ceil(Math.log(Game.cookies) / Math.LN10) - 10); - while (nextMoni < maxPayout) { - moni = Math.max(digit, Math.min(Math.floor(1 / 9 * 10 ** chain * digit * mult), maxPayout * mult)); - nextMoni = Math.max(digit, Math.min(Math.floor(1 / 9 * 10 ** (chain + 1) * digit * mult), maxPayout * mult)); - nextRequired = Math.floor(1 / 9 * 10 ** (chain + 1) * digit * mult); - totalFromChain += moni; - chain++; - } - return [totalFromChain, moni, nextRequired]; + let totalFromChain = 0; + let moni = 0; + let nextMoni = 0; + let nextRequired = 0; + let chain = + 1 + Math.max(0, Math.ceil(Math.log(Game.cookies) / Math.LN10) - 10); + while (nextMoni < maxPayout) { + moni = Math.max( + digit, + Math.min( + Math.floor((1 / 9) * 10 ** chain * digit * mult), + maxPayout * mult, + ), + ); + nextMoni = Math.max( + digit, + Math.min( + Math.floor((1 / 9) * 10 ** (chain + 1) * digit * mult), + maxPayout * mult, + ), + ); + nextRequired = Math.floor((1 / 9) * 10 ** (chain + 1) * digit * mult); + totalFromChain += moni; + chain++; + } + return [totalFromChain, moni, nextRequired]; } /** @@ -45,25 +73,65 @@ export function MaxChainCookieReward(digit, maxPayout, mult) { * @global {number} CM.Cache.ChainFrenzyWrathRequiredNext Total cookies needed for next level for wrath frenzy chain */ export function CacheChain() { - let maxPayout = CacheNoGoldSwitchCookiesPS * 60 * 60 * 6 * CacheDragonsFortuneMultAdjustment; - // Removes effect of Frenzy etc. - const cpsBuffMult = GetCPSBuffMult(); - if (cpsBuffMult > 0) maxPayout /= cpsBuffMult; - else maxPayout = 0; + let maxPayout = + CacheNoGoldSwitchCookiesPS * + 60 * + 60 * + 6 * + CacheDragonsFortuneMultAdjustment; + // Removes effect of Frenzy etc. + const cpsBuffMult = GetCPSBuffMult(); + if (cpsBuffMult > 0) maxPayout /= cpsBuffMult; + else maxPayout = 0; - CacheChainMaxReward = MaxChainCookieReward(7, maxPayout, CacheGoldenCookiesMult); - CacheChainRequired = CacheChainMaxReward[1] * 2 / CacheGoldenCookiesMult; - CacheChainRequiredNext = CacheChainMaxReward[2] / 60 / 60 / 6 / CacheDragonsFortuneMultAdjustment; + CacheChainMaxReward = MaxChainCookieReward( + 7, + maxPayout, + CacheGoldenCookiesMult, + ); + CacheChainRequired = (CacheChainMaxReward[1] * 2) / CacheGoldenCookiesMult; + CacheChainRequiredNext = + CacheChainMaxReward[2] / 60 / 60 / 6 / CacheDragonsFortuneMultAdjustment; - CacheChainWrathMaxReward = MaxChainCookieReward(6, maxPayout, CacheWrathCookiesMult); - CacheChainWrathRequired = CacheChainWrathMaxReward[1] * 2 / CacheWrathCookiesMult; - CacheChainWrathRequiredNext = CacheChainWrathMaxReward[2] / 60 / 60 / 6 / CacheDragonsFortuneMultAdjustment; + CacheChainWrathMaxReward = MaxChainCookieReward( + 6, + maxPayout, + CacheWrathCookiesMult, + ); + CacheChainWrathRequired = + (CacheChainWrathMaxReward[1] * 2) / CacheWrathCookiesMult; + CacheChainWrathRequiredNext = + CacheChainWrathMaxReward[2] / + 60 / + 60 / + 6 / + CacheDragonsFortuneMultAdjustment; - CacheChainFrenzyMaxReward = MaxChainCookieReward(7, maxPayout * 7, CacheGoldenCookiesMult); - CacheChainFrenzyRequired = CacheChainFrenzyMaxReward[1] * 2 / CacheGoldenCookiesMult; - CacheChainFrenzyRequiredNext = CacheChainFrenzyMaxReward[2] / 60 / 60 / 6 / CacheDragonsFortuneMultAdjustment; + CacheChainFrenzyMaxReward = MaxChainCookieReward( + 7, + maxPayout * 7, + CacheGoldenCookiesMult, + ); + CacheChainFrenzyRequired = + (CacheChainFrenzyMaxReward[1] * 2) / CacheGoldenCookiesMult; + CacheChainFrenzyRequiredNext = + CacheChainFrenzyMaxReward[2] / + 60 / + 60 / + 6 / + CacheDragonsFortuneMultAdjustment; - CacheChainFrenzyWrathMaxReward = MaxChainCookieReward(6, maxPayout * 7, CacheWrathCookiesMult); - CacheChainFrenzyWrathRequired = CacheChainFrenzyWrathMaxReward[1] * 2 / CacheWrathCookiesMult; - CacheChainFrenzyWrathRequiredNext = CacheChainFrenzyWrathMaxReward[2] / 60 / 60 / 6 / CacheDragonsFortuneMultAdjustment; + CacheChainFrenzyWrathMaxReward = MaxChainCookieReward( + 6, + maxPayout * 7, + CacheWrathCookiesMult, + ); + CacheChainFrenzyWrathRequired = + (CacheChainFrenzyWrathMaxReward[1] * 2) / CacheWrathCookiesMult; + CacheChainFrenzyWrathRequiredNext = + CacheChainFrenzyWrathMaxReward[2] / + 60 / + 60 / + 6 / + CacheDragonsFortuneMultAdjustment; } diff --git a/src/Cache/Stats/HeavenlyChips.js b/src/Cache/Stats/HeavenlyChips.js index 5b1301ef..ec4aff83 100644 --- a/src/Cache/Stats/HeavenlyChips.js +++ b/src/Cache/Stats/HeavenlyChips.js @@ -1,6 +1,9 @@ /* eslint-disable no-unused-vars */ import { - CacheHCPerSecond, CacheLastHeavenlyCheck, CacheLastHeavenlyChips, HeavenlyChipsDiff, + CacheHCPerSecond, + CacheLastHeavenlyCheck, + CacheLastHeavenlyChips, + HeavenlyChipsDiff, } from '../VariablesAndData'; /** @@ -9,25 +12,28 @@ import { * @global {number} CM.Cache.HCPerSecond The Heavenly Chips per second in the last five seconds */ export default function CacheHeavenlyChipsPS() { - const currDate = Math.floor(Date.now() / 1000); - // Only calculate every new second - if ((Game.T / Game.fps) % 1 === 0) { - const chipsOwned = Game.HowMuchPrestige(Game.cookiesReset); - const ascendNowToOwn = Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)); - const ascendNowToGet = ascendNowToOwn - Math.floor(chipsOwned); + const currDate = Math.floor(Date.now() / 1000); + // Only calculate every new second + if ((Game.T / Game.fps) % 1 === 0) { + const chipsOwned = Game.HowMuchPrestige(Game.cookiesReset); + const ascendNowToOwn = Math.floor( + Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned), + ); + const ascendNowToGet = ascendNowToOwn - Math.floor(chipsOwned); - // Add recent gains to AvgQueue's - const timeDiff = currDate - CacheLastHeavenlyCheck; - const heavenlyChipsDiffAvg = Math.max(0, (ascendNowToGet - CacheLastHeavenlyChips)) / timeDiff; - for (let i = 0; i < timeDiff; i++) { - HeavenlyChipsDiff.addLatest(heavenlyChipsDiffAvg); - } + // Add recent gains to AvgQueue's + const timeDiff = currDate - CacheLastHeavenlyCheck; + const heavenlyChipsDiffAvg = + Math.max(0, ascendNowToGet - CacheLastHeavenlyChips) / timeDiff; + for (let i = 0; i < timeDiff; i++) { + HeavenlyChipsDiff.addLatest(heavenlyChipsDiffAvg); + } - // Store current data for next loop - CacheLastHeavenlyCheck = currDate; - CacheLastHeavenlyChips = ascendNowToGet; + // Store current data for next loop + CacheLastHeavenlyCheck = currDate; + CacheLastHeavenlyChips = ascendNowToGet; - // Get average gain over period of 5 seconds - CacheHCPerSecond = HeavenlyChipsDiff.calcAverage(5); - } + // Get average gain over period of 5 seconds + CacheHCPerSecond = HeavenlyChipsDiff.calcAverage(5); + } } diff --git a/src/Cache/Stats/MissingUpgrades.js b/src/Cache/Stats/MissingUpgrades.js index abaa0345..c7bd6727 100644 --- a/src/Cache/Stats/MissingUpgrades.js +++ b/src/Cache/Stats/MissingUpgrades.js @@ -1,6 +1,10 @@ /* eslint-disable no-unused-vars */ import { crateMissing } from '../../Disp/MenuSections/CreateMissingUpgrades'; -import { CacheMissingUpgrades, CacheMissingUpgradesCookies, CacheMissingUpgradesPrestige } from '../VariablesAndData'; +import { + CacheMissingUpgrades, + CacheMissingUpgradesCookies, + CacheMissingUpgradesPrestige, +} from '../VariablesAndData'; /** * This functions caches variables related to missing upgrades @@ -10,31 +14,36 @@ import { CacheMissingUpgrades, CacheMissingUpgradesCookies, CacheMissingUpgrades * @global {string} CM.Cache.MissingUpgradesPrestige String containig the HTML to create the "crates" for missing prestige upgrades */ export default function CacheAllMissingUpgrades() { - CacheMissingUpgrades = ''; - CacheMissingUpgradesCookies = ''; - CacheMissingUpgradesPrestige = ''; - const list = []; - // sort the upgrades - for (const i of Object.keys(Game.Upgrades)) { - list.push(Game.Upgrades[i]); - } - const sortMap = function (a, b) { - if (a.order > b.order) return 1; - if (a.order < b.order) return -1; - return 0; - }; - list.sort(sortMap); + CacheMissingUpgrades = ''; + CacheMissingUpgradesCookies = ''; + CacheMissingUpgradesPrestige = ''; + const list = []; + // sort the upgrades + for (const i of Object.keys(Game.Upgrades)) { + list.push(Game.Upgrades[i]); + } + const sortMap = function (a, b) { + if (a.order > b.order) return 1; + if (a.order < b.order) return -1; + return 0; + }; + list.sort(sortMap); - for (const i of Object.keys(list)) { - const me = list[i]; + for (const i of Object.keys(list)) { + const me = list[i]; - if (me.bought === 0) { - let str = ''; + if (me.bought === 0) { + let str = ''; - str += crateMissing(me); - if (me.pool === 'prestige') CacheMissingUpgradesPrestige += str; - else if (me.pool === 'cookie') CacheMissingUpgradesCookies += str; - else if (me.pool !== 'toggle' && me.pool !== 'unused' && me.pool !== 'debug') CacheMissingUpgrades += str; - } - } + str += crateMissing(me); + if (me.pool === 'prestige') CacheMissingUpgradesPrestige += str; + else if (me.pool === 'cookie') CacheMissingUpgradesCookies += str; + else if ( + me.pool !== 'toggle' && + me.pool !== 'unused' && + me.pool !== 'debug' + ) + CacheMissingUpgrades += str; + } + } } diff --git a/src/Cache/Stats/Reindeer.js b/src/Cache/Stats/Reindeer.js index 0a13ffab..77d4cb10 100644 --- a/src/Cache/Stats/Reindeer.js +++ b/src/Cache/Stats/Reindeer.js @@ -7,11 +7,11 @@ import { CacheSeaSpec } from '../VariablesAndData'; * @global {number} CM.Cache.SeaSpec The reward for popping a reindeer */ export default function CacheSeasonSpec() { - if (Game.season === 'christmas') { - let val = Game.cookiesPs * 60; - if (Game.hasBuff('Elder frenzy')) val *= 0.5; - if (Game.hasBuff('Frenzy')) val *= 0.75; - CacheSeaSpec = Math.max(25, val); - if (Game.Has('Ho ho ho-flavored frosting')) CacheSeaSpec *= 2; - } + if (Game.season === 'christmas') { + let val = Game.cookiesPs * 60; + if (Game.hasBuff('Elder frenzy')) val *= 0.5; + if (Game.hasBuff('Frenzy')) val *= 0.75; + CacheSeaSpec = Math.max(25, val); + if (Game.Has('Ho ho ho-flavored frosting')) CacheSeaSpec *= 2; + } } diff --git a/src/Cache/Stats/Stats.js b/src/Cache/Stats/Stats.js index 3253fe35..9ba480a2 100644 --- a/src/Cache/Stats/Stats.js +++ b/src/Cache/Stats/Stats.js @@ -4,70 +4,88 @@ import SimHas from '../../Sim/ReplacedGameFunctions/SimHas'; import GetCPSBuffMult from '../CPS/GetCPSBuffMult'; import { - CacheConjure, CacheConjureReward, CacheDragonsFortuneMultAdjustment, CacheEdifice, CacheEdificeBuilding, CacheGoldenCookiesMult, CacheLucky, CacheLuckyFrenzy, CacheLuckyReward, CacheLuckyRewardFrenzy, CacheLuckyWrathReward, CacheLuckyWrathRewardFrenzy, CacheNoGoldSwitchCookiesPS, CacheWrathCookiesMult, + CacheConjure, + CacheConjureReward, + CacheDragonsFortuneMultAdjustment, + CacheEdifice, + CacheEdificeBuilding, + CacheGoldenCookiesMult, + CacheLucky, + CacheLuckyFrenzy, + CacheLuckyReward, + CacheLuckyRewardFrenzy, + CacheLuckyWrathReward, + CacheLuckyWrathRewardFrenzy, + CacheNoGoldSwitchCookiesPS, + CacheWrathCookiesMult, } from '../VariablesAndData'; /** * This functions caches variables related to the stats page */ export function CacheStatsCookies() { - CacheLucky = (CacheNoGoldSwitchCookiesPS * 900) / 0.15; - CacheLucky *= CacheDragonsFortuneMultAdjustment; - const cpsBuffMult = GetCPSBuffMult(); - if (cpsBuffMult > 0) CacheLucky /= cpsBuffMult; - else CacheLucky = 0; - CacheLuckyReward = CacheGoldenCookiesMult * (CacheLucky * 0.15) + 13; - CacheLuckyWrathReward = CacheWrathCookiesMult * (CacheLucky * 0.15) + 13; - CacheLuckyFrenzy = CacheLucky * 7; - CacheLuckyRewardFrenzy = CacheGoldenCookiesMult * (CacheLuckyFrenzy * 0.15) + 13; - CacheLuckyWrathRewardFrenzy = CacheWrathCookiesMult * (CacheLuckyFrenzy * 0.15) + 13; - CacheConjure = CacheLucky * 2; - CacheConjureReward = CacheConjure * 0.15; + CacheLucky = (CacheNoGoldSwitchCookiesPS * 900) / 0.15; + CacheLucky *= CacheDragonsFortuneMultAdjustment; + const cpsBuffMult = GetCPSBuffMult(); + if (cpsBuffMult > 0) CacheLucky /= cpsBuffMult; + else CacheLucky = 0; + CacheLuckyReward = CacheGoldenCookiesMult * (CacheLucky * 0.15) + 13; + CacheLuckyWrathReward = CacheWrathCookiesMult * (CacheLucky * 0.15) + 13; + CacheLuckyFrenzy = CacheLucky * 7; + CacheLuckyRewardFrenzy = + CacheGoldenCookiesMult * (CacheLuckyFrenzy * 0.15) + 13; + CacheLuckyWrathRewardFrenzy = + CacheWrathCookiesMult * (CacheLuckyFrenzy * 0.15) + 13; + CacheConjure = CacheLucky * 2; + CacheConjureReward = CacheConjure * 0.15; - CacheEdifice = 0; - let max = 0; - let n = 0; - for (const i of Object.keys(Game.Objects)) { - if (Game.Objects[i].amount > max) max = Game.Objects[i].amount; - if (Game.Objects[i].amount > 0) n++; - } - for (const i of Object.keys(Game.Objects)) { - if ((Game.Objects[i].amount < max || n === 1) - && Game.Objects[i].amount < 400 - && Game.Objects[i].price * 2 > CacheEdifice) { - CacheEdifice = Game.Objects[i].price * 2; - CacheEdificeBuilding = i; - } - } + CacheEdifice = 0; + let max = 0; + let n = 0; + for (const i of Object.keys(Game.Objects)) { + if (Game.Objects[i].amount > max) max = Game.Objects[i].amount; + if (Game.Objects[i].amount > 0) n++; + } + for (const i of Object.keys(Game.Objects)) { + if ( + (Game.Objects[i].amount < max || n === 1) && + Game.Objects[i].amount < 400 && + Game.Objects[i].price * 2 > CacheEdifice + ) { + CacheEdifice = Game.Objects[i].price * 2; + CacheEdificeBuilding = i; + } + } } /** * This functions calculates the multipliers of Golden and Wrath cookie rewards */ export function CacheGoldenAndWrathCookiesMults() { - let goldenMult = 1; - let wrathMult = 1; - let mult = 1; + let goldenMult = 1; + let wrathMult = 1; + let mult = 1; - // Factor auras and upgrade in mults - if (SimHas('Green yeast digestives')) mult *= 1.01; - if (SimHas('Dragon fang')) mult *= 1.03; + // Factor auras and upgrade in mults + if (SimHas('Green yeast digestives')) mult *= 1.01; + if (SimHas('Dragon fang')) mult *= 1.03; - goldenMult *= 1 + Game.auraMult('Ancestral Metamorphosis') * 0.1; - goldenMult *= Game.eff('goldenCookieGain'); - wrathMult *= 1 + Game.auraMult('Unholy Dominion') * 0.1; - wrathMult *= Game.eff('wrathCookieGain'); + goldenMult *= 1 + Game.auraMult('Ancestral Metamorphosis') * 0.1; + goldenMult *= Game.eff('goldenCookieGain'); + wrathMult *= 1 + Game.auraMult('Unholy Dominion') * 0.1; + wrathMult *= Game.eff('wrathCookieGain'); - // Calculate final golden and wrath multipliers - CacheGoldenCookiesMult = mult * goldenMult; - CacheWrathCookiesMult = mult * wrathMult; + // Calculate final golden and wrath multipliers + CacheGoldenCookiesMult = mult * goldenMult; + CacheWrathCookiesMult = mult * wrathMult; - // Calculate Dragon's Fortune multiplier adjustment: - // If Dragon's Fortune (or Reality Bending) aura is active and there are currently no golden cookies, - // compute a multiplier adjustment to apply on the current CPS to simulate 1 golden cookie on screen. - // Otherwise, the aura effect will be factored in the base CPS making the multiplier not requiring adjustment. - CacheDragonsFortuneMultAdjustment = 1; - if (Game.shimmerTypes.golden.n === 0) { - CacheDragonsFortuneMultAdjustment *= 1 + Game.auraMult('Dragon\'s Fortune') * 1.23; - } + // Calculate Dragon's Fortune multiplier adjustment: + // If Dragon's Fortune (or Reality Bending) aura is active and there are currently no golden cookies, + // compute a multiplier adjustment to apply on the current CPS to simulate 1 golden cookie on screen. + // Otherwise, the aura effect will be factored in the base CPS making the multiplier not requiring adjustment. + CacheDragonsFortuneMultAdjustment = 1; + if (Game.shimmerTypes.golden.n === 0) { + CacheDragonsFortuneMultAdjustment *= + 1 + Game.auraMult("Dragon's Fortune") * 1.23; + } } diff --git a/src/Cache/Wrinklers/Wrinklers.js b/src/Cache/Wrinklers/Wrinklers.js index 4d13bf00..7b0e9654 100644 --- a/src/Cache/Wrinklers/Wrinklers.js +++ b/src/Cache/Wrinklers/Wrinklers.js @@ -3,7 +3,9 @@ import { SimObjects } from '../../Sim/VariablesAndData'; import { - CacheWrinklersFattest, CacheWrinklersNormal, CacheWrinklersTotal, + CacheWrinklersFattest, + CacheWrinklersNormal, + CacheWrinklersTotal, } from '../VariablesAndData'; /** @@ -14,23 +16,24 @@ import { * @global {[{number}, {number}]} CM.Cache.WrinklersFattest A list containing the cookies and the id of the fattest non-shiny wrinkler */ export default function CacheWrinklers() { - for (let i = 0; i < Game.wrinklers.length; i++) { - let sucked = Game.wrinklers[i].sucked; - let toSuck = 1.1; - if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; - if (Game.wrinklers[i].type === 1) toSuck *= 3; // Shiny wrinklers - sucked *= toSuck; - if (Game.Has('Wrinklerspawn')) sucked *= 1.05; - if (SimObjects.Temple.minigameLoaded) { - const godLvl = Game.hasGod('scorn'); - if (godLvl === 1) sucked *= 1.15; - else if (godLvl === 2) sucked *= 1.1; - else if (godLvl === 3) sucked *= 1.05; - } - CacheWrinklersTotal += sucked; - if (Game.wrinklers[i].type === 0) { - CacheWrinklersNormal += sucked; - if (sucked > CacheWrinklersFattest[0]) CacheWrinklersFattest = [sucked, i]; - } - } + for (let i = 0; i < Game.wrinklers.length; i++) { + let sucked = Game.wrinklers[i].sucked; + let toSuck = 1.1; + if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; + if (Game.wrinklers[i].type === 1) toSuck *= 3; // Shiny wrinklers + sucked *= toSuck; + if (Game.Has('Wrinklerspawn')) sucked *= 1.05; + if (SimObjects.Temple.minigameLoaded) { + const godLvl = Game.hasGod('scorn'); + if (godLvl === 1) sucked *= 1.15; + else if (godLvl === 2) sucked *= 1.1; + else if (godLvl === 3) sucked *= 1.05; + } + CacheWrinklersTotal += sucked; + if (Game.wrinklers[i].type === 0) { + CacheWrinklersNormal += sucked; + if (sucked > CacheWrinklersFattest[0]) + CacheWrinklersFattest = [sucked, i]; + } + } } diff --git a/src/Config/CheckNotificationPermissions.js b/src/Config/CheckNotificationPermissions.js index 3fd191cc..c20a0b0a 100644 --- a/src/Config/CheckNotificationPermissions.js +++ b/src/Config/CheckNotificationPermissions.js @@ -5,26 +5,26 @@ * @param {number} ToggleOnOff A number indicating whether the option has been turned off (0) or on (1) */ function CheckNotificationPermissions(ToggleOnOff) { - if (ToggleOnOff === 1) { - // Check if browser support Promise version of Notification Permissions - const checkNotificationPromise = function () { - try { - Notification.requestPermission().then(); - } catch (e) { - return false; - } - return true; - }; + if (ToggleOnOff === 1) { + // Check if browser support Promise version of Notification Permissions + const checkNotificationPromise = function () { + try { + Notification.requestPermission().then(); + } catch (e) { + return false; + } + return true; + }; - // Check if the browser supports notifications and which type - if (!('Notification' in window)) { - console.log('This browser does not support notifications.'); - } else if (checkNotificationPromise()) { - Notification.requestPermission().then(); - } else { - Notification.requestPermission(); - } - } + // Check if the browser supports notifications and which type + if (!('Notification' in window)) { + console.log('This browser does not support notifications.'); + } else if (checkNotificationPromise()) { + Notification.requestPermission().then(); + } else { + Notification.requestPermission(); + } + } } export default CheckNotificationPermissions; diff --git a/src/Config/SaveLoadReload/SaveLoadReloadSettings.js b/src/Config/SaveLoadReload/SaveLoadReloadSettings.js index 6f0a0cb9..1a708973 100644 --- a/src/Config/SaveLoadReload/SaveLoadReloadSettings.js +++ b/src/Config/SaveLoadReload/SaveLoadReloadSettings.js @@ -13,12 +13,20 @@ import CMLoop from '../../Main/Loop'; * CM.ToggleConfigVolume() and changes in options with type "url", "color" or "numscale" */ export function SaveConfig() { - const saveString = b64_to_utf8(unescape(localStorage.getItem('CookieClickerGame')).split('!END!')[0]); - const CookieMonsterSave = saveString.match(/CookieMonster.*(;|$)/); - if (CookieMonsterSave !== null) { - const newSaveString = saveString.replace(CookieMonsterSave[0], `CookieMonster:${save()}`); - localStorage.setItem('CookieClickerGame', escape(`${utf8_to_b64(newSaveString)}!END!`)); - } + const saveString = b64_to_utf8( + unescape(localStorage.getItem('CookieClickerGame')).split('!END!')[0], + ); + const CookieMonsterSave = saveString.match(/CookieMonster.*(;|$)/); + if (CookieMonsterSave !== null) { + const newSaveString = saveString.replace( + CookieMonsterSave[0], + `CookieMonster:${save()}`, + ); + localStorage.setItem( + 'CookieClickerGame', + escape(`${utf8_to_b64(newSaveString)}!END!`), + ); + } } /** @@ -26,53 +34,64 @@ export function SaveConfig() { * It is called by CM.Main.DelayInit() and CM.Config.RestoreDefault() */ export function LoadConfig(settings) { - // This removes cookies left from earlier versions of CookieMonster - if (typeof localStorage.CMConfig !== 'undefined') { - delete localStorage.CMConfig; - } - if (settings !== undefined) { - CMOptions = settings; + // This removes cookies left from earlier versions of CookieMonster + if (typeof localStorage.CMConfig !== 'undefined') { + delete localStorage.CMConfig; + } + if (settings !== undefined) { + CMOptions = settings; - // Check values - let mod = false; - for (const i in ConfigDefault) { - if (typeof CMOptions[i] === 'undefined') { - mod = true; - CMOptions[i] = ConfigDefault[i]; - } else if (i !== 'Header' && i !== 'Colors') { - if (i.indexOf('SoundURL') === -1) { - if (!(CMOptions[i] > -1 && CMOptions[i] < ConfigData[i].label.length)) { - mod = true; - CMOptions[i] = ConfigDefault[i]; - } - } else if (typeof CMOptions[i] !== 'string') { // Sound URLs - mod = true; - CMOptions[i] = ConfigDefault[i]; - } - } else if (i === 'Header') { - for (const j in ConfigDefault.Header) { - if (typeof CMOptions[i][j] === 'undefined' || !(CMOptions[i][j] > -1 && CMOptions[i][j] < 2)) { - mod = true; - CMOptions[i][j] = ConfigDefault[i][j]; - } - } - } else { // Colors - for (const j in ConfigDefault.Colors) { - if (typeof CMOptions[i][j] === 'undefined' || typeof CMOptions[i][j] !== 'string') { - mod = true; - CMOptions[i][j] = ConfigDefault[i][j]; - } - } - } - } - if (mod) SaveConfig(); - CMLoop(); // Do loop once - for (const i in ConfigDefault) { - if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') { - ConfigData[i].func(); - } - } - } else { // Default values - LoadConfig(ConfigDefault); - } + // Check values + let mod = false; + for (const i in ConfigDefault) { + if (typeof CMOptions[i] === 'undefined') { + mod = true; + CMOptions[i] = ConfigDefault[i]; + } else if (i !== 'Header' && i !== 'Colors') { + if (i.indexOf('SoundURL') === -1) { + if ( + !(CMOptions[i] > -1 && CMOptions[i] < ConfigData[i].label.length) + ) { + mod = true; + CMOptions[i] = ConfigDefault[i]; + } + } else if (typeof CMOptions[i] !== 'string') { + // Sound URLs + mod = true; + CMOptions[i] = ConfigDefault[i]; + } + } else if (i === 'Header') { + for (const j in ConfigDefault.Header) { + if ( + typeof CMOptions[i][j] === 'undefined' || + !(CMOptions[i][j] > -1 && CMOptions[i][j] < 2) + ) { + mod = true; + CMOptions[i][j] = ConfigDefault[i][j]; + } + } + } else { + // Colors + for (const j in ConfigDefault.Colors) { + if ( + typeof CMOptions[i][j] === 'undefined' || + typeof CMOptions[i][j] !== 'string' + ) { + mod = true; + CMOptions[i][j] = ConfigDefault[i][j]; + } + } + } + } + if (mod) SaveConfig(); + CMLoop(); // Do loop once + for (const i in ConfigDefault) { + if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') { + ConfigData[i].func(); + } + } + } else { + // Default values + LoadConfig(ConfigDefault); + } } diff --git a/src/Config/SpecificToggles.js b/src/Config/SpecificToggles.js index 60b29a2e..17cd072e 100644 --- a/src/Config/SpecificToggles.js +++ b/src/Config/SpecificToggles.js @@ -7,48 +7,55 @@ import { CMOptions } from './VariablesAndData'; * This function changes the position of both the bottom and timer bar */ export function UpdateBotTimerBarPosition() { - if (CMOptions.BotBar === 1 && CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) { - l('CMBotBar').style.bottom = l('CMTimerBar').style.height; - l('game').style.bottom = `${Number(l('CMTimerBar').style.height.replace('px', '')) + 70}px`; - } else if (CMOptions.BotBar === 1) { - l('CMBotBar').style.bottom = '0px'; - l('game').style.bottom = '70px'; - } else if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) { - l('game').style.bottom = l('CMTimerBar').style.height; - } else { // No bars - l('game').style.bottom = '0px'; - } + if ( + CMOptions.BotBar === 1 && + CMOptions.TimerBar === 1 && + CMOptions.TimerBarPos === 1 + ) { + l('CMBotBar').style.bottom = l('CMTimerBar').style.height; + l('game').style.bottom = `${ + Number(l('CMTimerBar').style.height.replace('px', '')) + 70 + }px`; + } else if (CMOptions.BotBar === 1) { + l('CMBotBar').style.bottom = '0px'; + l('game').style.bottom = '70px'; + } else if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) { + l('game').style.bottom = l('CMTimerBar').style.height; + } else { + // No bars + l('game').style.bottom = '0px'; + } - if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) { - l('sectionLeft').style.top = l('CMTimerBar').style.height; - } else { - l('sectionLeft').style.top = ''; - } + if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) { + l('sectionLeft').style.top = l('CMTimerBar').style.height; + } else { + l('sectionLeft').style.top = ''; + } - UpdateBackground(); + UpdateBackground(); } /** * This function changes the visibility of the timer bar */ export function ToggleTimerBar() { - if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = ''; - else l('CMTimerBar').style.display = 'none'; - UpdateBotTimerBarPosition(); + if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = ''; + else l('CMTimerBar').style.display = 'none'; + UpdateBotTimerBarPosition(); } /** * This function changes the position of the timer bar */ export function ToggleTimerBarPos() { - if (CMOptions.TimerBarPos === 0) { - l('CMTimerBar').style.width = '30%'; - l('CMTimerBar').style.bottom = ''; - l('game').insertBefore(l('CMTimerBar'), l('sectionLeft')); - } else { - l('CMTimerBar').style.width = '100%'; - l('CMTimerBar').style.bottom = '0px'; - l('wrapper').appendChild(l('CMTimerBar')); - } - UpdateBotTimerBarPosition(); + if (CMOptions.TimerBarPos === 0) { + l('CMTimerBar').style.width = '30%'; + l('CMTimerBar').style.bottom = ''; + l('game').insertBefore(l('CMTimerBar'), l('sectionLeft')); + } else { + l('CMTimerBar').style.width = '100%'; + l('CMTimerBar').style.bottom = '0px'; + l('wrapper').appendChild(l('CMTimerBar')); + } + UpdateBotTimerBarPosition(); } diff --git a/src/Config/ToggleSetting.js b/src/Config/ToggleSetting.js index 9df84b90..3cd48b92 100644 --- a/src/Config/ToggleSetting.js +++ b/src/Config/ToggleSetting.js @@ -13,19 +13,21 @@ export const ConfigPrefix = 'CMConfig'; * @param {string} config The name of the option */ export function ToggleConfig(config) { - CMOptions[config]++; + CMOptions[config]++; - if (CMOptions[config] === ConfigData[config].label.length) { - CMOptions[config] = 0; - if (ConfigData[config].toggle) l(ConfigPrefix + config).className = 'option off'; - } else l(ConfigPrefix + config).className = 'option'; + if (CMOptions[config] === ConfigData[config].label.length) { + CMOptions[config] = 0; + if (ConfigData[config].toggle) + l(ConfigPrefix + config).className = 'option off'; + } else l(ConfigPrefix + config).className = 'option'; - if (typeof ConfigData[config].func !== 'undefined') { - ConfigData[config].func(); - } + if (typeof ConfigData[config].func !== 'undefined') { + ConfigData[config].func(); + } - l(ConfigPrefix + config).innerHTML = ConfigData[config].label[CMOptions[config]]; - SaveConfig(); + l(ConfigPrefix + config).innerHTML = + ConfigData[config].label[CMOptions[config]]; + SaveConfig(); } /** @@ -34,11 +36,11 @@ export function ToggleConfig(config) { * @param {string} config The name of the option */ export function ToggleConfigVolume(config) { - if (l(`slider${config}`) !== null) { - l(`slider${config}right`).innerHTML = `${l(`slider${config}`).value}%`; - CMOptions[config] = Math.round(l(`slider${config}`).value); - } - SaveConfig(); + if (l(`slider${config}`) !== null) { + l(`slider${config}right`).innerHTML = `${l(`slider${config}`).value}%`; + CMOptions[config] = Math.round(l(`slider${config}`).value); + } + SaveConfig(); } /** @@ -47,7 +49,7 @@ export function ToggleConfigVolume(config) { * @param {string} config The name of the header */ export function ToggleHeader(config) { - CMOptions.Header[config]++; - if (CMOptions.Header[config] > 1) CMOptions.Header[config] = 0; - SaveConfig(); + CMOptions.Header[config]++; + if (CMOptions.Header[config] > 1) CMOptions.Header[config] = 0; + SaveConfig(); } diff --git a/src/Config/Toggles/ToggleBotBar.js b/src/Config/Toggles/ToggleBotBar.js index 267b7748..92956917 100644 --- a/src/Config/Toggles/ToggleBotBar.js +++ b/src/Config/Toggles/ToggleBotBar.js @@ -7,11 +7,11 @@ import { CMOptions } from '../VariablesAndData'; * It is called by CM.Disp.UpdateAscendState() and a change in CMOptions.BotBar */ export default function ToggleBotBar() { - if (CMOptions.BotBar === 1) { - l('CMBotBar').style.display = ''; - UpdateBotBar(); - } else { - l('CMBotBar').style.display = 'none'; - } - UpdateBotTimerBarPosition(); + if (CMOptions.BotBar === 1) { + l('CMBotBar').style.display = ''; + UpdateBotBar(); + } else { + l('CMBotBar').style.display = 'none'; + } + UpdateBotTimerBarPosition(); } diff --git a/src/Config/Toggles/ToggleDetailedTime.js b/src/Config/Toggles/ToggleDetailedTime.js index a01c15ff..6753d7fd 100644 --- a/src/Config/Toggles/ToggleDetailedTime.js +++ b/src/Config/Toggles/ToggleDetailedTime.js @@ -7,6 +7,6 @@ import { CMOptions } from '../VariablesAndData'; * It is called by a change in CM.Options.DetailedTime */ export default function ToggleDetailedTime() { - if (CMOptions.DetailedTime === 1) Game.sayTime = CMSayTime; - else Game.sayTime = BackupFunctions.sayTime; + if (CMOptions.DetailedTime === 1) Game.sayTime = CMSayTime; + else Game.sayTime = BackupFunctions.sayTime; } diff --git a/src/Config/Toggles/ToggleGCTimer.js b/src/Config/Toggles/ToggleGCTimer.js index 87db4cbd..3f0f9835 100644 --- a/src/Config/Toggles/ToggleGCTimer.js +++ b/src/Config/Toggles/ToggleGCTimer.js @@ -7,13 +7,13 @@ import { CMOptions } from '../VariablesAndData'; * It is called by a change in CM.Options.GCTimer */ export default function ToggleGCTimer() { - if (CMOptions.GCTimer === 1) { - for (const i of Object.keys(GCTimers)) { - GCTimers[i].style.display = 'block'; - GCTimers[i].style.left = CacheGoldenShimmersByID[i].l.style.left; - GCTimers[i].style.top = CacheGoldenShimmersByID[i].l.style.top; - } - } else { - for (const i of Object.keys(GCTimers)) GCTimers[i].style.display = 'none'; - } + if (CMOptions.GCTimer === 1) { + for (const i of Object.keys(GCTimers)) { + GCTimers[i].style.display = 'block'; + GCTimers[i].style.left = CacheGoldenShimmersByID[i].l.style.left; + GCTimers[i].style.top = CacheGoldenShimmersByID[i].l.style.top; + } + } else { + for (const i of Object.keys(GCTimers)) GCTimers[i].style.display = 'none'; + } } diff --git a/src/Config/Toggles/ToggleToolWarnPos.js b/src/Config/Toggles/ToggleToolWarnPos.js index 08ccada9..d77c4852 100644 --- a/src/Config/Toggles/ToggleToolWarnPos.js +++ b/src/Config/Toggles/ToggleToolWarnPos.js @@ -6,15 +6,15 @@ import { CMOptions } from '../VariablesAndData'; * and upon creation of the warning tooltip by CM.Disp.UpdateTooltipWarnings() */ export default function ToggleToolWarnPos() { - if (l('CMDispTooltipWarningParent') !== null) { - if (CMOptions.ToolWarnPos === 0) { - l('CMDispTooltipWarningParent').style.top = 'auto'; - l('CMDispTooltipWarningParent').style.margin = '4px -4px'; - l('CMDispTooltipWarningParent').style.padding = '3px 4px'; - } else { - l('CMDispTooltipWarningParent').style.right = 'auto'; - l('CMDispTooltipWarningParent').style.margin = '4px'; - l('CMDispTooltipWarningParent').style.padding = '4px 3px'; - } - } + if (l('CMDispTooltipWarningParent') !== null) { + if (CMOptions.ToolWarnPos === 0) { + l('CMDispTooltipWarningParent').style.top = 'auto'; + l('CMDispTooltipWarningParent').style.margin = '4px -4px'; + l('CMDispTooltipWarningParent').style.padding = '3px 4px'; + } else { + l('CMDispTooltipWarningParent').style.right = 'auto'; + l('CMDispTooltipWarningParent').style.margin = '4px'; + l('CMDispTooltipWarningParent').style.padding = '4px 3px'; + } + } } diff --git a/src/Config/Toggles/ToggleUpgradeBarAndColor.js b/src/Config/Toggles/ToggleUpgradeBarAndColor.js index 856c25c1..227b0e14 100644 --- a/src/Config/Toggles/ToggleUpgradeBarAndColor.js +++ b/src/Config/Toggles/ToggleUpgradeBarAndColor.js @@ -9,14 +9,17 @@ import { CMOptions } from '../VariablesAndData'; * It is called by a change in CM.Options.UpBarColor */ export default function ToggleUpgradeBarAndColor() { - if (CMOptions.UpBarColor === 1) { // Colours and bar on - l('CMUpgradeBar').style.display = ''; - UpdateUpgrades(); - } else if (CMOptions.UpBarColor === 2) { // Colours on and bar off - l('CMUpgradeBar').style.display = 'none'; - UpdateUpgrades(); - } else { // Colours and bar off - l('CMUpgradeBar').style.display = 'none'; - Game.RebuildUpgrades(); - } + if (CMOptions.UpBarColor === 1) { + // Colours and bar on + l('CMUpgradeBar').style.display = ''; + UpdateUpgrades(); + } else if (CMOptions.UpBarColor === 2) { + // Colours on and bar off + l('CMUpgradeBar').style.display = 'none'; + UpdateUpgrades(); + } else { + // Colours and bar off + l('CMUpgradeBar').style.display = 'none'; + Game.RebuildUpgrades(); + } } diff --git a/src/Config/Toggles/ToggleUpgradeBarFixedPos.js b/src/Config/Toggles/ToggleUpgradeBarFixedPos.js index 8c2b6fba..94ffc9eb 100644 --- a/src/Config/Toggles/ToggleUpgradeBarFixedPos.js +++ b/src/Config/Toggles/ToggleUpgradeBarFixedPos.js @@ -5,10 +5,11 @@ import { CMOptions } from '../VariablesAndData'; * It is called by a change in CM.Options.UpgradeBarFixedPos */ export default function ToggleUpgradeBarFixedPos() { - if (CMOptions.UpgradeBarFixedPos === 1) { // Fix to top of screen when scrolling - l('CMUpgradeBar').style.position = 'sticky'; - l('CMUpgradeBar').style.top = '0px'; - } else { - l('CMUpgradeBar').style.position = ''; // Possible to scroll offscreen - } + if (CMOptions.UpgradeBarFixedPos === 1) { + // Fix to top of screen when scrolling + l('CMUpgradeBar').style.position = 'sticky'; + l('CMUpgradeBar').style.top = '0px'; + } else { + l('CMUpgradeBar').style.position = ''; // Possible to scroll offscreen + } } diff --git a/src/Config/Toggles/ToggleWrinklerButtons.js b/src/Config/Toggles/ToggleWrinklerButtons.js index 1684ead2..16128535 100644 --- a/src/Config/Toggles/ToggleWrinklerButtons.js +++ b/src/Config/Toggles/ToggleWrinklerButtons.js @@ -5,11 +5,11 @@ import { CMOptions } from '../VariablesAndData'; * It is called by changes in CM.Options.WrinklerButtons */ export default function ToggleWrinklerButtons() { - if (CMOptions.WrinklerButtons) { - l('PopAllNormalWrinklerButton').style.display = ''; - l('PopFattestWrinklerButton').style.display = ''; - } else { - l('PopAllNormalWrinklerButton').style.display = 'none'; - l('PopFattestWrinklerButton').style.display = 'none'; - } + if (CMOptions.WrinklerButtons) { + l('PopAllNormalWrinklerButton').style.display = ''; + l('PopFattestWrinklerButton').style.display = ''; + } else { + l('PopAllNormalWrinklerButton').style.display = 'none'; + l('PopFattestWrinklerButton').style.display = 'none'; + } } diff --git a/src/CookieMonster.js b/src/CookieMonster.js index df76bd48..658c81d7 100644 --- a/src/CookieMonster.js +++ b/src/CookieMonster.js @@ -4,9 +4,9 @@ import load from './InitSaveLoad/load'; import save from './InitSaveLoad/save'; const CM = { - init, - load, - save, + init, + load, + save, }; Game.registerMod('CookieMonster', CM); diff --git a/src/Data/Gamedata.js b/src/Data/Gamedata.js index 95e64b6a..82629c49 100644 --- a/src/Data/Gamedata.js +++ b/src/Data/Gamedata.js @@ -2,93 +2,96 @@ /** Array of the names of all fortune cookies obtainable from the ticker */ export const Fortunes = [ - 'Fortune #001', - 'Fortune #002', - 'Fortune #003', - 'Fortune #004', - 'Fortune #005', - 'Fortune #006', - 'Fortune #007', - 'Fortune #008', - 'Fortune #009', - 'Fortune #010', - 'Fortune #011', - 'Fortune #012', - 'Fortune #013', - 'Fortune #014', - 'Fortune #015', - 'Fortune #016', - 'Fortune #017', - 'Fortune #018', - 'Fortune #100', - 'Fortune #101', - 'Fortune #102', - 'Fortune #103', - 'Fortune #104', + 'Fortune #001', + 'Fortune #002', + 'Fortune #003', + 'Fortune #004', + 'Fortune #005', + 'Fortune #006', + 'Fortune #007', + 'Fortune #008', + 'Fortune #009', + 'Fortune #010', + 'Fortune #011', + 'Fortune #012', + 'Fortune #013', + 'Fortune #014', + 'Fortune #015', + 'Fortune #016', + 'Fortune #017', + 'Fortune #018', + 'Fortune #100', + 'Fortune #101', + 'Fortune #102', + 'Fortune #103', + 'Fortune #104', ]; /** Array of the names of all Halloween cookies */ export const HalloCookies = [ - 'Skull cookies', - 'Ghost cookies', - 'Bat cookies', - 'Slime cookies', - 'Pumpkin cookies', - 'Eyeball cookies', - 'Spider cookies', + 'Skull cookies', + 'Ghost cookies', + 'Bat cookies', + 'Slime cookies', + 'Pumpkin cookies', + 'Eyeball cookies', + 'Spider cookies', ]; /** Array of the names of all Christmas cookies */ -export const ChristCookies = ['Christmas tree biscuits', - 'Snowflake biscuits', - 'Snowman biscuits', - 'Holly biscuits', - 'Candy cane biscuits', - 'Bell biscuits', - 'Present biscuits', +export const ChristCookies = [ + 'Christmas tree biscuits', + 'Snowflake biscuits', + 'Snowman biscuits', + 'Holly biscuits', + 'Candy cane biscuits', + 'Bell biscuits', + 'Present biscuits', ]; /** Array of the names of all Valentine cookies */ -export const ValCookies = ['Pure heart biscuits', - 'Ardent heart biscuits', - 'Sour heart biscuits', - 'Weeping heart biscuits', - 'Golden heart biscuits', - 'Eternal heart biscuits', - 'Prism heart biscuits', +export const ValCookies = [ + 'Pure heart biscuits', + 'Ardent heart biscuits', + 'Sour heart biscuits', + 'Weeping heart biscuits', + 'Golden heart biscuits', + 'Eternal heart biscuits', + 'Prism heart biscuits', ]; /** Array of the names of all plant drops */ -export const PlantDrops = ['Elderwort biscuits', - 'Bakeberry cookies', - 'Duketater cookies', - 'Green yeast digestives', - 'Wheat slims', - 'Fern tea', - 'Ichor syrup', +export const PlantDrops = [ + 'Elderwort biscuits', + 'Bakeberry cookies', + 'Duketater cookies', + 'Green yeast digestives', + 'Wheat slims', + 'Fern tea', + 'Ichor syrup', ]; /** All possible effects plants and other items can have with a display-title */ export const Effects = { - buildingCost: 'Building prices', - click: 'Cookies per click', - cps: 'Total CPS', - cursorCps: 'Cursor CPS', - goldenCookieDur: 'Golden cookie duration', - goldenCookieEffDur: 'Golden cookie effect duration', - goldenCookieFreq: 'Golden cookie frequency', - goldenCookieGain: 'Golden cookie gains', - grandmaCps: 'Grandma CPS', - itemDrops: 'Random item drop chance', - milk: 'Effect from milk', - reindeerDur: 'Reindeer duration', - reindeerFreq: 'Reindeer frequency', - reindeerGain: 'Reindeer gains', - upgradeCost: 'Upgrade prices', - wrathCookieDur: 'Wrath cookie duration', - wrathCookieEffDur: 'Wrath cookie effect duration', - wrathCookieFreq: 'Wrath cookie frequency', - wrathCookieGain: 'Wrath cookie gains', - wrinklerEat: 'Wrinkler ', - wrinklerSpawn: 'Wrinkler spawn frequency', + buildingCost: 'Building prices', + click: 'Cookies per click', + cps: 'Total CPS', + cursorCps: 'Cursor CPS', + goldenCookieDur: 'Golden cookie duration', + goldenCookieEffDur: 'Golden cookie effect duration', + goldenCookieFreq: 'Golden cookie frequency', + goldenCookieGain: 'Golden cookie gains', + grandmaCps: 'Grandma CPS', + itemDrops: 'Random item drop chance', + milk: 'Effect from milk', + reindeerDur: 'Reindeer duration', + reindeerFreq: 'Reindeer frequency', + reindeerGain: 'Reindeer gains', + upgradeCost: 'Upgrade prices', + wrathCookieDur: 'Wrath cookie duration', + wrathCookieEffDur: 'Wrath cookie effect duration', + wrathCookieFreq: 'Wrath cookie frequency', + wrathCookieGain: 'Wrath cookie gains', + wrinklerEat: 'Wrinkler ', + wrinklerSpawn: 'Wrinkler spawn frequency', }; diff --git a/src/Data/Moddata.js b/src/Data/Moddata.js index 85b6a6db..f03a734c 100644 --- a/src/Data/Moddata.js +++ b/src/Data/Moddata.js @@ -1,7 +1,7 @@ /** Data related directly to Cookie Monster */ export const VersionMajor = '2.031'; -export const VersionMinor = '6'; +export const VersionMinor = '5'; /** Information about Cookie Monster to be displayed in the info section */ export const ModDescription = `
diff --git a/src/Data/Scales.js b/src/Data/Scales.js index 8c5e7941..f6510f96 100644 --- a/src/Data/Scales.js +++ b/src/Data/Scales.js @@ -1,148 +1,141 @@ /** Data related directly to the scales used by Cookie Monster */ /** Array of abbreviations used in the "Metric" scale */ -export const metric = ['', - '', - 'M', - 'G', - 'T', - 'P', - 'E', - 'Z', - 'Y', -]; +export const metric = ['', '', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']; /** Array of abbreviations used in the "Short" scale */ -export const shortScale = ['', - '', - 'M', - 'B', - 'Tr', - 'Quadr', - 'Quint', - 'Sext', - 'Sept', - 'Oct', - 'Non', - 'Dec', - 'Undec', - 'Duodec', - 'Tredec', - 'Quattuordec', - 'Quindec', - 'Sexdec', - 'Septendec', - 'Octodec', - 'Novemdec', - 'Vigint', - 'Unvigint', - 'Duovigint', - 'Trevigint', - 'Quattuorvigint', +export const shortScale = [ + '', + '', + 'M', + 'B', + 'Tr', + 'Quadr', + 'Quint', + 'Sext', + 'Sept', + 'Oct', + 'Non', + 'Dec', + 'Undec', + 'Duodec', + 'Tredec', + 'Quattuordec', + 'Quindec', + 'Sexdec', + 'Septendec', + 'Octodec', + 'Novemdec', + 'Vigint', + 'Unvigint', + 'Duovigint', + 'Trevigint', + 'Quattuorvigint', ]; /** Array of abbreviations used in the "Abbreviated Short" scale */ -export const shortScaleAbbreviated = ['', - 'K', - 'M', - 'B', - 'T', - 'Qa', - 'Qi', - 'Sx', - 'Sp', - 'Oc', - 'No', - 'De', - 'UDe', - 'DDe', - 'TDe', - 'QaDe', - 'QiDe', - 'SxDe', - 'SpDe', - 'ODe', - 'NDe', - 'Vi', - 'UVi', - 'DVi', - 'TVi', - 'QaVi', - 'QiVi', - 'SxVi', - 'SpVi', - 'OVi', - 'NVi', - 'Tr', - 'UTr', - 'DTr', - 'TTr', - 'QaTr', - 'QiTr', - 'SxTr', - 'SpTr', - 'OTr', - 'NTr', - 'Qaa', - 'UQa', - 'DQa', - 'TQa', - 'QaQa', - 'QiQa', - 'SxQa', - 'SpQa', - 'OQa', - 'NQa', - 'Qia', - 'UQi', - 'DQi', - 'TQi', - 'QaQi', - 'QiQi', - 'SxQi', - 'SpQi', - 'OQi', - 'NQi', - 'Sxa', - 'USx', - 'DSx', - 'TSx', - 'QaSx', - 'QiSx', - 'SxSx', - 'SpSx', - 'OSx', - 'NSx', - 'Spa', - 'USp', - 'DSp', - 'TSp', - 'QaSp', - 'QiSp', - 'SxSp', - 'SpSp', - 'OSp', - 'NSp', - 'Oco', - 'UOc', - 'DOc', - 'TOc', - 'QaOc', - 'QiOc', - 'SxOc', - 'SpOc', - 'OOc', - 'NOc', - 'Noa', - 'UNo', - 'DNo', - 'TNo', - 'QaNo', - 'QiNo', - 'SxNo', - 'SpNo', - 'ONo', - 'NNo', - 'Ct', - 'UCt', +export const shortScaleAbbreviated = [ + '', + 'K', + 'M', + 'B', + 'T', + 'Qa', + 'Qi', + 'Sx', + 'Sp', + 'Oc', + 'No', + 'De', + 'UDe', + 'DDe', + 'TDe', + 'QaDe', + 'QiDe', + 'SxDe', + 'SpDe', + 'ODe', + 'NDe', + 'Vi', + 'UVi', + 'DVi', + 'TVi', + 'QaVi', + 'QiVi', + 'SxVi', + 'SpVi', + 'OVi', + 'NVi', + 'Tr', + 'UTr', + 'DTr', + 'TTr', + 'QaTr', + 'QiTr', + 'SxTr', + 'SpTr', + 'OTr', + 'NTr', + 'Qaa', + 'UQa', + 'DQa', + 'TQa', + 'QaQa', + 'QiQa', + 'SxQa', + 'SpQa', + 'OQa', + 'NQa', + 'Qia', + 'UQi', + 'DQi', + 'TQi', + 'QaQi', + 'QiQi', + 'SxQi', + 'SpQi', + 'OQi', + 'NQi', + 'Sxa', + 'USx', + 'DSx', + 'TSx', + 'QaSx', + 'QiSx', + 'SxSx', + 'SpSx', + 'OSx', + 'NSx', + 'Spa', + 'USp', + 'DSp', + 'TSp', + 'QaSp', + 'QiSp', + 'SxSp', + 'SpSp', + 'OSp', + 'NSp', + 'Oco', + 'UOc', + 'DOc', + 'TOc', + 'QaOc', + 'QiOc', + 'SxOc', + 'SpOc', + 'OOc', + 'NOc', + 'Noa', + 'UNo', + 'DNo', + 'TNo', + 'QaNo', + 'QiNo', + 'SxNo', + 'SpNo', + 'ONo', + 'NNo', + 'Ct', + 'UCt', ]; diff --git a/src/Data/Sectionheaders.js b/src/Data/Sectionheaders.js index 28b6f55e..9c8e9ecd 100644 --- a/src/Data/Sectionheaders.js +++ b/src/Data/Sectionheaders.js @@ -2,23 +2,23 @@ /** Display titles of the headers of the Cookie Monster settings section */ export const ConfigGroups = { - BarsColors: 'Bars/Colors', - Calculation: 'Calculation', - Notification: 'Notification', - Tooltip: 'Tooltips and additional insights', - Statistics: 'Statistics', - Notation: 'Notation', - Miscellaneous: 'Miscellaneous', + BarsColors: 'Bars/Colors', + Calculation: 'Calculation', + Notification: 'Notification', + Tooltip: 'Tooltips and additional insights', + Statistics: 'Statistics', + Notation: 'Notation', + Miscellaneous: 'Miscellaneous', }; /** Display titles of the headers of the notification section of the Cookie Monster settings */ export const ConfigGroupsNotification = { - NotificationGeneral: 'General Notifications', - NotificationGC: 'Golden Cookie', - NotificationFC: 'Fortune Cookie', - NotificationSea: 'Season Special', - NotificationGard: 'Garden Tick', - NotificationMagi: 'Full Magic Bar', - NotificationWrink: 'Wrinkler', - NotificationWrinkMax: 'Maximum Wrinklers', + NotificationGeneral: 'General Notifications', + NotificationGC: 'Golden Cookie', + NotificationFC: 'Fortune Cookie', + NotificationSea: 'Season Special', + NotificationGard: 'Garden Tick', + NotificationMagi: 'Full Magic Bar', + NotificationWrink: 'Wrinkler', + NotificationWrinkMax: 'Maximum Wrinklers', }; diff --git a/src/Data/SettingClasses.js b/src/Data/SettingClasses.js index 42736116..5c410367 100644 --- a/src/Data/SettingClasses.js +++ b/src/Data/SettingClasses.js @@ -3,52 +3,52 @@ /** The basic setting class */ export class Setting { - constructor(type, group) { - this.type = type; - this.group = group; - } + constructor(type, group) { + this.type = type; + this.group = group; + } } /** The standard toggle setting class */ export class SettingStandard extends Setting { - constructor(type, group, label, desc, toggle, func = null) { - super(type, group); - this.label = label; - this.desc = desc; - this.toggle = toggle; - if (func) { - this.func = func; - } - } + constructor(type, group, label, desc, toggle, func = null) { + super(type, group); + this.label = label; + this.desc = desc; + this.toggle = toggle; + if (func) { + this.func = func; + } + } } /** The colour picker setting class */ export class SettingColours extends Setting { - constructor(type, group, desc, func) { - super(type, group); - this.desc = desc; - this.func = func; - } + constructor(type, group, desc, func) { + super(type, group); + this.desc = desc; + this.func = func; + } } /** The volume level setting class */ export class SettingVolume extends Setting { - constructor(type, group, label, desc) { - super(type, group); - this.label = label; - this.desc = desc; - for (let i = 0; i < 101; i++) { - this.label[i] = `${i}%`; - } - } + constructor(type, group, label, desc) { + super(type, group); + this.label = label; + this.desc = desc; + for (let i = 0; i < 101; i++) { + this.label[i] = `${i}%`; + } + } } /** The number input setting class */ export class SettingInputNumber extends Setting { - constructor(type, group, label, desc, min, max) { - super(type, group); - this.label = label; - this.desc = desc; - this.min = min; - this.max = max; - } + constructor(type, group, label, desc, min, max) { + super(type, group); + this.label = label; + this.desc = desc; + this.min = min; + this.max = max; + } } diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index 7b48eedf..aafe5bbc 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -15,657 +15,738 @@ import RefreshScale from '../Disp/HelperFunctions/RefreshScale'; import UpdateColors from '../Disp/HelperFunctions/UpdateColors'; import { UpdateFavicon } from '../Disp/TabTitle/FavIcon'; import { - SettingStandard, SettingColours, SettingVolume, SettingInputNumber, + SettingStandard, + SettingColours, + SettingVolume, + SettingInputNumber, } from './SettingClasses'; /** This includes all options of CookieMonster and their relevant data */ const Config = { - // Barscolors - BotBar: new SettingStandard( - 'bool', - 'BarsColors', - ['Bottom Bar OFF', 'Bottom Bar ON'], - 'Building Information', - true, - function () { ToggleBotBar(); }, - ), - TimerBar: new SettingStandard( - 'bool', - 'BarsColors', - ['Timer Bar OFF', 'Timer Bar ON'], - 'Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy', - true, - function () { ToggleTimerBar(); }, - ), - TimerBarPos: new SettingStandard( - 'bool', - 'BarsColors', - ['Timer Bar Position (Top Left)', 'Timer Bar Position (Bottom)'], - 'Placement of the Timer Bar', - false, - function () { ToggleTimerBarPos(); }, - ), - TimerBarOverlay: new SettingStandard( - 'bool', - 'BarsColors', - ['Timer Bar Overlay OFF', 'Timer Bar Overlay Only Seconds', 'Timer Bar Overlay Full'], - 'Overlay on timers displaying seconds and/or percentage left', - true, - ), - SortBuildings: new SettingStandard( - 'bool', - 'BarsColors', - ['Sort Buildings: Default', 'Sort Buildings: PP'], - 'Sort the display of buildings in either default order or by PP', - false, - function () { UpdateBuildings(); }, - ), - SortUpgrades: new SettingStandard( - 'bool', - 'BarsColors', - ['Sort Upgrades: Default', 'Sort Upgrades: PP'], - 'Sort the display of upgrades in either default order or by PP', - false, - function () { UpdateUpgrades(); }, - ), - BuildColor: new SettingStandard( - 'bool', - 'BarsColors', - ['Building Colors OFF', 'Building Colors ON'], - 'Color code buildings', - true, - function () { UpdateBuildings(); }, - ), - BulkBuildColor: new SettingStandard( - 'bool', - 'BarsColors', - ['Bulk Building Colors (Single Building Color)', 'Bulk Building Colors (Calculated Bulk Color)'], - 'Color code bulk buildings based on single buildings color or calculated bulk value color', - false, - function () { UpdateBuildings(); }, - ), - UpBarColor: new SettingStandard( - 'bool', - 'BarsColors', - ['Upgrade Colors/Bar OFF', 'Upgrade Colors with Bar ON', 'Upgrade Colors without Bar ON'], - 'Color code upgrades and optionally add a counter bar', - false, - function () { ToggleUpgradeBarAndColor(); }, - ), - Colors: new SettingColours( - 'color', - 'BarsColors', - { - Blue: 'Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels', - Green: 'Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels', - Yellow: 'Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels', - Orange: 'Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels', - Red: 'Color Red. Used to show worst PP building, for Clot bar, and for various labels', - Purple: 'Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels', - Gray: 'Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar', - Pink: 'Color Pink. Used for Dragonflight bar', - Brown: 'Color Brown. Used for Dragon Harvest bar', - }, - function () { UpdateColors(); }, - ), - UpgradeBarFixedPos: new SettingStandard( - 'bool', - 'BarsColors', - ['Upgrade Bar Fixed Position OFF', 'Upgrade Bar Fixed Position ON'], - 'Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling', - true, - function () { ToggleUpgradeBarFixedPos(); }, - ), + // Barscolors + BotBar: new SettingStandard( + 'bool', + 'BarsColors', + ['Bottom Bar OFF', 'Bottom Bar ON'], + 'Building Information', + true, + function () { + ToggleBotBar(); + }, + ), + TimerBar: new SettingStandard( + 'bool', + 'BarsColors', + ['Timer Bar OFF', 'Timer Bar ON'], + 'Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy', + true, + function () { + ToggleTimerBar(); + }, + ), + TimerBarPos: new SettingStandard( + 'bool', + 'BarsColors', + ['Timer Bar Position (Top Left)', 'Timer Bar Position (Bottom)'], + 'Placement of the Timer Bar', + false, + function () { + ToggleTimerBarPos(); + }, + ), + TimerBarOverlay: new SettingStandard( + 'bool', + 'BarsColors', + [ + 'Timer Bar Overlay OFF', + 'Timer Bar Overlay Only Seconds', + 'Timer Bar Overlay Full', + ], + 'Overlay on timers displaying seconds and/or percentage left', + true, + ), + SortBuildings: new SettingStandard( + 'bool', + 'BarsColors', + ['Sort Buildings: Default', 'Sort Buildings: PP'], + 'Sort the display of buildings in either default order or by PP', + false, + function () { + UpdateBuildings(); + }, + ), + SortUpgrades: new SettingStandard( + 'bool', + 'BarsColors', + ['Sort Upgrades: Default', 'Sort Upgrades: PP'], + 'Sort the display of upgrades in either default order or by PP', + false, + function () { + UpdateUpgrades(); + }, + ), + BuildColor: new SettingStandard( + 'bool', + 'BarsColors', + ['Building Colors OFF', 'Building Colors ON'], + 'Color code buildings', + true, + function () { + UpdateBuildings(); + }, + ), + BulkBuildColor: new SettingStandard( + 'bool', + 'BarsColors', + [ + 'Bulk Building Colors (Single Building Color)', + 'Bulk Building Colors (Calculated Bulk Color)', + ], + 'Color code bulk buildings based on single buildings color or calculated bulk value color', + false, + function () { + UpdateBuildings(); + }, + ), + UpBarColor: new SettingStandard( + 'bool', + 'BarsColors', + [ + 'Upgrade Colors/Bar OFF', + 'Upgrade Colors with Bar ON', + 'Upgrade Colors without Bar ON', + ], + 'Color code upgrades and optionally add a counter bar', + false, + function () { + ToggleUpgradeBarAndColor(); + }, + ), + Colors: new SettingColours( + 'color', + 'BarsColors', + { + Blue: + 'Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels', + Green: + 'Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels', + Yellow: + 'Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels', + Orange: + 'Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels', + Red: + 'Color Red. Used to show worst PP building, for Clot bar, and for various labels', + Purple: + 'Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels', + Gray: + 'Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar', + Pink: 'Color Pink. Used for Dragonflight bar', + Brown: 'Color Brown. Used for Dragon Harvest bar', + }, + function () { + UpdateColors(); + }, + ), + UpgradeBarFixedPos: new SettingStandard( + 'bool', + 'BarsColors', + ['Upgrade Bar Fixed Position OFF', 'Upgrade Bar Fixed Position ON'], + 'Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling', + true, + function () { + ToggleUpgradeBarFixedPos(); + }, + ), - // Calculation - CalcWrink: new SettingStandard( - 'bool', - 'Calculation', - ['Calculate with Wrinklers OFF', 'Calculate with Wrinklers ON', 'Calculate with Single Fattest Wrinkler ON'], - 'Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers', - true, - ), - CPSMode: new SettingStandard( - 'bool', - 'Calculation', - ['Current Cookies Per Second', 'Average Cookies Per Second'], - 'Calculate times using current Cookies Per Second or average Cookies Per Second', - false, - ), - AvgCPSHist: new SettingStandard( - 'bool', - 'Calculation', - ['Average CPS for past 10s', 'Average CPS for past 15s', 'Average CPS for past 30s', 'Average CPS for past 1m', 'Average CPS for past 5m', 'Average CPS for past 10m', 'Average CPS for past 15m', 'Average CPS for past 30m'], - 'How much time average Cookies Per Second should consider', - false, - ), - AvgClicksHist: new SettingStandard( - 'bool', - 'Calculation', - ['Average Cookie Clicks for past 1s', 'Average Cookie Clicks for past 5s', 'Average Cookie Clicks for past 10s', 'Average Cookie Clicks for past 15s', 'Average Cookie Clicks for past 30s'], - 'How much time average Cookie Clicks should consider', - false, - ), - ColorPPBulkMode: new SettingStandard( - 'bool', - 'Calculation', - ['Color of PP (Compared to Single)', 'Color of PP (Compared to Bulk)'], - 'Color PP-values based on comparison with single purchase or with selected bulk-buy mode', - false, - function () { CachePP(); }, - ), - PPExcludeTop: new SettingStandard( - 'bool', - 'Calculation', - ["Don't Ignore Any", 'Ignore 1st Best', 'Ignore 1st and 2nd Best', 'Ignore 1st, 2nd and 3rd Best'], - 'Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values', - true, - ), - PPSecondsLowerLimit: new SettingInputNumber( - 'numscale', - 'Calculation', - 'Lower limit for PP (in seconds): ', - 'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option', - 0, - Infinity, - ), - PPOnlyConsiderBuyable: new SettingStandard( - 'bool', - 'Calculation', - ["Don't Ignore Non-Buyable", 'Ignore Non-Buyable'], - "Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'", - true, - ), - ToolWarnBon: new SettingStandard( - 'bool', - 'Calculation', - ['Calculate Tooltip Warning With Bonus CPS OFF', 'Calculate Tooltip Warning With Bonus CPS ON'], - 'Calculate the warning with or without the bonus CPS you get from buying', - true, - ), + // Calculation + CalcWrink: new SettingStandard( + 'bool', + 'Calculation', + [ + 'Calculate with Wrinklers OFF', + 'Calculate with Wrinklers ON', + 'Calculate with Single Fattest Wrinkler ON', + ], + 'Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers', + true, + ), + CPSMode: new SettingStandard( + 'bool', + 'Calculation', + ['Current Cookies Per Second', 'Average Cookies Per Second'], + 'Calculate times using current Cookies Per Second or average Cookies Per Second', + false, + ), + AvgCPSHist: new SettingStandard( + 'bool', + 'Calculation', + [ + 'Average CPS for past 10s', + 'Average CPS for past 15s', + 'Average CPS for past 30s', + 'Average CPS for past 1m', + 'Average CPS for past 5m', + 'Average CPS for past 10m', + 'Average CPS for past 15m', + 'Average CPS for past 30m', + ], + 'How much time average Cookies Per Second should consider', + false, + ), + AvgClicksHist: new SettingStandard( + 'bool', + 'Calculation', + [ + 'Average Cookie Clicks for past 1s', + 'Average Cookie Clicks for past 5s', + 'Average Cookie Clicks for past 10s', + 'Average Cookie Clicks for past 15s', + 'Average Cookie Clicks for past 30s', + ], + 'How much time average Cookie Clicks should consider', + false, + ), + ColorPPBulkMode: new SettingStandard( + 'bool', + 'Calculation', + ['Color of PP (Compared to Single)', 'Color of PP (Compared to Bulk)'], + 'Color PP-values based on comparison with single purchase or with selected bulk-buy mode', + false, + function () { + CachePP(); + }, + ), + PPExcludeTop: new SettingStandard( + 'bool', + 'Calculation', + [ + "Don't Ignore Any", + 'Ignore 1st Best', + 'Ignore 1st and 2nd Best', + 'Ignore 1st, 2nd and 3rd Best', + ], + 'Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values', + true, + ), + PPSecondsLowerLimit: new SettingInputNumber( + 'numscale', + 'Calculation', + 'Lower limit for PP (in seconds): ', + 'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option', + 0, + Infinity, + ), + PPOnlyConsiderBuyable: new SettingStandard( + 'bool', + 'Calculation', + ["Don't Ignore Non-Buyable", 'Ignore Non-Buyable'], + "Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'", + true, + ), + ToolWarnBon: new SettingStandard( + 'bool', + 'Calculation', + [ + 'Calculate Tooltip Warning With Bonus CPS OFF', + 'Calculate Tooltip Warning With Bonus CPS ON', + ], + 'Calculate the warning with or without the bonus CPS you get from buying', + true, + ), - // Notification - Title: new SettingStandard( - 'bool', - 'NotificationGeneral', - ['Title OFF', 'Title ON', 'Title Pinned Tab Highlight'], - 'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn', - true, - ), - GeneralSound: new SettingStandard( - 'bool', - 'NotificationGeneral', - ['Consider Game Volume Setting OFF', 'Consider Game Volume Setting ON'], - 'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down', - true, - ), - GCNotification: new SettingStandard( - 'bool', - 'NotificationGC', - ['Notification OFF', 'Notification ON'], - 'Create a notification when Golden Cookie spawns', - true, - function () { CheckNotificationPermissions(CMOptions.GCNotification); }, - ), - GCFlash: new SettingStandard( - 'bool', - 'NotificationGC', - ['Flash OFF', 'Flash ON'], - 'Flash screen on Golden Cookie', - true, - ), - GCSound: new SettingStandard( - 'bool', - 'NotificationGC', - ['Sound OFF', 'Sound ON'], - 'Play a sound on Golden Cookie', - true, - ), - GCVolume: new SettingVolume( - 'vol', - 'NotificationGC', - [], - 'Volume', - ), - GCSoundURL: new SettingStandard( - 'url', - 'NotificationGC', - 'Sound URL:', - 'URL of the sound to be played when a Golden Cookie spawns', - ), - FortuneNotification: new SettingStandard( - 'bool', - 'NotificationFC', - ['Notification OFF', 'Notification ON'], - 'Create a notification when Fortune Cookie is on the Ticker', - true, - function () { CheckNotificationPermissions(CMOptions.FortuneNotification); }, - ), - FortuneFlash: new SettingStandard( - 'bool', - 'NotificationFC', - ['Flash OFF', 'Flash ON'], - 'Flash screen on Fortune Cookie', - true, - ), - FortuneSound: new SettingStandard( - 'bool', - 'NotificationFC', - ['Sound OFF', 'Sound ON'], - 'Play a sound on Fortune Cookie', - true, - ), - FortuneVolume: new SettingVolume( - 'vol', - 'NotificationFC', - [], - 'Volume', - ), + // Notification + Title: new SettingStandard( + 'bool', + 'NotificationGeneral', + ['Title OFF', 'Title ON', 'Title Pinned Tab Highlight'], + 'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn', + true, + ), + GeneralSound: new SettingStandard( + 'bool', + 'NotificationGeneral', + ['Consider Game Volume Setting OFF', 'Consider Game Volume Setting ON'], + 'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down', + true, + ), + GCNotification: new SettingStandard( + 'bool', + 'NotificationGC', + ['Notification OFF', 'Notification ON'], + 'Create a notification when Golden Cookie spawns', + true, + function () { + CheckNotificationPermissions(CMOptions.GCNotification); + }, + ), + GCFlash: new SettingStandard( + 'bool', + 'NotificationGC', + ['Flash OFF', 'Flash ON'], + 'Flash screen on Golden Cookie', + true, + ), + GCSound: new SettingStandard( + 'bool', + 'NotificationGC', + ['Sound OFF', 'Sound ON'], + 'Play a sound on Golden Cookie', + true, + ), + GCVolume: new SettingVolume('vol', 'NotificationGC', [], 'Volume'), + GCSoundURL: new SettingStandard( + 'url', + 'NotificationGC', + 'Sound URL:', + 'URL of the sound to be played when a Golden Cookie spawns', + ), + FortuneNotification: new SettingStandard( + 'bool', + 'NotificationFC', + ['Notification OFF', 'Notification ON'], + 'Create a notification when Fortune Cookie is on the Ticker', + true, + function () { + CheckNotificationPermissions(CMOptions.FortuneNotification); + }, + ), + FortuneFlash: new SettingStandard( + 'bool', + 'NotificationFC', + ['Flash OFF', 'Flash ON'], + 'Flash screen on Fortune Cookie', + true, + ), + FortuneSound: new SettingStandard( + 'bool', + 'NotificationFC', + ['Sound OFF', 'Sound ON'], + 'Play a sound on Fortune Cookie', + true, + ), + FortuneVolume: new SettingVolume('vol', 'NotificationFC', [], 'Volume'), - FortuneSoundURL: new SettingStandard( - 'url', - 'NotificationFC', - 'Sound URL:', - 'URL of the sound to be played when the Ticker has a Fortune Cookie', - ), - SeaNotification: new SettingStandard( - 'bool', - 'NotificationSea', - ['Notification OFF', 'Notification ON'], - 'Create a notification on Season Popup', - true, - function () { CheckNotificationPermissions(CMOptions.SeaNotification); }, - ), - SeaFlash: new SettingStandard( - 'bool', - 'NotificationSea', - ['Flash OFF', 'Flash ON'], - 'Flash screen on Season Popup', - true, - ), - SeaSound: new SettingStandard( - 'bool', - 'NotificationSea', - ['Sound OFF', 'Sound ON'], - 'Play a sound on Season Popup', - true, - ), - SeaVolume: new SettingVolume( - 'vol', - 'NotificationSea', - [], - 'Volume', - ), - SeaSoundURL: new SettingStandard( - 'url', - 'NotificationSea', - 'Sound URL:', - 'URL of the sound to be played when a Season Special spawns', - ), - GardFlash: new SettingStandard( - 'bool', - 'NotificationGard', - ['Garden Tick Flash OFF', 'Flash ON'], - 'Flash screen on Garden Tick', - true, - ), - GardSound: new SettingStandard( - 'bool', - 'NotificationGard', - ['Sound OFF', 'Sound ON'], - 'Play a sound on Garden Tick', - true, - ), - GardVolume: new SettingVolume( - 'vol', - 'NotificationGard', - [], - 'Volume', - ), - GardSoundURL: new SettingStandard( - 'url', - 'NotificationGard', - 'Garden Tick Sound URL:', - 'URL of the sound to be played when the garden ticks', - ), - MagicNotification: new SettingStandard( - 'bool', - 'NotificationMagi', - ['Notification OFF', 'Notification ON'], - 'Create a notification when magic reaches maximum', - true, - function () { CheckNotificationPermissions(CMOptions.MagicNotification); }, - ), - MagicFlash: new SettingStandard( - 'bool', - 'NotificationMagi', - ['Flash OFF', 'Flash ON'], - 'Flash screen when magic reaches maximum', - true, - ), - MagicSound: new SettingStandard( - 'bool', - 'NotificationMagi', - ['Sound OFF', 'Sound ON'], - 'Play a sound when magic reaches maximum', - true, - ), - MagicVolume: new SettingVolume( - 'vol', - 'NotificationMagi', - [], - 'Volume', - ), - MagicSoundURL: new SettingStandard( - 'url', - 'NotificationMagi', - 'Sound URL:', - 'URL of the sound to be played when magic reaches maxium', - ), - WrinklerNotification: new SettingStandard( - 'bool', - 'NotificationWrink', - ['Notification OFF', 'Notification ON'], - 'Create a notification when a Wrinkler appears', - true, - function () { CheckNotificationPermissions(CMOptions.WrinklerNotification); }, - ), - WrinklerFlash: new SettingStandard( - 'bool', - 'NotificationWrink', - ['Flash OFF', 'Flash ON'], - 'Flash screen when a Wrinkler appears', - true, - ), - WrinklerSound: new SettingStandard( - 'bool', - 'NotificationWrink', - ['Sound OFF', 'Sound ON'], - 'Play a sound when a Wrinkler appears', - true, - ), - WrinklerVolume: new SettingVolume( - 'vol', - 'NotificationWrink', - [], - 'Volume', - ), - WrinklerSoundURL: new SettingStandard( - 'url', - 'NotificationWrink', - 'Sound URL:', - 'URL of the sound to be played when a Wrinkler appears', - ), - WrinklerMaxNotification: new SettingStandard( - 'bool', - 'NotificationWrinkMax', - ['Notification OFF', 'Notification ON'], - 'Create a notification when the maximum amount of Wrinklers has appeared', - true, - function () { CheckNotificationPermissions(CMOptions.WrinklerMaxNotification); }, - ), - WrinklerMaxFlash: new SettingStandard( - 'bool', - 'NotificationWrinkMax', - ['Flash OFF', 'Flash ON'], - 'Flash screen when the maximum amount of Wrinklers has appeared', - true, - ), - WrinklerMaxSound: new SettingStandard( - 'bool', - 'NotificationWrinkMax', - ['Sound OFF', 'Sound ON'], - 'Play a sound when the maximum amount of Wrinklers has appeared', - true, - ), - WrinklerMaxVolume: new SettingVolume( - 'vol', - 'NotificationWrinkMax', - [], - 'Volume', - ), - WrinklerMaxSoundURL: new SettingStandard( - 'url', - 'NotificationWrinkMax', - 'Sound URL:', - 'URL of the sound to be played when the maximum amount of Wrinklers has appeared', - ), + FortuneSoundURL: new SettingStandard( + 'url', + 'NotificationFC', + 'Sound URL:', + 'URL of the sound to be played when the Ticker has a Fortune Cookie', + ), + SeaNotification: new SettingStandard( + 'bool', + 'NotificationSea', + ['Notification OFF', 'Notification ON'], + 'Create a notification on Season Popup', + true, + function () { + CheckNotificationPermissions(CMOptions.SeaNotification); + }, + ), + SeaFlash: new SettingStandard( + 'bool', + 'NotificationSea', + ['Flash OFF', 'Flash ON'], + 'Flash screen on Season Popup', + true, + ), + SeaSound: new SettingStandard( + 'bool', + 'NotificationSea', + ['Sound OFF', 'Sound ON'], + 'Play a sound on Season Popup', + true, + ), + SeaVolume: new SettingVolume('vol', 'NotificationSea', [], 'Volume'), + SeaSoundURL: new SettingStandard( + 'url', + 'NotificationSea', + 'Sound URL:', + 'URL of the sound to be played when a Season Special spawns', + ), + GardFlash: new SettingStandard( + 'bool', + 'NotificationGard', + ['Garden Tick Flash OFF', 'Flash ON'], + 'Flash screen on Garden Tick', + true, + ), + GardSound: new SettingStandard( + 'bool', + 'NotificationGard', + ['Sound OFF', 'Sound ON'], + 'Play a sound on Garden Tick', + true, + ), + GardVolume: new SettingVolume('vol', 'NotificationGard', [], 'Volume'), + GardSoundURL: new SettingStandard( + 'url', + 'NotificationGard', + 'Garden Tick Sound URL:', + 'URL of the sound to be played when the garden ticks', + ), + MagicNotification: new SettingStandard( + 'bool', + 'NotificationMagi', + ['Notification OFF', 'Notification ON'], + 'Create a notification when magic reaches maximum', + true, + function () { + CheckNotificationPermissions(CMOptions.MagicNotification); + }, + ), + MagicFlash: new SettingStandard( + 'bool', + 'NotificationMagi', + ['Flash OFF', 'Flash ON'], + 'Flash screen when magic reaches maximum', + true, + ), + MagicSound: new SettingStandard( + 'bool', + 'NotificationMagi', + ['Sound OFF', 'Sound ON'], + 'Play a sound when magic reaches maximum', + true, + ), + MagicVolume: new SettingVolume('vol', 'NotificationMagi', [], 'Volume'), + MagicSoundURL: new SettingStandard( + 'url', + 'NotificationMagi', + 'Sound URL:', + 'URL of the sound to be played when magic reaches maxium', + ), + WrinklerNotification: new SettingStandard( + 'bool', + 'NotificationWrink', + ['Notification OFF', 'Notification ON'], + 'Create a notification when a Wrinkler appears', + true, + function () { + CheckNotificationPermissions(CMOptions.WrinklerNotification); + }, + ), + WrinklerFlash: new SettingStandard( + 'bool', + 'NotificationWrink', + ['Flash OFF', 'Flash ON'], + 'Flash screen when a Wrinkler appears', + true, + ), + WrinklerSound: new SettingStandard( + 'bool', + 'NotificationWrink', + ['Sound OFF', 'Sound ON'], + 'Play a sound when a Wrinkler appears', + true, + ), + WrinklerVolume: new SettingVolume('vol', 'NotificationWrink', [], 'Volume'), + WrinklerSoundURL: new SettingStandard( + 'url', + 'NotificationWrink', + 'Sound URL:', + 'URL of the sound to be played when a Wrinkler appears', + ), + WrinklerMaxNotification: new SettingStandard( + 'bool', + 'NotificationWrinkMax', + ['Notification OFF', 'Notification ON'], + 'Create a notification when the maximum amount of Wrinklers has appeared', + true, + function () { + CheckNotificationPermissions(CMOptions.WrinklerMaxNotification); + }, + ), + WrinklerMaxFlash: new SettingStandard( + 'bool', + 'NotificationWrinkMax', + ['Flash OFF', 'Flash ON'], + 'Flash screen when the maximum amount of Wrinklers has appeared', + true, + ), + WrinklerMaxSound: new SettingStandard( + 'bool', + 'NotificationWrinkMax', + ['Sound OFF', 'Sound ON'], + 'Play a sound when the maximum amount of Wrinklers has appeared', + true, + ), + WrinklerMaxVolume: new SettingVolume( + 'vol', + 'NotificationWrinkMax', + [], + 'Volume', + ), + WrinklerMaxSoundURL: new SettingStandard( + 'url', + 'NotificationWrinkMax', + 'Sound URL:', + 'URL of the sound to be played when the maximum amount of Wrinklers has appeared', + ), - // Tooltip - TooltipBuildUpgrade: new SettingStandard( - 'bool', - 'Tooltip', - ['Building/Upgrade Tooltip Information OFF', 'Building/Upgrade Tooltip Information ON'], - 'Extra information in Building/Upgrade tooltips', - true, - ), - TooltipAmor: new SettingStandard( - 'bool', - 'Tooltip', - ['Buildings Tooltip Amortization Information OFF', 'Buildings Tooltip Amortization Information ON'], - 'Add amortization information to buildings tooltip', - true, - ), - ToolWarnLucky: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Lucky Warning OFF', 'Tooltip Lucky Warning ON'], - 'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards', - true, - ), - ToolWarnLuckyFrenzy: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Lucky Frenzy Warning OFF', 'Tooltip Lucky Frenzy Warning ON'], - 'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards', - true, - ), - ToolWarnConjure: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Conjure Warning OFF', 'Tooltip Conjure Warning ON'], - 'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards', - true, - ), - ToolWarnConjureFrenzy: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Conjure Frenzy Warning OFF', 'Tooltip Conjure Frenzy Warning ON'], - 'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active', - true, - ), - ToolWarnEdifice: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Edifice Warning OFF', 'Tooltip Edifice Warning ON'], - 'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building', - true, - ), - ToolWarnUser: new SettingInputNumber( - 'numscale', - 'Tooltip', - 'Tooltip Warning At x times CPS: ', - 'Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether', - 0, - Infinity, - ), - ToolWarnPos: new SettingStandard( - 'bool', - 'Tooltip', - ['Tooltip Warning Position (Left)', 'Tooltip Warning Position (Bottom)'], - 'Placement of the warning boxes', - false, - function () { ToggleToolWarnPos(); }, - ), - TooltipGrim: new SettingStandard( - 'bool', - 'Tooltip', - ['Grimoire Tooltip Information OFF', 'Grimoire Tooltip Information ON'], - 'Extra information in tooltip for grimoire', - true, - ), - TooltipWrink: new SettingStandard( - 'bool', - 'Tooltip', - ['Wrinkler Tooltip OFF', 'Wrinkler Tooltip ON'], - 'Shows the amount of cookies a wrinkler will give when popping it', - true, - ), - TooltipLump: new SettingStandard( - 'bool', - 'Tooltip', - ['Sugar Lump Tooltip OFF', 'Sugar Lump Tooltip ON'], - 'Shows the current Sugar Lump type in Sugar lump tooltip.', - true, - ), - TooltipPlots: new SettingStandard( - 'bool', - 'Tooltip', - ['Garden Plots Tooltip OFF', 'Garden Plots Tooltip ON'], - 'Shows a tooltip for plants that have a cookie reward.', - true, - ), - DragonAuraInfo: new SettingStandard( - 'bool', - 'Tooltip', - ['Extra Dragon Aura Info OFF', 'Extra Dragon Aura Info ON'], - 'Shows information about changes in CPS and costs in the dragon aura interface.', - true, - ), - TooltipAscendButton: new SettingStandard( - 'bool', - 'Tooltip', - ['Show Extra Info Ascend Tooltip OFF', 'Show Extra Info Ascend Tooltip ON'], - 'Shows additional info in the ascend tooltip', - true, - ), + // Tooltip + TooltipBuildUpgrade: new SettingStandard( + 'bool', + 'Tooltip', + [ + 'Building/Upgrade Tooltip Information OFF', + 'Building/Upgrade Tooltip Information ON', + ], + 'Extra information in Building/Upgrade tooltips', + true, + ), + TooltipAmor: new SettingStandard( + 'bool', + 'Tooltip', + [ + 'Buildings Tooltip Amortization Information OFF', + 'Buildings Tooltip Amortization Information ON', + ], + 'Add amortization information to buildings tooltip', + true, + ), + ToolWarnLucky: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Lucky Warning OFF', 'Tooltip Lucky Warning ON'], + 'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards', + true, + ), + ToolWarnLuckyFrenzy: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Lucky Frenzy Warning OFF', 'Tooltip Lucky Frenzy Warning ON'], + 'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards', + true, + ), + ToolWarnConjure: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Conjure Warning OFF', 'Tooltip Conjure Warning ON'], + 'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards', + true, + ), + ToolWarnConjureFrenzy: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Conjure Frenzy Warning OFF', 'Tooltip Conjure Frenzy Warning ON'], + 'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active', + true, + ), + ToolWarnEdifice: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Edifice Warning OFF', 'Tooltip Edifice Warning ON'], + 'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building', + true, + ), + ToolWarnUser: new SettingInputNumber( + 'numscale', + 'Tooltip', + 'Tooltip Warning At x times CPS: ', + 'Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether', + 0, + Infinity, + ), + ToolWarnPos: new SettingStandard( + 'bool', + 'Tooltip', + ['Tooltip Warning Position (Left)', 'Tooltip Warning Position (Bottom)'], + 'Placement of the warning boxes', + false, + function () { + ToggleToolWarnPos(); + }, + ), + TooltipGrim: new SettingStandard( + 'bool', + 'Tooltip', + ['Grimoire Tooltip Information OFF', 'Grimoire Tooltip Information ON'], + 'Extra information in tooltip for grimoire', + true, + ), + TooltipWrink: new SettingStandard( + 'bool', + 'Tooltip', + ['Wrinkler Tooltip OFF', 'Wrinkler Tooltip ON'], + 'Shows the amount of cookies a wrinkler will give when popping it', + true, + ), + TooltipLump: new SettingStandard( + 'bool', + 'Tooltip', + ['Sugar Lump Tooltip OFF', 'Sugar Lump Tooltip ON'], + 'Shows the current Sugar Lump type in Sugar lump tooltip.', + true, + ), + TooltipPlots: new SettingStandard( + 'bool', + 'Tooltip', + ['Garden Plots Tooltip OFF', 'Garden Plots Tooltip ON'], + 'Shows a tooltip for plants that have a cookie reward.', + true, + ), + DragonAuraInfo: new SettingStandard( + 'bool', + 'Tooltip', + ['Extra Dragon Aura Info OFF', 'Extra Dragon Aura Info ON'], + 'Shows information about changes in CPS and costs in the dragon aura interface.', + true, + ), + TooltipAscendButton: new SettingStandard( + 'bool', + 'Tooltip', + ['Show Extra Info Ascend Tooltip OFF', 'Show Extra Info Ascend Tooltip ON'], + 'Shows additional info in the ascend tooltip', + true, + ), - // Statistics - Stats: new SettingStandard( - 'bool', - 'Statistics', - ['Statistics OFF', 'Statistics ON'], - 'Extra Cookie Monster statistics!', - true, - ), - MissingUpgrades: new SettingStandard( - 'bool', - 'Statistics', - ['Missing Upgrades OFF', 'Missing Upgrades ON'], - 'Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.', - true, - ), - UpStats: new SettingStandard( - 'bool', - 'Statistics', - ['Statistics Update Rate (Default)', 'Statistics Update Rate (1s)'], - 'Default Game rate is once every 5 seconds', - false, - ), - TimeFormat: new SettingStandard( - 'bool', - 'Statistics', - ['Time XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], - 'Change the time format', - false, - ), - DetailedTime: new SettingStandard( - 'bool', - 'Statistics', - ['Detailed Time OFF', 'Detailed Time ON'], - 'Change how time is displayed in certain statistics and tooltips', - true, - function () { ToggleDetailedTime(); }, - ), - GrimoireBar: new SettingStandard( - 'bool', - 'Statistics', - ['Grimoire Magic Meter Timer OFF', 'Grimoire Magic Meter Timer ON'], - 'A timer on how long before the Grimoire magic meter is full', - true, - ), - HeavenlyChipsTarget: new SettingInputNumber( - 'numscale', - 'Statistics', - 'Heavenly Chips Target: ', - 'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections', - 1, - Infinity, - ), - ShowMissedGC: new SettingStandard( - 'bool', - 'Statistics', - ['Missed GC OFF', 'Missed GC ON'], - 'Show a stat in the statistics screen that counts how many Golden Cookies you have missed', - true, - ), + // Statistics + Stats: new SettingStandard( + 'bool', + 'Statistics', + ['Statistics OFF', 'Statistics ON'], + 'Extra Cookie Monster statistics!', + true, + ), + MissingUpgrades: new SettingStandard( + 'bool', + 'Statistics', + ['Missing Upgrades OFF', 'Missing Upgrades ON'], + 'Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.', + true, + ), + UpStats: new SettingStandard( + 'bool', + 'Statistics', + ['Statistics Update Rate (Default)', 'Statistics Update Rate (1s)'], + 'Default Game rate is once every 5 seconds', + false, + ), + TimeFormat: new SettingStandard( + 'bool', + 'Statistics', + ['Time XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], + 'Change the time format', + false, + ), + DetailedTime: new SettingStandard( + 'bool', + 'Statistics', + ['Detailed Time OFF', 'Detailed Time ON'], + 'Change how time is displayed in certain statistics and tooltips', + true, + function () { + ToggleDetailedTime(); + }, + ), + GrimoireBar: new SettingStandard( + 'bool', + 'Statistics', + ['Grimoire Magic Meter Timer OFF', 'Grimoire Magic Meter Timer ON'], + 'A timer on how long before the Grimoire magic meter is full', + true, + ), + HeavenlyChipsTarget: new SettingInputNumber( + 'numscale', + 'Statistics', + 'Heavenly Chips Target: ', + 'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections', + 1, + Infinity, + ), + ShowMissedGC: new SettingStandard( + 'bool', + 'Statistics', + ['Missed GC OFF', 'Missed GC ON'], + 'Show a stat in the statistics screen that counts how many Golden Cookies you have missed', + true, + ), - // Notation - Scale: new SettingStandard( - 'bool', - 'Notation', - ['Game\'s Setting Scale', 'Metric', 'Short Scale', 'Short Scale (Abbreviated)', 'Scientific Notation', 'Engineering Notation'], - 'Change how long numbers are handled', - false, - function () { RefreshScale(); }, - ), - ScaleDecimals: new SettingStandard( - 'bool', - 'Notation', - ['1 decimals', '2 decimals', '3 decimals'], - 'Set the number of decimals used when applicable', - false, - function () { RefreshScale(); }, - ), - ScaleSeparator: new SettingStandard( - 'bool', - 'Notation', - ['. for decimals (Standard)', '. for thousands'], - 'Set the separator used for decimals and thousands', - false, - function () { RefreshScale(); }, - ), - ScaleCutoff: new SettingInputNumber( - 'numscale', - 'Notation', - 'Notation Cut-off Point: ', - 'The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations', - 1, - 999999999, - ), + // Notation + Scale: new SettingStandard( + 'bool', + 'Notation', + [ + "Game's Setting Scale", + 'Metric', + 'Short Scale', + 'Short Scale (Abbreviated)', + 'Scientific Notation', + 'Engineering Notation', + ], + 'Change how long numbers are handled', + false, + function () { + RefreshScale(); + }, + ), + ScaleDecimals: new SettingStandard( + 'bool', + 'Notation', + ['1 decimals', '2 decimals', '3 decimals'], + 'Set the number of decimals used when applicable', + false, + function () { + RefreshScale(); + }, + ), + ScaleSeparator: new SettingStandard( + 'bool', + 'Notation', + ['. for decimals (Standard)', '. for thousands'], + 'Set the separator used for decimals and thousands', + false, + function () { + RefreshScale(); + }, + ), + ScaleCutoff: new SettingInputNumber( + 'numscale', + 'Notation', + 'Notation Cut-off Point: ', + 'The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations', + 1, + 999999999, + ), - // Miscellaneous - GCTimer: new SettingStandard( - 'bool', - 'Miscellaneous', - ['Golden Cookie Timer OFF', 'Golden Cookie Timer ON'], - 'A timer on the Golden Cookie when it has been spawned', - true, - function () { ToggleGCTimer(); }, - ), - Favicon: new SettingStandard( - 'bool', - 'Miscellaneous', - ['Favicon OFF', 'Favicon ON'], - 'Update favicon with Golden/Wrath Cookie', - true, - function () { UpdateFavicon(); }, - ), - WrinklerButtons: new SettingStandard( - 'bool', - 'Miscellaneous', - ['Extra Buttons OFF', 'Extra Buttons ON'], - 'Show buttons for popping wrinklers at bottom of cookie section', - true, - function () { ToggleWrinklerButtons(); }, - ), - BulkBuyBlock: new SettingStandard( - 'bool', - 'Miscellaneous', - ['Block Bulk Buying OFF', 'Block Bulk Buying ON'], - "Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.", - true, - ), + // Miscellaneous + GCTimer: new SettingStandard( + 'bool', + 'Miscellaneous', + ['Golden Cookie Timer OFF', 'Golden Cookie Timer ON'], + 'A timer on the Golden Cookie when it has been spawned', + true, + function () { + ToggleGCTimer(); + }, + ), + Favicon: new SettingStandard( + 'bool', + 'Miscellaneous', + ['Favicon OFF', 'Favicon ON'], + 'Update favicon with Golden/Wrath Cookie', + true, + function () { + UpdateFavicon(); + }, + ), + WrinklerButtons: new SettingStandard( + 'bool', + 'Miscellaneous', + ['Extra Buttons OFF', 'Extra Buttons ON'], + 'Show buttons for popping wrinklers at bottom of cookie section', + true, + function () { + ToggleWrinklerButtons(); + }, + ), + BulkBuyBlock: new SettingStandard( + 'bool', + 'Miscellaneous', + ['Block Bulk Buying OFF', 'Block Bulk Buying ON'], + "Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.", + true, + ), }; export default Config; diff --git a/src/Data/SettingsDefault.js b/src/Data/SettingsDefault.js index de84c312..65da2d4c 100644 --- a/src/Data/SettingsDefault.js +++ b/src/Data/SettingsDefault.js @@ -1,97 +1,133 @@ /** This array describes all default settings */ const ConfigDefault = { - BotBar: 1, - TimerBar: 1, - TimerBarPos: 0, - TimerBarOverlay: 2, - BuildColor: 1, - BulkBuildColor: 0, - UpBarColor: 1, - UpgradeBarFixedPos: 1, - CalcWrink: 0, - CPSMode: 1, - AvgCPSHist: 3, - AvgClicksHist: 0, - ColorPPBulkMode: 1, - PPExcludeTop: 0, - PPSecondsLowerLimit: 0, - PPOnlyConsiderBuyable: 0, - ToolWarnBon: 0, - Title: 1, - GeneralSound: 1, - GCNotification: 0, - GCFlash: 1, - GCSound: 1, - GCVolume: 100, - GCSoundURL: 'https://freesound.org/data/previews/66/66717_931655-lq.mp3', - FortuneNotification: 0, - FortuneFlash: 1, - FortuneSound: 1, - FortuneVolume: 100, - FortuneSoundURL: 'https://freesound.org/data/previews/174/174027_3242494-lq.mp3', - SeaNotification: 0, - SeaFlash: 1, - SeaSound: 1, - SeaVolume: 100, - SeaSoundURL: 'https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', - GardFlash: 1, - GardSound: 1, - GardVolume: 100, - GardSoundURL: 'https://freesound.org/data/previews/103/103046_861714-lq.mp3', - MagicNotification: 0, - MagicFlash: 1, - MagicSound: 1, - MagicVolume: 100, - MagicSoundURL: 'https://freesound.org/data/previews/221/221683_1015240-lq.mp3', - WrinklerNotification: 0, - WrinklerFlash: 1, - WrinklerSound: 1, - WrinklerVolume: 100, - WrinklerSoundURL: 'https://freesound.org/data/previews/124/124186_8043-lq.mp3', - WrinklerMaxNotification: 0, - WrinklerMaxFlash: 1, - WrinklerMaxSound: 1, - WrinklerMaxVolume: 100, - WrinklerMaxSoundURL: 'https://freesound.org/data/previews/152/152743_15663-lq.mp3', - TooltipBuildUpgrade: 1, - TooltipAmor: 0, - ToolWarnLucky: 1, - ToolWarnLuckyFrenzy: 1, - ToolWarnConjure: 1, - ToolWarnConjureFrenzy: 1, - ToolWarnEdifice: 1, - ToolWarnUser: 0, - ToolWarnPos: 1, - TooltipGrim: 1, - TooltipWrink: 1, - TooltipLump: 1, - TooltipPlots: 1, - DragonAuraInfo: 1, - TooltipAscendButton: 1, - Stats: 1, - MissingUpgrades: 1, - UpStats: 1, - TimeFormat: 0, - DetailedTime: 1, - GrimoireBar: 1, - HeavenlyChipsTarget: 1, - ShowMissedGC: 1, - Scale: 2, - ScaleDecimals: 2, - ScaleSeparator: 0, - ScaleCutoff: 999999, - Colors: { - Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513', - }, - SortBuildings: 0, - SortUpgrades: 0, - GCTimer: 1, - Favicon: 1, - WrinklerButtons: 1, - BulkBuyBlock: 0, - Header: { - BarsColors: 1, Calculation: 1, Notification: 1, NotificationGeneral: 1, NotificationGC: 1, NotificationFC: 1, NotificationSea: 1, NotificationGard: 1, NotificationMagi: 1, NotificationWrink: 1, NotificationWrinkMax: 1, Tooltip: 1, Statistics: 1, Notation: 1, Miscellaneous: 1, Lucky: 1, Chain: 1, Spells: 1, Garden: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1, InfoTab: 1, - }, + BotBar: 1, + TimerBar: 1, + TimerBarPos: 0, + TimerBarOverlay: 2, + BuildColor: 1, + BulkBuildColor: 0, + UpBarColor: 1, + UpgradeBarFixedPos: 1, + CalcWrink: 0, + CPSMode: 1, + AvgCPSHist: 3, + AvgClicksHist: 0, + ColorPPBulkMode: 1, + PPExcludeTop: 0, + PPSecondsLowerLimit: 0, + PPOnlyConsiderBuyable: 0, + ToolWarnBon: 0, + Title: 1, + GeneralSound: 1, + GCNotification: 0, + GCFlash: 1, + GCSound: 1, + GCVolume: 100, + GCSoundURL: 'https://freesound.org/data/previews/66/66717_931655-lq.mp3', + FortuneNotification: 0, + FortuneFlash: 1, + FortuneSound: 1, + FortuneVolume: 100, + FortuneSoundURL: + 'https://freesound.org/data/previews/174/174027_3242494-lq.mp3', + SeaNotification: 0, + SeaFlash: 1, + SeaSound: 1, + SeaVolume: 100, + SeaSoundURL: + 'https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', + GardFlash: 1, + GardSound: 1, + GardVolume: 100, + GardSoundURL: 'https://freesound.org/data/previews/103/103046_861714-lq.mp3', + MagicNotification: 0, + MagicFlash: 1, + MagicSound: 1, + MagicVolume: 100, + MagicSoundURL: + 'https://freesound.org/data/previews/221/221683_1015240-lq.mp3', + WrinklerNotification: 0, + WrinklerFlash: 1, + WrinklerSound: 1, + WrinklerVolume: 100, + WrinklerSoundURL: + 'https://freesound.org/data/previews/124/124186_8043-lq.mp3', + WrinklerMaxNotification: 0, + WrinklerMaxFlash: 1, + WrinklerMaxSound: 1, + WrinklerMaxVolume: 100, + WrinklerMaxSoundURL: + 'https://freesound.org/data/previews/152/152743_15663-lq.mp3', + TooltipBuildUpgrade: 1, + TooltipAmor: 0, + ToolWarnLucky: 1, + ToolWarnLuckyFrenzy: 1, + ToolWarnConjure: 1, + ToolWarnConjureFrenzy: 1, + ToolWarnEdifice: 1, + ToolWarnUser: 0, + ToolWarnPos: 1, + TooltipGrim: 1, + TooltipWrink: 1, + TooltipLump: 1, + TooltipPlots: 1, + DragonAuraInfo: 1, + TooltipAscendButton: 1, + Stats: 1, + MissingUpgrades: 1, + UpStats: 1, + TimeFormat: 0, + DetailedTime: 1, + GrimoireBar: 1, + HeavenlyChipsTarget: 1, + ShowMissedGC: 1, + Scale: 2, + ScaleDecimals: 2, + ScaleSeparator: 0, + ScaleCutoff: 999999, + Colors: { + Blue: '#4bb8f0', + Green: '#00ff00', + Yellow: '#ffff00', + Orange: '#ff7f00', + Red: '#ff0000', + Purple: '#ff00ff', + Gray: '#b3b3b3', + Pink: '#ff1493', + Brown: '#8b4513', + }, + SortBuildings: 0, + SortUpgrades: 0, + GCTimer: 1, + Favicon: 1, + WrinklerButtons: 1, + BulkBuyBlock: 0, + Header: { + BarsColors: 1, + Calculation: 1, + Notification: 1, + NotificationGeneral: 1, + NotificationGC: 1, + NotificationFC: 1, + NotificationSea: 1, + NotificationGard: 1, + NotificationMagi: 1, + NotificationWrink: 1, + NotificationWrinkMax: 1, + Tooltip: 1, + Statistics: 1, + Notation: 1, + Miscellaneous: 1, + Lucky: 1, + Chain: 1, + Spells: 1, + Garden: 1, + Prestige: 1, + Wrink: 1, + Sea: 1, + Misc: 1, + InfoTab: 1, + }, }; export default ConfigDefault; diff --git a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js index 581a39f3..976f6792 100644 --- a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js +++ b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js @@ -4,7 +4,10 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { metric, shortScale, shortScaleAbbreviated } from '../../Data/Scales'; import { BackupFunctions } from '../../Main/VariablesAndData'; import { - ColorGreen, ColorOrange, ColorRed, ColorYellow, + ColorGreen, + ColorOrange, + ColorRed, + ColorYellow, } from '../VariablesAndData'; /** @@ -15,53 +18,70 @@ import { * @returns {string} Formatted number */ export function Beautify(num, floats, forced) { - const decimals = CMOptions.ScaleDecimals + 1; - if (num === Infinity) { - return 'Infinity'; - } if (typeof num === 'undefined') { - return '0'; - } if (CMOptions.Scale === 0) { - return BackupFunctions.Beautify(num, floats); - } if (Number.isFinite(num)) { - let answer = ''; - if (num === 0) { - return num.toString(); - } if (num > 0.001 && num < CMOptions.ScaleCutoff) { - if (CMOptions.ScaleSeparator) answer = num.toLocaleString('nl'); - else answer = num.toLocaleString('en'); - return answer; - } if (CMOptions.Scale === 4 && !forced || forced === 4) { // Scientific notation, 123456789 => 1.235E+8 - answer = num.toExponential(decimals).toString().replace('e', 'E'); - } else { - const exponential = num.toExponential().toString(); - const AmountOfTenPowerThree = Math.floor(exponential.slice(exponential.indexOf('e') + 1) / 3); - answer = (num / Number(`1e${AmountOfTenPowerThree * 3}`)).toFixed(decimals); - // answer is now "xxx.xx" (e.g., 123456789 would be 123.46) - if (CMOptions.Scale === 1 && !forced || forced === 1) { // Metric scale, 123456789 => 123.457 M - if (num >= 0.01 && num < Number(`1e${metric.length * 3}`)) { - answer += ` ${metric[AmountOfTenPowerThree]}`; - } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation - } else if (CMOptions.Scale === 2 && !forced || forced === 2) { // Short scale, 123456789 => 123.457 M - if (num >= 0.01 && num < Number(`1e${shortScale.length * 3}`)) { - answer += ` ${shortScale[AmountOfTenPowerThree]}`; - } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation - } else if (CMOptions.Scale === 3 && !forced || forced === 3) { // Short scale, 123456789 => 123.457 M - if (num >= 0.01 && num < Number(`1e${shortScaleAbbreviated.length * 3}`)) { - answer += ` ${shortScaleAbbreviated[AmountOfTenPowerThree]}`; - } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation - } else if (CMOptions.Scale === 5 && !forced || forced === 5) { // Engineering notation, 123456789 => 123.457E+6 - answer += `E${AmountOfTenPowerThree * 3}`; - } - } - if (answer === '') { - console.log(`Could not beautify number with CM.Disp.Beautify: ${num}`); - answer = BackupFunctions.Beautify(num, floats); - } - if (CMOptions.ScaleSeparator) answer = answer.replace('.', ','); - return answer; - } - console.log(`Could not beautify number with CM.Disp.Beautify: ${num}`); - return BackupFunctions.Beautify(num, floats); + const decimals = CMOptions.ScaleDecimals + 1; + if (num === Infinity) { + return 'Infinity'; + } + if (typeof num === 'undefined') { + return '0'; + } + if (CMOptions.Scale === 0) { + return BackupFunctions.Beautify(num, floats); + } + if (Number.isFinite(num)) { + let answer = ''; + if (num === 0) { + return num.toString(); + } + if (num > 0.001 && num < CMOptions.ScaleCutoff) { + if (CMOptions.ScaleSeparator) answer = num.toLocaleString('nl'); + else answer = num.toLocaleString('en'); + return answer; + } + if ((CMOptions.Scale === 4 && !forced) || forced === 4) { + // Scientific notation, 123456789 => 1.235E+8 + answer = num.toExponential(decimals).toString().replace('e', 'E'); + } else { + const exponential = num.toExponential().toString(); + const AmountOfTenPowerThree = Math.floor( + exponential.slice(exponential.indexOf('e') + 1) / 3, + ); + answer = (num / Number(`1e${AmountOfTenPowerThree * 3}`)).toFixed( + decimals, + ); + // answer is now "xxx.xx" (e.g., 123456789 would be 123.46) + if ((CMOptions.Scale === 1 && !forced) || forced === 1) { + // Metric scale, 123456789 => 123.457 M + if (num >= 0.01 && num < Number(`1e${metric.length * 3}`)) { + answer += ` ${metric[AmountOfTenPowerThree]}`; + } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation + } else if ((CMOptions.Scale === 2 && !forced) || forced === 2) { + // Short scale, 123456789 => 123.457 M + if (num >= 0.01 && num < Number(`1e${shortScale.length * 3}`)) { + answer += ` ${shortScale[AmountOfTenPowerThree]}`; + } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation + } else if ((CMOptions.Scale === 3 && !forced) || forced === 3) { + // Short scale, 123456789 => 123.457 M + if ( + num >= 0.01 && + num < Number(`1e${shortScaleAbbreviated.length * 3}`) + ) { + answer += ` ${shortScaleAbbreviated[AmountOfTenPowerThree]}`; + } else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation + } else if ((CMOptions.Scale === 5 && !forced) || forced === 5) { + // Engineering notation, 123456789 => 123.457E+6 + answer += `E${AmountOfTenPowerThree * 3}`; + } + } + if (answer === '') { + console.log(`Could not beautify number with CM.Disp.Beautify: ${num}`); + answer = BackupFunctions.Beautify(num, floats); + } + if (CMOptions.ScaleSeparator) answer = answer.replace('.', ','); + return answer; + } + console.log(`Could not beautify number with CM.Disp.Beautify: ${num}`); + return BackupFunctions.Beautify(num, floats); } /** @@ -71,30 +91,36 @@ export function Beautify(num, floats, forced) { * @returns {string} Formatted time */ export function FormatTime(time, longFormat) { - if (time === Infinity) return time; - time = Math.ceil(time); - const y = Math.floor(time / 31557600); - const d = Math.floor(time % 31557600 / 86400); - const h = Math.floor(time % 86400 / 3600); - const m = Math.floor(time % 3600 / 60); - const s = Math.floor(time % 60); - let str = ''; - if (CMOptions.TimeFormat) { - if (time > 3155760000) return 'XX:XX:XX:XX:XX'; - str += `${(y < 10 ? '0' : '') + y}:`; - str += `${(d < 10 ? '0' : '') + d}:`; - str += `${(h < 10 ? '0' : '') + h}:`; - str += `${(m < 10 ? '0' : '') + m}:`; - str += (s < 10 ? '0' : '') + s; - } else { - if (time > 777600000) return longFormat ? 'Over 9000 days!' : '>9000d'; - str += (y > 0 ? `${y + (longFormat ? (y === 1 ? ' year' : ' years') : 'y')}, ` : ''); - str += (d > 0 ? `${d + (longFormat ? (d === 1 ? ' day' : ' days') : 'd')}, ` : ''); - if (str.length > 0 || h > 0) str += `${h + (longFormat ? (h === 1 ? ' hour' : ' hours') : 'h')}, `; - if (str.length > 0 || m > 0) str += `${m + (longFormat ? (m === 1 ? ' minute' : ' minutes') : 'm')}, `; - str += s + (longFormat ? (s === 1 ? ' second' : ' seconds') : 's'); - } - return str; + if (time === Infinity) return time; + time = Math.ceil(time); + const y = Math.floor(time / 31557600); + const d = Math.floor((time % 31557600) / 86400); + const h = Math.floor((time % 86400) / 3600); + const m = Math.floor((time % 3600) / 60); + const s = Math.floor(time % 60); + let str = ''; + if (CMOptions.TimeFormat) { + if (time > 3155760000) return 'XX:XX:XX:XX:XX'; + str += `${(y < 10 ? '0' : '') + y}:`; + str += `${(d < 10 ? '0' : '') + d}:`; + str += `${(h < 10 ? '0' : '') + h}:`; + str += `${(m < 10 ? '0' : '') + m}:`; + str += (s < 10 ? '0' : '') + s; + } else { + if (time > 777600000) return longFormat ? 'Over 9000 days!' : '>9000d'; + str += + y > 0 + ? `${y + (longFormat ? (y === 1 ? ' year' : ' years') : 'y')}, ` + : ''; + str += + d > 0 ? `${d + (longFormat ? (d === 1 ? ' day' : ' days') : 'd')}, ` : ''; + if (str.length > 0 || h > 0) + str += `${h + (longFormat ? (h === 1 ? ' hour' : ' hours') : 'h')}, `; + if (str.length > 0 || m > 0) + str += `${m + (longFormat ? (m === 1 ? ' minute' : ' minutes') : 'm')}, `; + str += s + (longFormat ? (s === 1 ? ' second' : ' seconds') : 's'); + } + return str; } /** @@ -103,17 +129,17 @@ export function FormatTime(time, longFormat) { * @returns {{string, string}} {text, color} Both the formatted time and color as strings in an array */ export function GetTimeColor(time) { - let color; - let text; - if (time <= 0) { - if (CMOptions.TimeFormat) text = '00:00:00:00:00'; - else text = 'Done!'; - color = ColorGreen; - } else { - text = FormatTime(time); - if (time > 300) color = ColorRed; - else if (time > 60) color = ColorOrange; - else color = ColorYellow; - } - return { text, color }; + let color; + let text; + if (time <= 0) { + if (CMOptions.TimeFormat) text = '00:00:00:00:00'; + else text = 'Done!'; + color = ColorGreen; + } else { + text = FormatTime(time); + if (time > 300) color = ColorRed; + else if (time > 60) color = ColorOrange; + else color = ColorYellow; + } + return { text, color }; } diff --git a/src/Disp/BuildingsUpgrades/Buildings.js b/src/Disp/BuildingsUpgrades/Buildings.js index f2b9cca5..2fef533f 100644 --- a/src/Disp/BuildingsUpgrades/Buildings.js +++ b/src/Disp/BuildingsUpgrades/Buildings.js @@ -1,4 +1,8 @@ -import { CacheObjects1, CacheObjects10, CacheObjects100 } from '../../Cache/VariablesAndData'; +import { + CacheObjects1, + CacheObjects10, + CacheObjects100, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import BuildingSell from '../../Sim/SimulationEvents/SellBuilding'; import { Beautify } from '../BeautifyAndFormatting/BeautifyFormatting'; @@ -14,68 +18,79 @@ import { Colors, LastTargetBuildings } from '../VariablesAndData'; * And by changes in CM.Options.BuildColor, CM.Options.SortBuild & CM.Data.Config.BulkBuildColor */ export default function UpdateBuildings() { - let target = Game.buyBulk; - if (Game.buyMode === 1) { - LastTargetBuildings = target; - } else { - target = LastTargetBuildings; - } - if (target === 1) target = CacheObjects1; - else if (target === 10) target = CacheObjects10; - else if (target === 100) target = CacheObjects100; + let target = Game.buyBulk; + if (Game.buyMode === 1) { + LastTargetBuildings = target; + } else { + target = LastTargetBuildings; + } + if (target === 1) target = CacheObjects1; + else if (target === 10) target = CacheObjects10; + else if (target === 100) target = CacheObjects100; - if (Game.buyMode === 1) { - if (CMOptions.BuildColor === 1) { - for (const i of Object.keys(target)) { - l(`productPrice${Game.Objects[i].id}`).style.color = CMOptions.Colors[target[i].color]; - } - } else { - for (const i of Object.keys(Game.Objects)) { - l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color'); - } - } - } else if (Game.buyMode === -1) { - for (const i of Object.keys(CacheObjects1)) { - const o = Game.Objects[i]; - l(`productPrice${o.id}`).style.color = ''; - /* - * Fix sell price displayed in the object in the store. - * - * The buildings sell price displayed by the game itself (without any mod) is incorrect. - * The following line of code fixes this issue, and can be safely removed when the game gets fixed. - * - * This issue is extensively detailed here: https://github.com/Aktanusa/CookieMonster/issues/359#issuecomment-735658262 - */ - l(`productPrice${o.id}`).innerHTML = Beautify(BuildingSell(o, o.basePrice, o.amount, o.free, Game.buyBulk, 1)); - } - } + if (Game.buyMode === 1) { + if (CMOptions.BuildColor === 1) { + for (const i of Object.keys(target)) { + l(`productPrice${Game.Objects[i].id}`).style.color = + CMOptions.Colors[target[i].color]; + } + } else { + for (const i of Object.keys(Game.Objects)) { + l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color'); + } + } + } else if (Game.buyMode === -1) { + for (const i of Object.keys(CacheObjects1)) { + const o = Game.Objects[i]; + l(`productPrice${o.id}`).style.color = ''; + /* + * Fix sell price displayed in the object in the store. + * + * The buildings sell price displayed by the game itself (without any mod) is incorrect. + * The following line of code fixes this issue, and can be safely removed when the game gets fixed. + * + * This issue is extensively detailed here: https://github.com/Aktanusa/CookieMonster/issues/359#issuecomment-735658262 + */ + l(`productPrice${o.id}`).innerHTML = Beautify( + BuildingSell(o, o.basePrice, o.amount, o.free, Game.buyBulk, 1), + ); + } + } - // Build array of pointers, sort by pp, use array index (+2) as the grid row number - // (grid rows are 1-based indexing, and row 1 is the bulk buy/sell options) - // This regulates sorting of buildings - if (Game.buyMode === 1 && CMOptions.SortBuildings) { - const arr = Object.keys(target).map((k) => { - const o = target[k]; - o.name = k; - o.id = Game.Objects[k].id; - return o; - }); + // Build array of pointers, sort by pp, use array index (+2) as the grid row number + // (grid rows are 1-based indexing, and row 1 is the bulk buy/sell options) + // This regulates sorting of buildings + if (Game.buyMode === 1 && CMOptions.SortBuildings) { + const arr = Object.keys(target).map((k) => { + const o = target[k]; + o.name = k; + o.id = Game.Objects[k].id; + return o; + }); - arr.sort(function (a, b) { return (Colors.indexOf(a.color) > Colors.indexOf(b.color) ? 1 : (Colors.indexOf(a.color) < Colors.indexOf(b.color) ? -1 : (a.pp < b.pp) ? -1 : 0)); }); + arr.sort(function (a, b) { + return Colors.indexOf(a.color) > Colors.indexOf(b.color) + ? 1 + : Colors.indexOf(a.color) < Colors.indexOf(b.color) + ? -1 + : a.pp < b.pp + ? -1 + : 0; + }); - for (let x = 0; x < arr.length; x++) { - Game.Objects[arr[x].name].l.style.gridRow = `${x + 2}/${x + 2}`; - } - } else { - const arr = Object.keys(CacheObjects1).map((k) => { - const o = CacheObjects1[k]; - o.name = k; - o.id = Game.Objects[k].id; - return o; - }); - arr.sort((a, b) => a.id - b.id); - for (let x = 0; x < arr.length; x++) { - Game.Objects[arr[x].name].l.style.gridRow = `${x + 2}/${x + 2}`; - } - } + for (let x = 0; x < arr.length; x++) { + Game.Objects[arr[x].name].l.style.gridRow = `${x + 2}/${x + 2}`; + } + } else { + const arr = Object.keys(CacheObjects1).map((k) => { + const o = CacheObjects1[k]; + o.name = k; + o.id = Game.Objects[k].id; + return o; + }); + arr.sort((a, b) => a.id - b.id); + for (let x = 0; x < arr.length; x++) { + Game.Objects[arr[x].name].l.style.gridRow = `${x + 2}/${x + 2}`; + } + } } diff --git a/src/Disp/BuildingsUpgrades/UpgradeBar.js b/src/Disp/BuildingsUpgrades/UpgradeBar.js index cf12c0e0..80e0eb3b 100644 --- a/src/Disp/BuildingsUpgrades/UpgradeBar.js +++ b/src/Disp/BuildingsUpgrades/UpgradeBar.js @@ -1,5 +1,13 @@ import { - ColorBackPre, ColorBlue, ColorGray, ColorGreen, ColorOrange, ColorPurple, ColorRed, ColorTextPre, ColorYellow, + ColorBackPre, + ColorBlue, + ColorGray, + ColorGreen, + ColorOrange, + ColorPurple, + ColorRed, + ColorTextPre, + ColorYellow, } from '../VariablesAndData'; /** @@ -7,73 +15,90 @@ import { * @returns {object} legend The legend-object to be added */ function CreateUpgradeBarLegend() { - const legend = document.createElement('div'); - legend.style.minWidth = '330px'; - legend.style.marginBottom = '4px'; - const title = document.createElement('div'); - title.className = 'name'; - title.style.marginBottom = '4px'; - title.textContent = 'Legend'; - legend.appendChild(title); + const legend = document.createElement('div'); + legend.style.minWidth = '330px'; + legend.style.marginBottom = '4px'; + const title = document.createElement('div'); + title.className = 'name'; + title.style.marginBottom = '4px'; + title.textContent = 'Legend'; + legend.appendChild(title); - const legendLine = function (color, text) { - const div = document.createElement('div'); - div.style.verticalAlign = 'middle'; - const span = document.createElement('span'); - span.className = ColorBackPre + color; - span.style.display = 'inline-block'; - span.style.height = '10px'; - span.style.width = '10px'; - span.style.marginRight = '4px'; - div.appendChild(span); - div.appendChild(document.createTextNode(text)); - return div; - }; + const legendLine = function (color, text) { + const div = document.createElement('div'); + div.style.verticalAlign = 'middle'; + const span = document.createElement('span'); + span.className = ColorBackPre + color; + span.style.display = 'inline-block'; + span.style.height = '10px'; + span.style.width = '10px'; + span.style.marginRight = '4px'; + div.appendChild(span); + div.appendChild(document.createTextNode(text)); + return div; + }; - legend.appendChild(legendLine(ColorBlue, 'Better than best PP building')); - legend.appendChild(legendLine(ColorGreen, 'Same as best PP building')); - legend.appendChild(legendLine(ColorYellow, 'Between best and worst PP buildings closer to best')); - legend.appendChild(legendLine(ColorOrange, 'Between best and worst PP buildings closer to worst')); - legend.appendChild(legendLine(ColorRed, 'Same as worst PP building')); - legend.appendChild(legendLine(ColorPurple, 'Worse than worst PP building')); - legend.appendChild(legendLine(ColorGray, 'Negative or infinity PP')); - return legend; + legend.appendChild(legendLine(ColorBlue, 'Better than best PP building')); + legend.appendChild(legendLine(ColorGreen, 'Same as best PP building')); + legend.appendChild( + legendLine( + ColorYellow, + 'Between best and worst PP buildings closer to best', + ), + ); + legend.appendChild( + legendLine( + ColorOrange, + 'Between best and worst PP buildings closer to worst', + ), + ); + legend.appendChild(legendLine(ColorRed, 'Same as worst PP building')); + legend.appendChild(legendLine(ColorPurple, 'Worse than worst PP building')); + legend.appendChild(legendLine(ColorGray, 'Negative or infinity PP')); + return legend; } /** * This function creates the upgrade bar above the upgrade-section in the right section of the screen */ export default function CreateUpgradeBar() { - const UpgradeBar = document.createElement('div'); - UpgradeBar.id = 'CMUpgradeBar'; - UpgradeBar.style.width = '100%'; - UpgradeBar.style.backgroundColor = 'black'; - UpgradeBar.style.textAlign = 'center'; - UpgradeBar.style.fontWeight = 'bold'; - UpgradeBar.style.display = 'none'; - UpgradeBar.style.zIndex = '21'; - UpgradeBar.onmouseout = function () { Game.tooltip.hide(); }; + const UpgradeBar = document.createElement('div'); + UpgradeBar.id = 'CMUpgradeBar'; + UpgradeBar.style.width = '100%'; + UpgradeBar.style.backgroundColor = 'black'; + UpgradeBar.style.textAlign = 'center'; + UpgradeBar.style.fontWeight = 'bold'; + UpgradeBar.style.display = 'none'; + UpgradeBar.style.zIndex = '21'; + UpgradeBar.onmouseout = function () { + Game.tooltip.hide(); + }; - const placeholder = document.createElement('div'); - placeholder.appendChild(CreateUpgradeBarLegend()); - UpgradeBar.onmouseover = function () { Game.tooltip.draw(this, escape(placeholder.innerHTML), 'store'); }; + const placeholder = document.createElement('div'); + placeholder.appendChild(CreateUpgradeBarLegend()); + UpgradeBar.onmouseover = function () { + Game.tooltip.draw(this, escape(placeholder.innerHTML), 'store'); + }; - const upgradeNumber = function (id, color) { - const span = document.createElement('span'); - span.id = id; - span.className = ColorTextPre + color; - span.style.width = '14.28571428571429%'; - span.style.display = 'inline-block'; - span.textContent = '0'; - return span; - }; - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarBlue', ColorBlue)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarGreen', ColorGreen)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarYellow', ColorYellow)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarOrange', ColorOrange)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarRed', ColorRed)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarPurple', ColorPurple)); - UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarGray', ColorGray)); + const upgradeNumber = function (id, color) { + const span = document.createElement('span'); + span.id = id; + span.className = ColorTextPre + color; + span.style.width = '14.28571428571429%'; + span.style.display = 'inline-block'; + span.textContent = '0'; + return span; + }; + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarBlue', ColorBlue)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarGreen', ColorGreen)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarYellow', ColorYellow)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarOrange', ColorOrange)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarRed', ColorRed)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarPurple', ColorPurple)); + UpgradeBar.appendChild(upgradeNumber('CMUpgradeBarGray', ColorGray)); - l('upgrades').parentNode.insertBefore(UpgradeBar, l('upgrades').parentNode.childNodes[3]); + l('upgrades').parentNode.insertBefore( + UpgradeBar, + l('upgrades').parentNode.childNodes[3], + ); } diff --git a/src/Disp/BuildingsUpgrades/Upgrades.js b/src/Disp/BuildingsUpgrades/Upgrades.js index 36b5191b..37792bb0 100644 --- a/src/Disp/BuildingsUpgrades/Upgrades.js +++ b/src/Disp/BuildingsUpgrades/Upgrades.js @@ -1,7 +1,15 @@ import { CacheUpgrades } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import { - ColorBackPre, ColorBlue, ColorGray, ColorGreen, ColorOrange, ColorPurple, ColorRed, Colors, ColorYellow, + ColorBackPre, + ColorBlue, + ColorGray, + ColorGreen, + ColorOrange, + ColorPurple, + ColorRed, + Colors, + ColorYellow, } from '../VariablesAndData'; /** @@ -11,72 +19,84 @@ import { * And by changes in CM.Options.SortUpgrades */ export default function UpdateUpgrades() { - // This counts the amount of upgrades for each pp group and updates the Upgrade Bar - if (CMOptions.UpBarColor > 0) { - let blue = 0; - let green = 0; - let yellow = 0; - let orange = 0; - let red = 0; - let purple = 0; - let gray = 0; + // This counts the amount of upgrades for each pp group and updates the Upgrade Bar + if (CMOptions.UpBarColor > 0) { + let blue = 0; + let green = 0; + let yellow = 0; + let orange = 0; + let red = 0; + let purple = 0; + let gray = 0; - for (const i of Object.keys(Game.UpgradesInStore)) { - const me = Game.UpgradesInStore[i]; - let addedColor = false; - for (let j = 0; j < l(`upgrade${i}`).childNodes.length; j++) { - if (l(`upgrade${i}`).childNodes[j].className.indexOf(ColorBackPre) !== -1) { - l(`upgrade${i}`).childNodes[j].className = ColorBackPre + CacheUpgrades[me.name].color; - addedColor = true; - break; - } - } - if (!addedColor) { - const div = document.createElement('div'); - div.style.width = '10px'; - div.style.height = '10px'; - div.className = ColorBackPre + CacheUpgrades[me.name].color; - l(`upgrade${i}`).appendChild(div); - } - if (CacheUpgrades[me.name].color === ColorBlue) blue++; - else if (CacheUpgrades[me.name].color === ColorGreen) green++; - else if (CacheUpgrades[me.name].color === ColorYellow) yellow++; - else if (CacheUpgrades[me.name].color === ColorOrange) orange++; - else if (CacheUpgrades[me.name].color === ColorRed) red++; - else if (CacheUpgrades[me.name].color === ColorPurple) purple++; - else if (CacheUpgrades[me.name].color === ColorGray) gray++; - } + for (const i of Object.keys(Game.UpgradesInStore)) { + const me = Game.UpgradesInStore[i]; + let addedColor = false; + for (let j = 0; j < l(`upgrade${i}`).childNodes.length; j++) { + if ( + l(`upgrade${i}`).childNodes[j].className.indexOf(ColorBackPre) !== -1 + ) { + l(`upgrade${i}`).childNodes[j].className = + ColorBackPre + CacheUpgrades[me.name].color; + addedColor = true; + break; + } + } + if (!addedColor) { + const div = document.createElement('div'); + div.style.width = '10px'; + div.style.height = '10px'; + div.className = ColorBackPre + CacheUpgrades[me.name].color; + l(`upgrade${i}`).appendChild(div); + } + if (CacheUpgrades[me.name].color === ColorBlue) blue++; + else if (CacheUpgrades[me.name].color === ColorGreen) green++; + else if (CacheUpgrades[me.name].color === ColorYellow) yellow++; + else if (CacheUpgrades[me.name].color === ColorOrange) orange++; + else if (CacheUpgrades[me.name].color === ColorRed) red++; + else if (CacheUpgrades[me.name].color === ColorPurple) purple++; + else if (CacheUpgrades[me.name].color === ColorGray) gray++; + } - l('CMUpgradeBarBlue').textContent = blue; - l('CMUpgradeBarGreen').textContent = green; - l('CMUpgradeBarYellow').textContent = yellow; - l('CMUpgradeBarOrange').textContent = orange; - l('CMUpgradeBarRed').textContent = red; - l('CMUpgradeBarPurple').textContent = purple; - l('CMUpgradeBarGray').textContent = gray; - } + l('CMUpgradeBarBlue').textContent = blue; + l('CMUpgradeBarGreen').textContent = green; + l('CMUpgradeBarYellow').textContent = yellow; + l('CMUpgradeBarOrange').textContent = orange; + l('CMUpgradeBarRed').textContent = red; + l('CMUpgradeBarPurple').textContent = purple; + l('CMUpgradeBarGray').textContent = gray; + } - const arr = []; - // Build array of pointers, sort by pp, set flex positions - // This regulates sorting of upgrades - for (let x = 0; x < Game.UpgradesInStore.length; x++) { - const o = {}; - o.name = Game.UpgradesInStore[x].name; - o.price = Game.UpgradesInStore[x].basePrice; - o.pp = CacheUpgrades[o.name].pp; - arr.push(o); - } + const arr = []; + // Build array of pointers, sort by pp, set flex positions + // This regulates sorting of upgrades + for (let x = 0; x < Game.UpgradesInStore.length; x++) { + const o = {}; + o.name = Game.UpgradesInStore[x].name; + o.price = Game.UpgradesInStore[x].basePrice; + o.pp = CacheUpgrades[o.name].pp; + arr.push(o); + } - if (CMOptions.SortUpgrades) { - arr.sort(function (a, b) { return (Colors.indexOf(a.color) > Colors.indexOf(b.color) ? 1 : (Colors.indexOf(a.color) < Colors.indexOf(b.color) ? -1 : (a.pp < b.pp) ? -1 : 0)); }); - } else { - arr.sort((a, b) => a.price - b.price); - } + if (CMOptions.SortUpgrades) { + arr.sort(function (a, b) { + return Colors.indexOf(a.color) > Colors.indexOf(b.color) + ? 1 + : Colors.indexOf(a.color) < Colors.indexOf(b.color) + ? -1 + : a.pp < b.pp + ? -1 + : 0; + }); + } else { + arr.sort((a, b) => a.price - b.price); + } - const nameChecker = function (arr2, upgrade) { - return arr2.findIndex((e) => e.name === upgrade.name); - }; - for (let x = 0; x < Game.UpgradesInStore.length; x++) { - l(`upgrade${x}`).style.order = nameChecker(arr, Game.UpgradesInStore[x]) + 1; - } + const nameChecker = function (arr2, upgrade) { + return arr2.findIndex((e) => e.name === upgrade.name); + }; + for (let x = 0; x < Game.UpgradesInStore.length; x++) { + l(`upgrade${x}`).style.order = + nameChecker(arr, Game.UpgradesInStore[x]) + 1; + } } diff --git a/src/Disp/Dragon/Dragon.js b/src/Disp/Dragon/Dragon.js index 2a81adf1..b6b4a330 100644 --- a/src/Disp/Dragon/Dragon.js +++ b/src/Disp/Dragon/Dragon.js @@ -4,32 +4,40 @@ import CacheDragonCost from '../../Cache/Dragon/Dragon'; import { CacheCostDragonUpgrade } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import CalculateChangeAura from '../../Sim/SimulationEvents/AuraChange'; -import { Beautify, FormatTime } from '../BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify, + FormatTime, +} from '../BeautifyAndFormatting/BeautifyFormatting'; /** * This functions adds the two extra lines about CPS and time to recover to the aura picker infoscreen * @param {number} aura The number of the aura currently selected by the mouse/user */ export function AddAuraInfo(aura) { - if (CMOptions.DragonAuraInfo === 1) { - const [bonusCPS, priceOfChange] = CalculateChangeAura(aura); - const timeToRecover = FormatTime(priceOfChange / (bonusCPS + Game.cookiesPs)); - const bonusCPSPercentage = Beautify(bonusCPS / Game.cookiesPs); + if (CMOptions.DragonAuraInfo === 1) { + const [bonusCPS, priceOfChange] = CalculateChangeAura(aura); + const timeToRecover = FormatTime( + priceOfChange / (bonusCPS + Game.cookiesPs), + ); + const bonusCPSPercentage = Beautify(bonusCPS / Game.cookiesPs); - l('dragonAuraInfo').style.minHeight = '60px'; - l('dragonAuraInfo').style.margin = '8px'; - l('dragonAuraInfo').appendChild(document.createElement('div')).className = 'line'; - const div = document.createElement('div'); - div.style.minWidth = '200px'; - div.style.textAlign = 'center'; - div.textContent = `Picking this aura will change CPS by ${Beautify(bonusCPS)} (${bonusCPSPercentage}% of current CPS).`; - l('dragonAuraInfo').appendChild(div); - const div2 = document.createElement('div'); - div2.style.minWidth = '200px'; - div2.style.textAlign = 'center'; - div2.textContent = `It will take ${timeToRecover} to recover the cost.`; - l('dragonAuraInfo').appendChild(div2); - } + l('dragonAuraInfo').style.minHeight = '60px'; + l('dragonAuraInfo').style.margin = '8px'; + l('dragonAuraInfo').appendChild(document.createElement('div')).className = + 'line'; + const div = document.createElement('div'); + div.style.minWidth = '200px'; + div.style.textAlign = 'center'; + div.textContent = `Picking this aura will change CPS by ${Beautify( + bonusCPS, + )} (${bonusCPSPercentage}% of current CPS).`; + l('dragonAuraInfo').appendChild(div); + const div2 = document.createElement('div'); + div2.style.minWidth = '200px'; + div2.style.textAlign = 'center'; + div2.textContent = `It will take ${timeToRecover} to recover the cost.`; + l('dragonAuraInfo').appendChild(div2); + } } /** @@ -37,18 +45,27 @@ export function AddAuraInfo(aura) { * It is called by Game.ToggleSpecialMenu() after CM.Main.ReplaceNative() */ export function AddDragonLevelUpTooltip() { - // Check if it is the dragon popup that is on screen - if ((l('specialPopup').className.match(/onScreen/) && l('specialPopup').children[0].style.background.match(/dragon/)) !== null) { - for (let i = 0; i < l('specialPopup').childNodes.length; i++) { - if (l('specialPopup').childNodes[i].className === 'optionBox') { - l('specialPopup').children[i].onmouseover = function () { - CacheDragonCost(); - Game.tooltip.dynamic = 1; - Game.tooltip.draw(l('specialPopup'), `
${CacheCostDragonUpgrade}
`, 'this'); - Game.tooltip.wobble(); - }; - l('specialPopup').children[i].onmouseout = function () { Game.tooltip.shouldHide = 1; }; - } - } - } + // Check if it is the dragon popup that is on screen + if ( + (l('specialPopup').className.match(/onScreen/) && + l('specialPopup').children[0].style.background.match(/dragon/)) !== null + ) { + for (let i = 0; i < l('specialPopup').childNodes.length; i++) { + if (l('specialPopup').childNodes[i].className === 'optionBox') { + l('specialPopup').children[i].onmouseover = function () { + CacheDragonCost(); + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + l('specialPopup'), + `
${CacheCostDragonUpgrade}
`, + 'this', + ); + Game.tooltip.wobble(); + }; + l('specialPopup').children[i].onmouseout = function () { + Game.tooltip.shouldHide = 1; + }; + } + } + } } diff --git a/src/Disp/Draw.js b/src/Disp/Draw.js index 111eb36d..2d7261c5 100644 --- a/src/Disp/Draw.js +++ b/src/Disp/Draw.js @@ -6,44 +6,55 @@ import { UpdateBotBar } from './InfoBars/BottomBar'; import { UpdateTimerBar } from './InfoBars/TimerBar'; import RefreshMenu from './MenuSections/Refreshmenu'; import { UpdateTooltips } from './Tooltips/Tooltip'; -import { CheckWrinklerTooltip, UpdateWrinklerTooltip } from './Tooltips/WrinklerTooltips'; +import { + CheckWrinklerTooltip, + UpdateWrinklerTooltip, +} from './Tooltips/WrinklerTooltips'; /** * This function handles all custom drawing for the Game.Draw() function. * It is hooked on 'draw' by CM.RegisterHooks() */ export default function Draw() { - // Draw autosave timer in stats menu, this must be done here to make it count down correctly - if ( - (Game.prefs.autosave && Game.drawT % 10 === 0) // with autosave ON and every 10 ticks - && (Game.onMenu === 'stats' && CMOptions.Stats) // while being on the stats menu only - ) { - const timer = document.getElementById('CMStatsAutosaveTimer'); - if (timer) { - timer.innerText = Game.sayTime(Game.fps * 60 - (Game.T % (Game.fps * 60)), 4); - } - } - - // Update colors - UpdateBuildings(); - UpdateUpgrades(); - - // Redraw timers - UpdateTimerBar(); - - // Update Bottom Bar - UpdateBotBar(); - - // Update Tooltip - UpdateTooltips(); - - // Update Wrinkler Tooltip - CheckWrinklerTooltip(); - UpdateWrinklerTooltip(); - - // Change menu refresh interval - RefreshMenu(); - - // Replace Cookies counter because Orteil uses very weird code to "pad" it... - l('cookies').innerHTML = l('cookies').innerHTML.replace(/.*(?=
)/i, Beautify(Game.cookies)); + // Draw autosave timer in stats menu, this must be done here to make it count down correctly + if ( + Game.prefs.autosave && + Game.drawT % 10 === 0 && // with autosave ON and every 10 ticks + Game.onMenu === 'stats' && + CMOptions.Stats // while being on the stats menu only + ) { + const timer = document.getElementById('CMStatsAutosaveTimer'); + if (timer) { + timer.innerText = Game.sayTime( + Game.fps * 60 - (Game.T % (Game.fps * 60)), + 4, + ); + } + } + + // Update colors + UpdateBuildings(); + UpdateUpgrades(); + + // Redraw timers + UpdateTimerBar(); + + // Update Bottom Bar + UpdateBotBar(); + + // Update Tooltip + UpdateTooltips(); + + // Update Wrinkler Tooltip + CheckWrinklerTooltip(); + UpdateWrinklerTooltip(); + + // Change menu refresh interval + RefreshMenu(); + + // Replace Cookies counter because Orteil uses very weird code to "pad" it... + l('cookies').innerHTML = l('cookies').innerHTML.replace( + /.*(?=
)/i, + Beautify(Game.cookies), + ); } diff --git a/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js b/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js index b3500589..dc34f2c9 100644 --- a/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js +++ b/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js @@ -8,25 +8,35 @@ import { GCTimers } from '../VariablesAndData'; * @param {object} cookie A Golden Cookie object */ export default function CreateGCTimer(cookie) { - const GCTimer = document.createElement('div'); - GCTimer.id = `GCTimer${cookie.id}`; - GCTimer.style.width = '96px'; - GCTimer.style.height = '96px'; - GCTimer.style.position = 'absolute'; - GCTimer.style.zIndex = '10000000001'; - GCTimer.style.textAlign = 'center'; - GCTimer.style.lineHeight = '96px'; - GCTimer.style.fontFamily = '"Kavoon", Georgia, serif'; - GCTimer.style.fontSize = '35px'; - GCTimer.style.cursor = 'pointer'; - GCTimer.style.display = 'block'; - if (CMOptions.GCTimer === 0) GCTimer.style.display = 'none'; - GCTimer.style.left = cookie.l.style.left; - GCTimer.style.top = cookie.l.style.top; - GCTimer.onclick = function () { cookie.pop(); }; - GCTimer.onmouseover = function () { cookie.l.style.filter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; cookie.l.style.webkitFilter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; }; - GCTimer.onmouseout = function () { cookie.l.style.filter = ''; cookie.l.style.webkitFilter = ''; }; + const GCTimer = document.createElement('div'); + GCTimer.id = `GCTimer${cookie.id}`; + GCTimer.style.width = '96px'; + GCTimer.style.height = '96px'; + GCTimer.style.position = 'absolute'; + GCTimer.style.zIndex = '10000000001'; + GCTimer.style.textAlign = 'center'; + GCTimer.style.lineHeight = '96px'; + GCTimer.style.fontFamily = '"Kavoon", Georgia, serif'; + GCTimer.style.fontSize = '35px'; + GCTimer.style.cursor = 'pointer'; + GCTimer.style.display = 'block'; + if (CMOptions.GCTimer === 0) GCTimer.style.display = 'none'; + GCTimer.style.left = cookie.l.style.left; + GCTimer.style.top = cookie.l.style.top; + GCTimer.onclick = function () { + cookie.pop(); + }; + GCTimer.onmouseover = function () { + cookie.l.style.filter = + 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; + cookie.l.style.webkitFilter = + 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; + }; + GCTimer.onmouseout = function () { + cookie.l.style.filter = ''; + cookie.l.style.webkitFilter = ''; + }; - GCTimers[cookie.id] = GCTimer; - l('shimmers').appendChild(GCTimer); + GCTimers[cookie.id] = GCTimer; + l('shimmers').appendChild(GCTimer); } diff --git a/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js b/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js index fa864ea1..f7598aef 100644 --- a/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js +++ b/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js @@ -5,11 +5,16 @@ * @param {number} targetMagic The target magic level * @returns {number} count / Game.fps The time it takes to reach targetMagic */ -export default function CalculateGrimoireRefillTime(currentMagic, maxMagic, targetMagic) { - let count = 0; - while (currentMagic < targetMagic) { - currentMagic += Math.max(0.002, (currentMagic / Math.max(maxMagic, 100)) ** 0.5) * 0.002; - count++; - } - return count / Game.fps; +export default function CalculateGrimoireRefillTime( + currentMagic, + maxMagic, + targetMagic, +) { + let count = 0; + while (currentMagic < targetMagic) { + currentMagic += + Math.max(0.002, (currentMagic / Math.max(maxMagic, 100)) ** 0.5) * 0.002; + count++; + } + return count / Game.fps; } diff --git a/src/Disp/HelperFunctions/GetCPS.js b/src/Disp/HelperFunctions/GetCPS.js index 2a495ae6..f8522b54 100644 --- a/src/Disp/HelperFunctions/GetCPS.js +++ b/src/Disp/HelperFunctions/GetCPS.js @@ -1,5 +1,8 @@ import { - CacheAverageCPS, CacheCurrWrinklerCount, CacheCurrWrinklerCPSMult, CacheWrinklersFattest, + CacheAverageCPS, + CacheCurrWrinklerCount, + CacheCurrWrinklerCPSMult, + CacheWrinklersFattest, } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; @@ -8,14 +11,31 @@ import { CMOptions } from '../../Config/VariablesAndData'; * @returns {number} The average or current cps */ export default function GetCPS() { - if (CMOptions.CPSMode) { - return CacheAverageCPS; - } if (CMOptions.CalcWrink === 0) { - return (Game.cookiesPs * (1 - Game.cpsSucked)); - } if (CMOptions.CalcWrink === 1) { - return Game.cookiesPs * (CacheCurrWrinklerCPSMult + (1 - (CacheCurrWrinklerCount * 0.05))); - } if (CMOptions.CalcWrink === 2 && Game.wrinklers[CacheWrinklersFattest[1]].type === 1) { - return Game.cookiesPs * ((CacheCurrWrinklerCPSMult * 3 / CacheCurrWrinklerCount) + (1 - (CacheCurrWrinklerCount * 0.05))); - } - return Game.cookiesPs * ((CacheCurrWrinklerCPSMult / CacheCurrWrinklerCount) + (1 - (CacheCurrWrinklerCount * 0.05))); + if (CMOptions.CPSMode) { + return CacheAverageCPS; + } + if (CMOptions.CalcWrink === 0) { + return Game.cookiesPs * (1 - Game.cpsSucked); + } + if (CMOptions.CalcWrink === 1) { + return ( + Game.cookiesPs * + (CacheCurrWrinklerCPSMult + (1 - CacheCurrWrinklerCount * 0.05)) + ); + } + if ( + CMOptions.CalcWrink === 2 && + Game.wrinklers[CacheWrinklersFattest[1]].type === 1 + ) { + return ( + Game.cookiesPs * + ((CacheCurrWrinklerCPSMult * 3) / CacheCurrWrinklerCount + + (1 - CacheCurrWrinklerCount * 0.05)) + ); + } + return ( + Game.cookiesPs * + (CacheCurrWrinklerCPSMult / CacheCurrWrinklerCount + + (1 - CacheCurrWrinklerCount * 0.05)) + ); } diff --git a/src/Disp/HelperFunctions/GetLumpColor.js b/src/Disp/HelperFunctions/GetLumpColor.js index 75d2606b..8da19d6b 100644 --- a/src/Disp/HelperFunctions/GetLumpColor.js +++ b/src/Disp/HelperFunctions/GetLumpColor.js @@ -1,5 +1,10 @@ import { - ColorGray, ColorGreen, ColorOrange, ColorPurple, ColorRed, ColorYellow, + ColorGray, + ColorGreen, + ColorOrange, + ColorPurple, + ColorRed, + ColorYellow, } from '../VariablesAndData'; /** @@ -9,16 +14,20 @@ import { * @returns {{string}, {string}} text, color An array containing the text and display-color of the sugar lump */ export default function GetLumpColor(type) { - if (type === 0) { - return { text: 'Normal', color: ColorGray }; - } if (type === 1) { - return { text: 'Bifurcated', color: ColorGreen }; - } if (type === 2) { - return { text: 'Golden', color: ColorYellow }; - } if (type === 3) { - return { text: 'Meaty', color: ColorOrange }; - } if (type === 4) { - return { text: 'Caramelized', color: ColorPurple }; - } - return { text: 'Unknown Sugar Lump', color: ColorRed }; + if (type === 0) { + return { text: 'Normal', color: ColorGray }; + } + if (type === 1) { + return { text: 'Bifurcated', color: ColorGreen }; + } + if (type === 2) { + return { text: 'Golden', color: ColorYellow }; + } + if (type === 3) { + return { text: 'Meaty', color: ColorOrange }; + } + if (type === 4) { + return { text: 'Caramelized', color: ColorPurple }; + } + return { text: 'Unknown Sugar Lump', color: ColorRed }; } diff --git a/src/Disp/HelperFunctions/GetWrinkConfigBank.js b/src/Disp/HelperFunctions/GetWrinkConfigBank.js index effac3cf..9c039878 100644 --- a/src/Disp/HelperFunctions/GetWrinkConfigBank.js +++ b/src/Disp/HelperFunctions/GetWrinkConfigBank.js @@ -1,4 +1,7 @@ -import { CacheWrinklersFattest, CacheWrinklersTotal } from '../../Cache/VariablesAndData'; +import { + CacheWrinklersFattest, + CacheWrinklersTotal, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; /** @@ -7,10 +10,11 @@ import { CMOptions } from '../../Config/VariablesAndData'; * @returns {number} 0 or the amount of cookies stored (CM.Cache.WrinklersTotal) */ export default function GetWrinkConfigBank() { - if (CMOptions.CalcWrink === 1) { - return CacheWrinklersTotal; - } if (CMOptions.CalcWrink === 2) { - return CacheWrinklersFattest[0]; - } - return 0; + if (CMOptions.CalcWrink === 1) { + return CacheWrinklersTotal; + } + if (CMOptions.CalcWrink === 2) { + return CacheWrinklersFattest[0]; + } + return 0; } diff --git a/src/Disp/HelperFunctions/PopWrinklers.js b/src/Disp/HelperFunctions/PopWrinklers.js index ebb980cb..fb97fcf1 100644 --- a/src/Disp/HelperFunctions/PopWrinklers.js +++ b/src/Disp/HelperFunctions/PopWrinklers.js @@ -3,9 +3,9 @@ * It is called by a click of the 'pop all' button created by CM.Disp.AddMenuStats() */ export default function PopAllNormalWrinklers() { - for (const i of Object.keys(Game.wrinklers)) { - if (Game.wrinklers[i].sucked > 0 && Game.wrinklers[i].type === 0) { - Game.wrinklers[i].hp = 0; - } - } + for (const i of Object.keys(Game.wrinklers)) { + if (Game.wrinklers[i].sucked > 0 && Game.wrinklers[i].type === 0) { + Game.wrinklers[i].hp = 0; + } + } } diff --git a/src/Disp/HelperFunctions/RefreshScale.js b/src/Disp/HelperFunctions/RefreshScale.js index 4a8d412b..2346850f 100644 --- a/src/Disp/HelperFunctions/RefreshScale.js +++ b/src/Disp/HelperFunctions/RefreshScale.js @@ -7,11 +7,11 @@ import { UpdateBotBar } from '../InfoBars/BottomBar'; * It is therefore called by a changes in CM.Options.Scale, CM.Options.ScaleDecimals, CM.Options.ScaleSeparator and CM.Options.ScaleCutoff */ export default function RefreshScale() { - BeautifyAll(); - Game.RefreshStore(); - Game.RebuildUpgrades(); + BeautifyAll(); + Game.RefreshStore(); + Game.RebuildUpgrades(); - UpdateBotBar(); - UpdateBuildings(); - UpdateUpgrades(); + UpdateBotBar(); + UpdateBuildings(); + UpdateUpgrades(); } diff --git a/src/Disp/HelperFunctions/UpdateAscendState.js b/src/Disp/HelperFunctions/UpdateAscendState.js index c12cc663..afd6ebc0 100644 --- a/src/Disp/HelperFunctions/UpdateAscendState.js +++ b/src/Disp/HelperFunctions/UpdateAscendState.js @@ -8,13 +8,13 @@ import UpdateBackground from './UpdateBackground'; * It is called by CM.Disp.Draw() */ export default function UpdateAscendState() { - if (Game.OnAscend) { - l('game').style.bottom = '0px'; - if (CMOptions.BotBar === 1) l('CMBotBar').style.display = 'none'; - if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = 'none'; - } else { - ToggleBotBar(); - ToggleTimerBar(); - } - UpdateBackground(); + if (Game.OnAscend) { + l('game').style.bottom = '0px'; + if (CMOptions.BotBar === 1) l('CMBotBar').style.display = 'none'; + if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = 'none'; + } else { + ToggleBotBar(); + ToggleTimerBar(); + } + UpdateBackground(); } diff --git a/src/Disp/HelperFunctions/UpdateBackground.js b/src/Disp/HelperFunctions/UpdateBackground.js index 5d5cd00d..50a3336c 100644 --- a/src/Disp/HelperFunctions/UpdateBackground.js +++ b/src/Disp/HelperFunctions/UpdateBackground.js @@ -4,8 +4,11 @@ * It is called by CM.Disp.UpdateAscendState() and CM.Disp.UpdateBotTimerBarPosition() */ export default function UpdateBackground() { - Game.Background.canvas.width = Game.Background.canvas.parentNode.offsetWidth; - Game.Background.canvas.height = Game.Background.canvas.parentNode.offsetHeight; - Game.LeftBackground.canvas.width = Game.LeftBackground.canvas.parentNode.offsetWidth; - Game.LeftBackground.canvas.height = Game.LeftBackground.canvas.parentNode.offsetHeight; + Game.Background.canvas.width = Game.Background.canvas.parentNode.offsetWidth; + Game.Background.canvas.height = + Game.Background.canvas.parentNode.offsetHeight; + Game.LeftBackground.canvas.width = + Game.LeftBackground.canvas.parentNode.offsetWidth; + Game.LeftBackground.canvas.height = + Game.LeftBackground.canvas.parentNode.offsetHeight; } diff --git a/src/Disp/HelperFunctions/UpdateColors.js b/src/Disp/HelperFunctions/UpdateColors.js index b92813c7..c80fa7c6 100644 --- a/src/Disp/HelperFunctions/UpdateColors.js +++ b/src/Disp/HelperFunctions/UpdateColors.js @@ -1,7 +1,10 @@ import { CMOptions } from '../../Config/VariablesAndData'; import UpdateBuildings from '../BuildingsUpgrades/Buildings'; import { - ColorBackPre, ColorBorderPre, Colors, ColorTextPre, + ColorBackPre, + ColorBorderPre, + Colors, + ColorTextPre, } from '../VariablesAndData'; /** @@ -9,16 +12,22 @@ import { * The function is therefore called by a change in CM.Options.Colors */ export default function UpdateColors() { - let str = ''; - for (let i = 0; i < Colors.length; i++) { - str += `.${ColorTextPre}${Colors[i]} { color: ${CMOptions.Colors[Colors[i]]}; }\n`; - } - for (let i = 0; i < Colors.length; i++) { - str += `.${ColorBackPre}${Colors[i]} { background-color: ${CMOptions.Colors[Colors[i]]}; }\n`; - } - for (let i = 0; i < Colors.length; i++) { - str += `.${ColorBorderPre}${Colors[i]} { border: 1px solid ${CMOptions.Colors[Colors[i]]}; }\n`; - } - l('CMCSS').textContent = str; - UpdateBuildings(); // Class has been already set + let str = ''; + for (let i = 0; i < Colors.length; i++) { + str += `.${ColorTextPre}${Colors[i]} { color: ${ + CMOptions.Colors[Colors[i]] + }; }\n`; + } + for (let i = 0; i < Colors.length; i++) { + str += `.${ColorBackPre}${Colors[i]} { background-color: ${ + CMOptions.Colors[Colors[i]] + }; }\n`; + } + for (let i = 0; i < Colors.length; i++) { + str += `.${ColorBorderPre}${Colors[i]} { border: 1px solid ${ + CMOptions.Colors[Colors[i]] + }; }\n`; + } + l('CMCSS').textContent = str; + UpdateBuildings(); // Class has been already set } diff --git a/src/Disp/InfoBars/BottomBar.js b/src/Disp/InfoBars/BottomBar.js index 80527ddf..2aee5878 100644 --- a/src/Disp/InfoBars/BottomBar.js +++ b/src/Disp/InfoBars/BottomBar.js @@ -1,13 +1,23 @@ /** Functions related to the Bottom Bar */ -import { CacheObjects1, CacheObjects10, CacheObjects100 } from '../../Cache/VariablesAndData'; +import { + CacheObjects1, + CacheObjects10, + CacheObjects100, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import { VersionMajor, VersionMinor } from '../../Data/Moddata'; -import { Beautify, GetTimeColor } from '../BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify, + GetTimeColor, +} from '../BeautifyAndFormatting/BeautifyFormatting'; import GetCPS from '../HelperFunctions/GetCPS'; import GetWrinkConfigBank from '../HelperFunctions/GetWrinkConfigBank'; import { - ColorBlue, ColorTextPre, ColorYellow, LastTargetBotBar, + ColorBlue, + ColorTextPre, + ColorYellow, + LastTargetBotBar, } from '../VariablesAndData'; import { CreateBotBarBuildingColumn } from './CreateDOMElements'; @@ -15,74 +25,96 @@ import { CreateBotBarBuildingColumn } from './CreateDOMElements'; * This function creates the bottom bar and appends it to l('wrapper') */ export function CreateBotBar() { - const BotBar = document.createElement('div'); - BotBar.id = 'CMBotBar'; - BotBar.style.height = '69px'; - BotBar.style.width = '100%'; - BotBar.style.position = 'absolute'; - BotBar.style.display = 'none'; - BotBar.style.backgroundColor = '#262224'; - BotBar.style.backgroundImage = 'linear-gradient(to bottom, #4d4548, #000000)'; - BotBar.style.borderTop = '1px solid black'; - BotBar.style.overflow = 'auto'; - BotBar.style.textShadow = '-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black'; + const BotBar = document.createElement('div'); + BotBar.id = 'CMBotBar'; + BotBar.style.height = '69px'; + BotBar.style.width = '100%'; + BotBar.style.position = 'absolute'; + BotBar.style.display = 'none'; + BotBar.style.backgroundColor = '#262224'; + BotBar.style.backgroundImage = 'linear-gradient(to bottom, #4d4548, #000000)'; + BotBar.style.borderTop = '1px solid black'; + BotBar.style.overflow = 'auto'; + BotBar.style.textShadow = + '-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black'; - const table = BotBar.appendChild(document.createElement('table')); - table.style.width = '100%'; - table.style.textAlign = 'center'; - table.style.whiteSpace = 'nowrap'; - const tbody = table.appendChild(document.createElement('tbody')); + const table = BotBar.appendChild(document.createElement('table')); + table.style.width = '100%'; + table.style.textAlign = 'center'; + table.style.whiteSpace = 'nowrap'; + const tbody = table.appendChild(document.createElement('tbody')); - const firstCol = function (text, color) { - const td = document.createElement('td'); - td.style.textAlign = 'right'; - td.className = ColorTextPre + color; - td.textContent = text; - return td; - }; - const type = tbody.appendChild(document.createElement('tr')); - type.style.fontWeight = 'bold'; - type.appendChild(firstCol(`CM ${VersionMajor}.${VersionMinor}`, ColorYellow)); - const bonus = tbody.appendChild(document.createElement('tr')); - bonus.appendChild(firstCol('Bonus Income', ColorBlue)); - const pp = tbody.appendChild(document.createElement('tr')); - pp.appendChild(firstCol('Payback Period', ColorBlue)); - const time = tbody.appendChild(document.createElement('tr')); - time.appendChild(firstCol('Time Left', ColorBlue)); + const firstCol = function (text, color) { + const td = document.createElement('td'); + td.style.textAlign = 'right'; + td.className = ColorTextPre + color; + td.textContent = text; + return td; + }; + const type = tbody.appendChild(document.createElement('tr')); + type.style.fontWeight = 'bold'; + type.appendChild(firstCol(`CM ${VersionMajor}.${VersionMinor}`, ColorYellow)); + const bonus = tbody.appendChild(document.createElement('tr')); + bonus.appendChild(firstCol('Bonus Income', ColorBlue)); + const pp = tbody.appendChild(document.createElement('tr')); + pp.appendChild(firstCol('Payback Period', ColorBlue)); + const time = tbody.appendChild(document.createElement('tr')); + time.appendChild(firstCol('Time Left', ColorBlue)); - l('wrapper').appendChild(BotBar); + l('wrapper').appendChild(BotBar); - for (const i of Object.keys(Game.Objects)) { - CreateBotBarBuildingColumn(i); - } + for (const i of Object.keys(Game.Objects)) { + CreateBotBarBuildingColumn(i); + } } /** * This function updates the bonus-, pp-, and time-rows in the the bottom bar */ export function UpdateBotBar() { - if (CMOptions.BotBar === 1 && CacheObjects1 && Game.buyMode === 1) { - let count = 0; - for (const i of Object.keys(CacheObjects1)) { - let target = Game.buyBulk; - if (Game.buyMode === 1) { - LastTargetBotBar = target; - } else { - target = LastTargetBotBar; - } - if (target === 1) target = CacheObjects1; - if (target === 10) target = CacheObjects10; - if (target === 100) target = CacheObjects100; - count++; - l('CMBotBar').firstChild.firstChild.childNodes[0].childNodes[count].childNodes[1].textContent = Game.Objects[i].amount; - l('CMBotBar').firstChild.firstChild.childNodes[1].childNodes[count].textContent = Beautify(target[i].bonus, 2); - l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[count].className = ColorTextPre + target[i].color; - l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[count].textContent = Beautify(target[i].pp, 2); - const timeColor = GetTimeColor((Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS()); - l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[count].className = ColorTextPre + timeColor.color; - if (timeColor.text === 'Done!' && Game.cookies < Game.Objects[i].bulkPrice) { - l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[count].textContent = `${timeColor.text} (with Wrink)`; - } else l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[count].textContent = timeColor.text; - } - } + if (CMOptions.BotBar === 1 && CacheObjects1 && Game.buyMode === 1) { + let count = 0; + for (const i of Object.keys(CacheObjects1)) { + let target = Game.buyBulk; + if (Game.buyMode === 1) { + LastTargetBotBar = target; + } else { + target = LastTargetBotBar; + } + if (target === 1) target = CacheObjects1; + if (target === 10) target = CacheObjects10; + if (target === 100) target = CacheObjects100; + count++; + l('CMBotBar').firstChild.firstChild.childNodes[0].childNodes[ + count + ].childNodes[1].textContent = Game.Objects[i].amount; + l('CMBotBar').firstChild.firstChild.childNodes[1].childNodes[ + count + ].textContent = Beautify(target[i].bonus, 2); + l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[ + count + ].className = ColorTextPre + target[i].color; + l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[ + count + ].textContent = Beautify(target[i].pp, 2); + const timeColor = GetTimeColor( + (Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank())) / + GetCPS(), + ); + l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[ + count + ].className = ColorTextPre + timeColor.color; + if ( + timeColor.text === 'Done!' && + Game.cookies < Game.Objects[i].bulkPrice + ) { + l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[ + count + ].textContent = `${timeColor.text} (with Wrink)`; + } else + l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[ + count + ].textContent = timeColor.text; + } + } } diff --git a/src/Disp/InfoBars/CreateDOMElements.js b/src/Disp/InfoBars/CreateDOMElements.js index 0bad85fa..15ced101 100644 --- a/src/Disp/InfoBars/CreateDOMElements.js +++ b/src/Disp/InfoBars/CreateDOMElements.js @@ -9,58 +9,58 @@ import { ColorBackPre, ColorBlue, ColorTextPre } from '../VariablesAndData'; * @param [{{string}, {string}}, ...] bars ([id, color]) The id and colours of individual parts of the timer */ export function CreateTimer(id, name, bars) { - const timerBar = document.createElement('div'); - timerBar.id = id; - timerBar.style.height = '12px'; - timerBar.style.margin = '0px 10px'; - timerBar.style.position = 'relative'; + const timerBar = document.createElement('div'); + timerBar.id = id; + timerBar.style.height = '12px'; + timerBar.style.margin = '0px 10px'; + timerBar.style.position = 'relative'; - const div = document.createElement('div'); - div.style.width = '100%'; - div.style.height = '10px'; - div.style.margin = 'auto'; - div.style.position = 'absolute'; - div.style.left = '0px'; - div.style.top = '0px'; - div.style.right = '0px'; - div.style.bottom = '0px'; + const div = document.createElement('div'); + div.style.width = '100%'; + div.style.height = '10px'; + div.style.margin = 'auto'; + div.style.position = 'absolute'; + div.style.left = '0px'; + div.style.top = '0px'; + div.style.right = '0px'; + div.style.bottom = '0px'; - const type = document.createElement('span'); - type.style.display = 'inline-block'; - type.style.textAlign = 'right'; - type.style.fontSize = '10px'; - type.style.width = '108px'; - type.style.marginRight = '5px'; - type.style.verticalAlign = 'text-top'; - type.textContent = name; - div.appendChild(type); + const type = document.createElement('span'); + type.style.display = 'inline-block'; + type.style.textAlign = 'right'; + type.style.fontSize = '10px'; + type.style.width = '108px'; + type.style.marginRight = '5px'; + type.style.verticalAlign = 'text-top'; + type.textContent = name; + div.appendChild(type); - for (let i = 0; i < bars.length; i++) { - const colorBar = document.createElement('span'); - colorBar.id = bars[i].id; - colorBar.style.display = 'inline-block'; - colorBar.style.height = '10px'; - colorBar.style.verticalAlign = 'text-top'; - colorBar.style.textAlign = 'center'; - if (bars.length - 1 === i) { - colorBar.style.borderTopRightRadius = '10px'; - colorBar.style.borderBottomRightRadius = '10px'; - } - if (typeof bars[i].color !== 'undefined') { - colorBar.className = ColorBackPre + bars[i].color; - } - div.appendChild(colorBar); - } + for (let i = 0; i < bars.length; i++) { + const colorBar = document.createElement('span'); + colorBar.id = bars[i].id; + colorBar.style.display = 'inline-block'; + colorBar.style.height = '10px'; + colorBar.style.verticalAlign = 'text-top'; + colorBar.style.textAlign = 'center'; + if (bars.length - 1 === i) { + colorBar.style.borderTopRightRadius = '10px'; + colorBar.style.borderBottomRightRadius = '10px'; + } + if (typeof bars[i].color !== 'undefined') { + colorBar.className = ColorBackPre + bars[i].color; + } + div.appendChild(colorBar); + } - const timer = document.createElement('span'); - timer.id = `${id}Time`; - timer.style.marginLeft = '5px'; - timer.style.verticalAlign = 'text-top'; - div.appendChild(timer); + const timer = document.createElement('span'); + timer.id = `${id}Time`; + timer.style.marginLeft = '5px'; + timer.style.verticalAlign = 'text-top'; + div.appendChild(timer); - timerBar.appendChild(div); + timerBar.appendChild(div); - return timerBar; + return timerBar; } /** @@ -68,22 +68,26 @@ export function CreateTimer(id, name, bars) { * @param {string} buildingName Objectname to be added (e.g., "Cursor") */ export function CreateBotBarBuildingColumn(buildingName) { - if (l('CMBotBar') !== null) { - const type = l('CMBotBar').firstChild.firstChild.childNodes[0]; - const bonus = l('CMBotBar').firstChild.firstChild.childNodes[1]; - const pp = l('CMBotBar').firstChild.firstChild.childNodes[2]; - const time = l('CMBotBar').firstChild.firstChild.childNodes[3]; + if (l('CMBotBar') !== null) { + const type = l('CMBotBar').firstChild.firstChild.childNodes[0]; + const bonus = l('CMBotBar').firstChild.firstChild.childNodes[1]; + const pp = l('CMBotBar').firstChild.firstChild.childNodes[2]; + const time = l('CMBotBar').firstChild.firstChild.childNodes[3]; - const i = buildingName; - const header = type.appendChild(document.createElement('td')); - header.appendChild(document.createTextNode(`${i.indexOf(' ') !== -1 ? i.substring(0, i.indexOf(' ')) : i} (`)); + const i = buildingName; + const header = type.appendChild(document.createElement('td')); + header.appendChild( + document.createTextNode( + `${i.indexOf(' ') !== -1 ? i.substring(0, i.indexOf(' ')) : i} (`, + ), + ); - const span = header.appendChild(document.createElement('span')); - span.className = ColorTextPre + ColorBlue; + const span = header.appendChild(document.createElement('span')); + span.className = ColorTextPre + ColorBlue; - header.appendChild(document.createTextNode(')')); - bonus.appendChild(document.createElement('td')); - pp.appendChild(document.createElement('td')); - time.appendChild(document.createElement('td')); - } + header.appendChild(document.createTextNode(')')); + bonus.appendChild(document.createElement('td')); + pp.appendChild(document.createElement('td')); + time.appendChild(document.createElement('td')); + } } diff --git a/src/Disp/InfoBars/TimerBar.js b/src/Disp/InfoBars/TimerBar.js index ac9f0db3..fb0677c5 100644 --- a/src/Disp/InfoBars/TimerBar.js +++ b/src/Disp/InfoBars/TimerBar.js @@ -3,8 +3,12 @@ import { UpdateBotTimerBarPosition } from '../../Config/SpecificToggles'; import { CMOptions } from '../../Config/VariablesAndData'; import { - BuffColors, - ColorBackPre, ColorGray, ColorOrange, ColorPurple, LastNumberOfTimers, + BuffColors, + ColorBackPre, + ColorGray, + ColorOrange, + ColorPurple, + LastNumberOfTimers, } from '../VariablesAndData'; import { CreateTimer } from './CreateDOMElements'; @@ -12,111 +16,191 @@ import { CreateTimer } from './CreateDOMElements'; * This function creates the TimerBar and appends it to l('wrapper') */ export function CreateTimerBar() { - const TimerBar = document.createElement('div'); - TimerBar.id = 'CMTimerBar'; - TimerBar.style.position = 'absolute'; - TimerBar.style.display = 'none'; - TimerBar.style.height = '0px'; - TimerBar.style.fontSize = '10px'; - TimerBar.style.fontWeight = 'bold'; - TimerBar.style.backgroundColor = 'black'; + const TimerBar = document.createElement('div'); + TimerBar.id = 'CMTimerBar'; + TimerBar.style.position = 'absolute'; + TimerBar.style.display = 'none'; + TimerBar.style.height = '0px'; + TimerBar.style.fontSize = '10px'; + TimerBar.style.fontWeight = 'bold'; + TimerBar.style.backgroundColor = 'black'; - // Create standard Golden Cookie bar - const CMTimerBarGC = CreateTimer('CMTimerBarGC', - 'Next Cookie', - [{ id: 'CMTimerBarGCMinBar', color: ColorGray }, { id: 'CMTimerBarGCBar', color: ColorPurple }]); - TimerBar.appendChild(CMTimerBarGC); + // Create standard Golden Cookie bar + const CMTimerBarGC = CreateTimer('CMTimerBarGC', 'Next Cookie', [ + { id: 'CMTimerBarGCMinBar', color: ColorGray }, + { id: 'CMTimerBarGCBar', color: ColorPurple }, + ]); + TimerBar.appendChild(CMTimerBarGC); - // Create standard Reindeer bar - const CMTimerBarRen = CreateTimer('CMTimerBarRen', - 'Next Reindeer', - [{ id: 'CMTimerBarRenMinBar', color: ColorGray }, { id: 'CMTimerBarRenBar', color: ColorOrange }]); - TimerBar.appendChild(CMTimerBarRen); - const TimerBarBuffTimers = document.createElement('div'); - TimerBarBuffTimers.id = 'CMTimerBarBuffTimers'; - TimerBar.appendChild(TimerBarBuffTimers); + // Create standard Reindeer bar + const CMTimerBarRen = CreateTimer('CMTimerBarRen', 'Next Reindeer', [ + { id: 'CMTimerBarRenMinBar', color: ColorGray }, + { id: 'CMTimerBarRenBar', color: ColorOrange }, + ]); + TimerBar.appendChild(CMTimerBarRen); + const TimerBarBuffTimers = document.createElement('div'); + TimerBarBuffTimers.id = 'CMTimerBarBuffTimers'; + TimerBar.appendChild(TimerBarBuffTimers); - l('wrapper').appendChild(TimerBar); + l('wrapper').appendChild(TimerBar); } /** * This function updates indivudual timers in the timer bar */ export function UpdateTimerBar() { - if (CMOptions.TimerBar === 1) { - // label width: 113, timer width: 30, div margin: 20 - const maxWidthTwoBar = l('CMTimerBar').offsetWidth - 163; - // label width: 113, div margin: 20, calculate timer width at runtime - const maxWidthOneBar = l('CMTimerBar').offsetWidth - 133; - let numberOfTimers = 0; + if (CMOptions.TimerBar === 1) { + // label width: 113, timer width: 30, div margin: 20 + const maxWidthTwoBar = l('CMTimerBar').offsetWidth - 163; + // label width: 113, div margin: 20, calculate timer width at runtime + const maxWidthOneBar = l('CMTimerBar').offsetWidth - 133; + let numberOfTimers = 0; - // Regulates visibility of Golden Cookie timer - if (Game.shimmerTypes.golden.spawned === 0 && !Game.Has('Golden switch [off]')) { - l('CMTimerBarGC').style.display = ''; - l('CMTimerBarGCMinBar').style.width = `${Math.round(Math.max(0, Game.shimmerTypes.golden.minTime - Game.shimmerTypes.golden.time) * maxWidthTwoBar / Game.shimmerTypes.golden.maxTime)}px`; - if (CMOptions.TimerBarOverlay >= 1) l('CMTimerBarGCMinBar').textContent = Math.ceil((Game.shimmerTypes.golden.minTime - Game.shimmerTypes.golden.time) / Game.fps); - else l('CMTimerBarGCMinBar').textContent = ''; - if (Game.shimmerTypes.golden.minTime === Game.shimmerTypes.golden.maxTime) { - l('CMTimerBarGCMinBar').style.borderTopRightRadius = '10px'; - l('CMTimerBarGCMinBar').style.borderBottomRightRadius = '10px'; - } else { - l('CMTimerBarGCMinBar').style.borderTopRightRadius = ''; - l('CMTimerBarGCMinBar').style.borderBottomRightRadius = ''; - } - l('CMTimerBarGCBar').style.width = `${Math.round(Math.min(Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime, Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) * maxWidthTwoBar / Game.shimmerTypes.golden.maxTime)}px`; - if (CMOptions.TimerBarOverlay >= 1) l('CMTimerBarGCBar').textContent = Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime, Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / Game.fps); - else l('CMTimerBarGCBar').textContent = ''; - l('CMTimerBarGCTime').textContent = Math.ceil((Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / Game.fps); - numberOfTimers++; - } else l('CMTimerBarGC').style.display = 'none'; + // Regulates visibility of Golden Cookie timer + if ( + Game.shimmerTypes.golden.spawned === 0 && + !Game.Has('Golden switch [off]') + ) { + l('CMTimerBarGC').style.display = ''; + l('CMTimerBarGCMinBar').style.width = `${Math.round( + (Math.max( + 0, + Game.shimmerTypes.golden.minTime - Game.shimmerTypes.golden.time, + ) * + maxWidthTwoBar) / + Game.shimmerTypes.golden.maxTime, + )}px`; + if (CMOptions.TimerBarOverlay >= 1) + l('CMTimerBarGCMinBar').textContent = Math.ceil( + (Game.shimmerTypes.golden.minTime - Game.shimmerTypes.golden.time) / + Game.fps, + ); + else l('CMTimerBarGCMinBar').textContent = ''; + if ( + Game.shimmerTypes.golden.minTime === Game.shimmerTypes.golden.maxTime + ) { + l('CMTimerBarGCMinBar').style.borderTopRightRadius = '10px'; + l('CMTimerBarGCMinBar').style.borderBottomRightRadius = '10px'; + } else { + l('CMTimerBarGCMinBar').style.borderTopRightRadius = ''; + l('CMTimerBarGCMinBar').style.borderBottomRightRadius = ''; + } + l('CMTimerBarGCBar').style.width = `${Math.round( + (Math.min( + Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime, + Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time, + ) * + maxWidthTwoBar) / + Game.shimmerTypes.golden.maxTime, + )}px`; + if (CMOptions.TimerBarOverlay >= 1) + l('CMTimerBarGCBar').textContent = Math.ceil( + Math.min( + Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime, + Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time, + ) / Game.fps, + ); + else l('CMTimerBarGCBar').textContent = ''; + l('CMTimerBarGCTime').textContent = Math.ceil( + (Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / + Game.fps, + ); + numberOfTimers++; + } else l('CMTimerBarGC').style.display = 'none'; - // Regulates visibility of Reindeer timer - if (Game.season === 'christmas' && Game.shimmerTypes.reindeer.spawned === 0) { - l('CMTimerBarRen').style.display = ''; - l('CMTimerBarRenMinBar').style.width = `${Math.round(Math.max(0, Game.shimmerTypes.reindeer.minTime - Game.shimmerTypes.reindeer.time) * maxWidthTwoBar / Game.shimmerTypes.reindeer.maxTime)}px`; - if (CMOptions.TimerBarOverlay >= 1) l('CMTimerBarRenMinBar').textContent = Math.ceil((Game.shimmerTypes.reindeer.minTime - Game.shimmerTypes.reindeer.time) / Game.fps); - else l('CMTimerBarRenMinBar').textContent = ''; - l('CMTimerBarRenBar').style.width = `${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.minTime, Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) * maxWidthTwoBar / Game.shimmerTypes.reindeer.maxTime)}px`; - if (CMOptions.TimerBarOverlay >= 1) l('CMTimerBarRenBar').textContent = Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.minTime, Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / Game.fps); - else l('CMTimerBarRenBar').textContent = ''; - l('CMTimerBarRenTime').textContent = Math.ceil((Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / Game.fps); - numberOfTimers++; - } else { - l('CMTimerBarRen').style.display = 'none'; - } + // Regulates visibility of Reindeer timer + if ( + Game.season === 'christmas' && + Game.shimmerTypes.reindeer.spawned === 0 + ) { + l('CMTimerBarRen').style.display = ''; + l('CMTimerBarRenMinBar').style.width = `${Math.round( + (Math.max( + 0, + Game.shimmerTypes.reindeer.minTime - Game.shimmerTypes.reindeer.time, + ) * + maxWidthTwoBar) / + Game.shimmerTypes.reindeer.maxTime, + )}px`; + if (CMOptions.TimerBarOverlay >= 1) + l('CMTimerBarRenMinBar').textContent = Math.ceil( + (Game.shimmerTypes.reindeer.minTime - + Game.shimmerTypes.reindeer.time) / + Game.fps, + ); + else l('CMTimerBarRenMinBar').textContent = ''; + l('CMTimerBarRenBar').style.width = `${Math.round( + (Math.min( + Game.shimmerTypes.reindeer.maxTime - + Game.shimmerTypes.reindeer.minTime, + Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time, + ) * + maxWidthTwoBar) / + Game.shimmerTypes.reindeer.maxTime, + )}px`; + if (CMOptions.TimerBarOverlay >= 1) + l('CMTimerBarRenBar').textContent = Math.ceil( + Math.min( + Game.shimmerTypes.reindeer.maxTime - + Game.shimmerTypes.reindeer.minTime, + Game.shimmerTypes.reindeer.maxTime - + Game.shimmerTypes.reindeer.time, + ) / Game.fps, + ); + else l('CMTimerBarRenBar').textContent = ''; + l('CMTimerBarRenTime').textContent = Math.ceil( + (Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / + Game.fps, + ); + numberOfTimers++; + } else { + l('CMTimerBarRen').style.display = 'none'; + } - // On every frame all buff-timers are deleted and re-created - const BuffTimerBars = {}; - l('CMTimerBarBuffTimers').innerHTML = ''; - for (const i of Object.keys(Game.buffs)) { - if (Game.buffs[i]) { - const timer = CreateTimer(Game.buffs[i].name, Game.buffs[i].name, [{ id: `${Game.buffs[i].name}Bar` }]); - timer.style.display = ''; - let classColor = ''; - // Gives specific timers specific colors - if (typeof BuffColors[Game.buffs[i].name] !== 'undefined') { - classColor = BuffColors[Game.buffs[i].name]; - } else classColor = ColorPurple; - timer.lastChild.children[1].className = ColorBackPre + classColor; - timer.lastChild.children[1].style.color = 'black'; - if (CMOptions.TimerBarOverlay === 2) timer.lastChild.children[1].textContent = `${Math.round(100 * (Game.buffs[i].time / Game.buffs[i].maxTime))}%`; - else timer.lastChild.children[1].textContent = ''; - timer.lastChild.children[1].style.width = `${Math.round(Game.buffs[i].time * (maxWidthOneBar - Math.ceil(Game.buffs[i].time / Game.fps).toString().length * 8) / Game.buffs[i].maxTime)}px`; - timer.lastChild.children[2].textContent = Math.ceil(Game.buffs[i].time / Game.fps); - numberOfTimers++; - BuffTimerBars[Game.buffs[i].name] = timer; - } - } - for (const i of Object.keys(BuffTimerBars)) { - l('CMTimerBarBuffTimers').appendChild(BuffTimerBars[i]); - } + // On every frame all buff-timers are deleted and re-created + const BuffTimerBars = {}; + l('CMTimerBarBuffTimers').innerHTML = ''; + for (const i of Object.keys(Game.buffs)) { + if (Game.buffs[i]) { + const timer = CreateTimer(Game.buffs[i].name, Game.buffs[i].name, [ + { id: `${Game.buffs[i].name}Bar` }, + ]); + timer.style.display = ''; + let classColor = ''; + // Gives specific timers specific colors + if (typeof BuffColors[Game.buffs[i].name] !== 'undefined') { + classColor = BuffColors[Game.buffs[i].name]; + } else classColor = ColorPurple; + timer.lastChild.children[1].className = ColorBackPre + classColor; + timer.lastChild.children[1].style.color = 'black'; + if (CMOptions.TimerBarOverlay === 2) + timer.lastChild.children[1].textContent = `${Math.round( + 100 * (Game.buffs[i].time / Game.buffs[i].maxTime), + )}%`; + else timer.lastChild.children[1].textContent = ''; + timer.lastChild.children[1].style.width = `${Math.round( + (Game.buffs[i].time * + (maxWidthOneBar - + Math.ceil(Game.buffs[i].time / Game.fps).toString().length * 8)) / + Game.buffs[i].maxTime, + )}px`; + timer.lastChild.children[2].textContent = Math.ceil( + Game.buffs[i].time / Game.fps, + ); + numberOfTimers++; + BuffTimerBars[Game.buffs[i].name] = timer; + } + } + for (const i of Object.keys(BuffTimerBars)) { + l('CMTimerBarBuffTimers').appendChild(BuffTimerBars[i]); + } - if (numberOfTimers !== 0) { - l('CMTimerBar').style.height = `${numberOfTimers * 12 + 2}px`; - } - if (LastNumberOfTimers !== numberOfTimers) { - LastNumberOfTimers = numberOfTimers; - UpdateBotTimerBarPosition(); - } - } + if (numberOfTimers !== 0) { + l('CMTimerBar').style.height = `${numberOfTimers * 12 + 2}px`; + } + if (LastNumberOfTimers !== numberOfTimers) { + LastNumberOfTimers = numberOfTimers; + UpdateBotTimerBarPosition(); + } + } } diff --git a/src/Disp/Initialization/CreateWrinklerButton.js b/src/Disp/Initialization/CreateWrinklerButton.js index 0d286919..3b783b71 100644 --- a/src/Disp/Initialization/CreateWrinklerButton.js +++ b/src/Disp/Initialization/CreateWrinklerButton.js @@ -5,16 +5,21 @@ import PopAllNormalWrinklers from '../HelperFunctions/PopWrinklers'; * This function creates two objects at the bottom of the left column that allowing popping of wrinklers */ export default function CreateWrinklerButtons() { - const popAllA = document.createElement('a'); - popAllA.id = 'PopAllNormalWrinklerButton'; - popAllA.textContent = 'Pop All Normal'; - popAllA.className = 'option'; - popAllA.onclick = function () { PopAllNormalWrinklers(); }; - l('sectionLeftExtra').children[0].append(popAllA); - const popFattestA = document.createElement('a'); - popFattestA.id = 'PopFattestWrinklerButton'; - popFattestA.textContent = 'Pop Single Fattest'; - popFattestA.className = 'option'; - popFattestA.onclick = function () { if (CacheWrinklersFattest[1] !== null) Game.wrinklers[CacheWrinklersFattest[1]].hp = 0; }; - l('sectionLeftExtra').children[0].append(popFattestA); + const popAllA = document.createElement('a'); + popAllA.id = 'PopAllNormalWrinklerButton'; + popAllA.textContent = 'Pop All Normal'; + popAllA.className = 'option'; + popAllA.onclick = function () { + PopAllNormalWrinklers(); + }; + l('sectionLeftExtra').children[0].append(popAllA); + const popFattestA = document.createElement('a'); + popFattestA.id = 'PopFattestWrinklerButton'; + popFattestA.textContent = 'Pop Single Fattest'; + popFattestA.className = 'option'; + popFattestA.onclick = function () { + if (CacheWrinklersFattest[1] !== null) + Game.wrinklers[CacheWrinklersFattest[1]].hp = 0; + }; + l('sectionLeftExtra').children[0].append(popFattestA); } diff --git a/src/Disp/Initialization/CssArea.js b/src/Disp/Initialization/CssArea.js index 8008aabc..878d405d 100644 --- a/src/Disp/Initialization/CssArea.js +++ b/src/Disp/Initialization/CssArea.js @@ -5,9 +5,9 @@ import { DispCSS } from '../VariablesAndData'; */ export default function CreateCssArea() { - DispCSS = document.createElement('style'); - DispCSS.type = 'text/css'; - DispCSS.id = 'CMCSS'; + DispCSS = document.createElement('style'); + DispCSS.type = 'text/css'; + DispCSS.id = 'CMCSS'; - document.head.appendChild(DispCSS); + document.head.appendChild(DispCSS); } diff --git a/src/Disp/Initialization/UpdateBuildingUpgradeStyle.js b/src/Disp/Initialization/UpdateBuildingUpgradeStyle.js index 32ffb4fb..205b689a 100644 --- a/src/Disp/Initialization/UpdateBuildingUpgradeStyle.js +++ b/src/Disp/Initialization/UpdateBuildingUpgradeStyle.js @@ -2,9 +2,9 @@ * This function updates the style of the building and upgrade sections to make these sortable */ export default function UpdateBuildingUpgradeStyle() { - l('products').style.display = 'grid'; - l('storeBulk').style.gridRow = '1/1'; + l('products').style.display = 'grid'; + l('storeBulk').style.gridRow = '1/1'; - l('upgrades').style.display = 'flex'; - l('upgrades').style['flex-wrap'] = 'wrap'; + l('upgrades').style.display = 'flex'; + l('upgrades').style['flex-wrap'] = 'wrap'; } diff --git a/src/Disp/Initialization/WhiteScreen.js b/src/Disp/Initialization/WhiteScreen.js index 55ba72ac..6a41828f 100644 --- a/src/Disp/Initialization/WhiteScreen.js +++ b/src/Disp/Initialization/WhiteScreen.js @@ -2,13 +2,13 @@ * This function creates a white square over the full screen and appends it to l('wrapper') */ export default function CreateWhiteScreen() { - const WhiteScreen = document.createElement('div'); - WhiteScreen.id = 'CMWhiteScreen'; - WhiteScreen.style.width = '100%'; - WhiteScreen.style.height = '100%'; - WhiteScreen.style.backgroundColor = 'white'; - WhiteScreen.style.display = 'none'; - WhiteScreen.style.zIndex = '9999999999'; - WhiteScreen.style.position = 'absolute'; - l('wrapper').appendChild(WhiteScreen); + const WhiteScreen = document.createElement('div'); + WhiteScreen.id = 'CMWhiteScreen'; + WhiteScreen.style.width = '100%'; + WhiteScreen.style.height = '100%'; + WhiteScreen.style.backgroundColor = 'white'; + WhiteScreen.style.display = 'none'; + WhiteScreen.style.zIndex = '9999999999'; + WhiteScreen.style.position = 'absolute'; + l('wrapper').appendChild(WhiteScreen); } diff --git a/src/Disp/MenuSections/AddMenus.js b/src/Disp/MenuSections/AddMenus.js index e00f1cb1..61464374 100644 --- a/src/Disp/MenuSections/AddMenus.js +++ b/src/Disp/MenuSections/AddMenus.js @@ -7,19 +7,19 @@ import AddMenuPref from './SettingsPage'; * This function adds the calll the functions to add extra info to the stats and options pages */ export default function AddMenu() { - const title = document.createElement('div'); - title.className = 'title'; + const title = document.createElement('div'); + title.className = 'title'; - if (Game.onMenu === 'prefs') { - title.textContent = 'Cookie Monster Settings'; - AddMenuPref(title); - } else if (Game.onMenu === 'stats') { - if (CMOptions.Stats) { - title.textContent = 'Cookie Monster Statistics'; - AddMenuStats(title); - } - } else if (Game.onMenu === 'log') { - title.textContent = 'Cookie Monster '; // To create space between name and button - AddMenuInfo(title); - } + if (Game.onMenu === 'prefs') { + title.textContent = 'Cookie Monster Settings'; + AddMenuPref(title); + } else if (Game.onMenu === 'stats') { + if (CMOptions.Stats) { + title.textContent = 'Cookie Monster Statistics'; + AddMenuStats(title); + } + } else if (Game.onMenu === 'log') { + title.textContent = 'Cookie Monster '; // To create space between name and button + AddMenuInfo(title); + } } diff --git a/src/Disp/MenuSections/AddStatsPage.js b/src/Disp/MenuSections/AddStatsPage.js index 55e942cd..0c7c5188 100644 --- a/src/Disp/MenuSections/AddStatsPage.js +++ b/src/Disp/MenuSections/AddStatsPage.js @@ -7,7 +7,13 @@ import * as GameData from '../../Data/Gamedata'; import { CMOptions } from '../../Config/VariablesAndData'; import { - CacheAverageClicks, CacheCentEgg, CacheLastChoEgg, CacheSeaSpec, CacheWrinklersFattest, CacheWrinklersNormal, CacheWrinklersTotal, + CacheAverageClicks, + CacheCentEgg, + CacheLastChoEgg, + CacheSeaSpec, + CacheWrinklersFattest, + CacheWrinklersNormal, + CacheWrinklersTotal, } from '../../Cache/VariablesAndData'; import PopAllNormalWrinklers from '../HelperFunctions/PopWrinklers'; import { ClickTimes, CookieTimes } from '../VariablesAndData'; @@ -20,156 +26,285 @@ import { Beautify } from '../BeautifyAndFormatting/BeautifyFormatting'; * @param {object} title On object that includes the title of the menu */ export default function AddMenuStats(title) { - const stats = document.createElement('div'); - stats.className = 'subsection'; - stats.appendChild(title); + const stats = document.createElement('div'); + stats.className = 'subsection'; + stats.appendChild(title); - stats.appendChild(CreateElements.StatsHeader('Lucky Cookies', 'Lucky')); - if (CMOptions.Header.Lucky) { - stats.appendChild(CreateSections.LuckySection()); - } + stats.appendChild(CreateElements.StatsHeader('Lucky Cookies', 'Lucky')); + if (CMOptions.Header.Lucky) { + stats.appendChild(CreateSections.LuckySection()); + } - stats.appendChild(CreateElements.StatsHeader('Chain Cookies', 'Chain')); - if (CMOptions.Header.Chain) { - stats.appendChild(CreateSections.ChainSection()); - } + stats.appendChild(CreateElements.StatsHeader('Chain Cookies', 'Chain')); + if (CMOptions.Header.Chain) { + stats.appendChild(CreateSections.ChainSection()); + } - if (Game.Objects['Wizard tower'].minigameLoaded) { - stats.appendChild(CreateElements.StatsHeader('Spells', 'Spells')); - if (CMOptions.Header.Spells) { - stats.appendChild(CreateSections.SpellsSection()); - } - } + if (Game.Objects['Wizard tower'].minigameLoaded) { + stats.appendChild(CreateElements.StatsHeader('Spells', 'Spells')); + if (CMOptions.Header.Spells) { + stats.appendChild(CreateSections.SpellsSection()); + } + } - if (Game.Objects.Farm.minigameLoaded) { - stats.appendChild(CreateElements.StatsHeader('Garden', 'Garden')); - if (CMOptions.Header.Garden) { - stats.appendChild(CreateSections.GardenSection()); - } - } + if (Game.Objects.Farm.minigameLoaded) { + stats.appendChild(CreateElements.StatsHeader('Garden', 'Garden')); + if (CMOptions.Header.Garden) { + stats.appendChild(CreateSections.GardenSection()); + } + } - stats.appendChild(CreateElements.StatsHeader('Prestige', 'Prestige')); - if (CMOptions.Header.Prestige) { - stats.appendChild(CreateSections.PrestigeSection()); - } + stats.appendChild(CreateElements.StatsHeader('Prestige', 'Prestige')); + if (CMOptions.Header.Prestige) { + stats.appendChild(CreateSections.PrestigeSection()); + } - if (Game.cpsSucked > 0) { - stats.appendChild(CreateElements.StatsHeader('Wrinklers', 'Wrink')); - if (CMOptions.Header.Wrink) { - const popAllFrag = document.createDocumentFragment(); - popAllFrag.appendChild(document.createTextNode(`${Beautify(CacheWrinklersTotal)} / ${Beautify(CacheWrinklersNormal)} `)); - const popAllA = document.createElement('a'); - popAllA.textContent = 'Pop All Normal'; - popAllA.className = 'option'; - popAllA.onclick = function () { PopAllNormalWrinklers(); }; - popAllFrag.appendChild(popAllA); - stats.appendChild(CreateElements.StatsListing('basic', 'Rewards of Popping (All/Normal)', popAllFrag)); - const popFattestFrag = document.createDocumentFragment(); - popFattestFrag.appendChild(document.createTextNode(`${Beautify(CacheWrinklersFattest[0])} `)); - const popFattestA = document.createElement('a'); - popFattestA.textContent = 'Pop Single Fattest'; - popFattestA.className = 'option'; - popFattestA.onclick = function () { if (CacheWrinklersFattest[1] !== null) Game.wrinklers[CacheWrinklersFattest[1]].hp = 0; }; - popFattestFrag.appendChild(popFattestA); - stats.appendChild(CreateElements.StatsListing('basic', `Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${CacheWrinklersFattest[1] !== null ? CacheWrinklersFattest[1] : 'None'})`, popFattestFrag)); - } - } + if (Game.cpsSucked > 0) { + stats.appendChild(CreateElements.StatsHeader('Wrinklers', 'Wrink')); + if (CMOptions.Header.Wrink) { + const popAllFrag = document.createDocumentFragment(); + popAllFrag.appendChild( + document.createTextNode( + `${Beautify(CacheWrinklersTotal)} / ${Beautify( + CacheWrinklersNormal, + )} `, + ), + ); + const popAllA = document.createElement('a'); + popAllA.textContent = 'Pop All Normal'; + popAllA.className = 'option'; + popAllA.onclick = function () { + PopAllNormalWrinklers(); + }; + popAllFrag.appendChild(popAllA); + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Rewards of Popping (All/Normal)', + popAllFrag, + ), + ); + const popFattestFrag = document.createDocumentFragment(); + popFattestFrag.appendChild( + document.createTextNode(`${Beautify(CacheWrinklersFattest[0])} `), + ); + const popFattestA = document.createElement('a'); + popFattestA.textContent = 'Pop Single Fattest'; + popFattestA.className = 'option'; + popFattestA.onclick = function () { + if (CacheWrinklersFattest[1] !== null) + Game.wrinklers[CacheWrinklersFattest[1]].hp = 0; + }; + popFattestFrag.appendChild(popFattestA); + stats.appendChild( + CreateElements.StatsListing( + 'basic', + `Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${ + CacheWrinklersFattest[1] !== null + ? CacheWrinklersFattest[1] + : 'None' + })`, + popFattestFrag, + ), + ); + } + } - let specDisp = false; - const missingHalloweenCookies = []; - for (const i of Object.keys(GameData.HalloCookies)) { - if (!Game.Has(GameData.HalloCookies[i])) { - missingHalloweenCookies.push(GameData.HalloCookies[i]); - specDisp = true; - } - } - const missingChristmasCookies = []; - for (const i of Object.keys(GameData.ChristCookies)) { - if (!Game.Has(GameData.ChristCookies[i])) { - missingChristmasCookies.push(GameData.ChristCookies[i]); - specDisp = true; - } - } - const missingValentineCookies = []; - for (const i of Object.keys(GameData.ValCookies)) { - if (!Game.Has(GameData.ValCookies[i])) { - missingValentineCookies.push(GameData.ValCookies[i]); - specDisp = true; - } - } - const missingNormalEggs = []; - for (const i of Object.keys(Game.eggDrops)) { - if (!Game.HasUnlocked(Game.eggDrops[i])) { - missingNormalEggs.push(Game.eggDrops[i]); - specDisp = true; - } - } - const missingRareEggs = []; - for (const i of Object.keys(Game.rareEggDrops)) { - if (!Game.HasUnlocked(Game.rareEggDrops[i])) { - missingRareEggs.push(Game.rareEggDrops[i]); - specDisp = true; - } - } - const missingPlantDrops = []; - for (const i of Object.keys(GameData.PlantDrops)) { - if (!Game.HasUnlocked(GameData.PlantDrops[i])) { - missingPlantDrops.push(GameData.PlantDrops[i]); - specDisp = true; - } - } - const choEgg = (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')); - const centEgg = Game.Has('Century egg'); + let specDisp = false; + const missingHalloweenCookies = []; + for (const i of Object.keys(GameData.HalloCookies)) { + if (!Game.Has(GameData.HalloCookies[i])) { + missingHalloweenCookies.push(GameData.HalloCookies[i]); + specDisp = true; + } + } + const missingChristmasCookies = []; + for (const i of Object.keys(GameData.ChristCookies)) { + if (!Game.Has(GameData.ChristCookies[i])) { + missingChristmasCookies.push(GameData.ChristCookies[i]); + specDisp = true; + } + } + const missingValentineCookies = []; + for (const i of Object.keys(GameData.ValCookies)) { + if (!Game.Has(GameData.ValCookies[i])) { + missingValentineCookies.push(GameData.ValCookies[i]); + specDisp = true; + } + } + const missingNormalEggs = []; + for (const i of Object.keys(Game.eggDrops)) { + if (!Game.HasUnlocked(Game.eggDrops[i])) { + missingNormalEggs.push(Game.eggDrops[i]); + specDisp = true; + } + } + const missingRareEggs = []; + for (const i of Object.keys(Game.rareEggDrops)) { + if (!Game.HasUnlocked(Game.rareEggDrops[i])) { + missingRareEggs.push(Game.rareEggDrops[i]); + specDisp = true; + } + } + const missingPlantDrops = []; + for (const i of Object.keys(GameData.PlantDrops)) { + if (!Game.HasUnlocked(GameData.PlantDrops[i])) { + missingPlantDrops.push(GameData.PlantDrops[i]); + specDisp = true; + } + } + const choEgg = + Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'); + const centEgg = Game.Has('Century egg'); - if (Game.season === 'christmas' || specDisp || choEgg || centEgg) { - stats.appendChild(CreateElements.StatsHeader('Season Specials', 'Sea')); - if (CMOptions.Header.Sea) { - if (missingHalloweenCookies.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Halloween Cookies Left to Buy', CreateElements.StatsMissDisp(missingHalloweenCookies))); - if (missingChristmasCookies.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Christmas Cookies Left to Buy', CreateElements.StatsMissDisp(missingChristmasCookies))); - if (missingValentineCookies.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Valentine Cookies Left to Buy', CreateElements.StatsMissDisp(missingValentineCookies))); - if (missingNormalEggs.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Normal Easter Eggs Left to Unlock', CreateElements.StatsMissDisp(missingNormalEggs))); - if (missingRareEggs.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Rare Easter Eggs Left to Unlock', CreateElements.StatsMissDisp(missingRareEggs))); - if (missingPlantDrops.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Rare Plant Drops Left to Unlock', CreateElements.StatsMissDisp(missingPlantDrops))); + if (Game.season === 'christmas' || specDisp || choEgg || centEgg) { + stats.appendChild(CreateElements.StatsHeader('Season Specials', 'Sea')); + if (CMOptions.Header.Sea) { + if (missingHalloweenCookies.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Halloween Cookies Left to Buy', + CreateElements.StatsMissDisp(missingHalloweenCookies), + ), + ); + if (missingChristmasCookies.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Christmas Cookies Left to Buy', + CreateElements.StatsMissDisp(missingChristmasCookies), + ), + ); + if (missingValentineCookies.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Valentine Cookies Left to Buy', + CreateElements.StatsMissDisp(missingValentineCookies), + ), + ); + if (missingNormalEggs.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Normal Easter Eggs Left to Unlock', + CreateElements.StatsMissDisp(missingNormalEggs), + ), + ); + if (missingRareEggs.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Rare Easter Eggs Left to Unlock', + CreateElements.StatsMissDisp(missingRareEggs), + ), + ); + if (missingPlantDrops.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Rare Plant Drops Left to Unlock', + CreateElements.StatsMissDisp(missingPlantDrops), + ), + ); - if (Game.season === 'christmas') stats.appendChild(CreateElements.StatsListing('basic', 'Reindeer Reward', document.createTextNode(Beautify(CacheSeaSpec)))); - if (choEgg) { - stats.appendChild(CreateElements.StatsListing('withTooltip', 'Chocolate Egg Cookies', document.createTextNode(Beautify(CacheLastChoEgg)), 'ChoEggTooltipPlaceholder')); - } - if (centEgg) { - stats.appendChild(CreateElements.StatsListing('basic', 'Century Egg Multiplier', document.createTextNode(`${Math.round((CacheCentEgg - 1) * 10000) / 100}%`))); - } - } - } + if (Game.season === 'christmas') + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Reindeer Reward', + document.createTextNode(Beautify(CacheSeaSpec)), + ), + ); + if (choEgg) { + stats.appendChild( + CreateElements.StatsListing( + 'withTooltip', + 'Chocolate Egg Cookies', + document.createTextNode(Beautify(CacheLastChoEgg)), + 'ChoEggTooltipPlaceholder', + ), + ); + } + if (centEgg) { + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Century Egg Multiplier', + document.createTextNode( + `${Math.round((CacheCentEgg - 1) * 10000) / 100}%`, + ), + ), + ); + } + } + } - stats.appendChild(CreateElements.StatsHeader('Miscellaneous', 'Misc')); - if (CMOptions.Header.Misc) { - stats.appendChild(CreateElements.StatsListing('basic', - `Average Cookies Per Second (Past ${CookieTimes[CMOptions.AvgCPSHist] < 60 ? (`${CookieTimes[CMOptions.AvgCPSHist]} seconds`) : ((CookieTimes[CMOptions.AvgCPSHist] / 60) + (CMOptions.AvgCPSHist === 3 ? ' minute' : ' minutes'))})`, - document.createTextNode(Beautify(GetCPS(), 3)))); - stats.appendChild(CreateElements.StatsListing('basic', `Average Cookie Clicks Per Second (Past ${ClickTimes[CMOptions.AvgClicksHist]}${CMOptions.AvgClicksHist === 0 ? ' second' : ' seconds'})`, document.createTextNode(Beautify(CacheAverageClicks, 1)))); - if (Game.Has('Fortune cookies')) { - const fortunes = []; - for (const i of Object.keys(GameData.Fortunes)) { - if (!Game.Has(GameData.Fortunes[i])) { - fortunes.push(GameData.Fortunes[i]); - } - } - if (fortunes.length !== 0) stats.appendChild(CreateElements.StatsListing('basic', 'Fortune Upgrades Left to Buy', CreateElements.StatsMissDisp(fortunes))); - } - if (CMOptions.ShowMissedGC) { - stats.appendChild(CreateElements.StatsListing('basic', 'Missed Golden Cookies', document.createTextNode(Beautify(Game.missedGoldenClicks)))); - } - if (Game.prefs.autosave) { - const timer = document.createElement('span'); - timer.id = 'CMStatsAutosaveTimer'; - timer.innerText = Game.sayTime(Game.fps * 60 - (Game.OnAscend ? 0 : (Game.T % (Game.fps * 60))), 4); - stats.appendChild(CreateElements.StatsListing('basic', 'Time till autosave', timer)); - } - } + stats.appendChild(CreateElements.StatsHeader('Miscellaneous', 'Misc')); + if (CMOptions.Header.Misc) { + stats.appendChild( + CreateElements.StatsListing( + 'basic', + `Average Cookies Per Second (Past ${ + CookieTimes[CMOptions.AvgCPSHist] < 60 + ? `${CookieTimes[CMOptions.AvgCPSHist]} seconds` + : CookieTimes[CMOptions.AvgCPSHist] / 60 + + (CMOptions.AvgCPSHist === 3 ? ' minute' : ' minutes') + })`, + document.createTextNode(Beautify(GetCPS(), 3)), + ), + ); + stats.appendChild( + CreateElements.StatsListing( + 'basic', + `Average Cookie Clicks Per Second (Past ${ + ClickTimes[CMOptions.AvgClicksHist] + }${CMOptions.AvgClicksHist === 0 ? ' second' : ' seconds'})`, + document.createTextNode(Beautify(CacheAverageClicks, 1)), + ), + ); + if (Game.Has('Fortune cookies')) { + const fortunes = []; + for (const i of Object.keys(GameData.Fortunes)) { + if (!Game.Has(GameData.Fortunes[i])) { + fortunes.push(GameData.Fortunes[i]); + } + } + if (fortunes.length !== 0) + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Fortune Upgrades Left to Buy', + CreateElements.StatsMissDisp(fortunes), + ), + ); + } + if (CMOptions.ShowMissedGC) { + stats.appendChild( + CreateElements.StatsListing( + 'basic', + 'Missed Golden Cookies', + document.createTextNode(Beautify(Game.missedGoldenClicks)), + ), + ); + } + if (Game.prefs.autosave) { + const timer = document.createElement('span'); + timer.id = 'CMStatsAutosaveTimer'; + timer.innerText = Game.sayTime( + Game.fps * 60 - (Game.OnAscend ? 0 : Game.T % (Game.fps * 60)), + 4, + ); + stats.appendChild( + CreateElements.StatsListing('basic', 'Time till autosave', timer), + ); + } + } - l('menu').insertBefore(stats, l('menu').childNodes[2]); + l('menu').insertBefore(stats, l('menu').childNodes[2]); - if (CMOptions.MissingUpgrades) { - AddMissingUpgrades(); - } + if (CMOptions.MissingUpgrades) { + AddMissingUpgrades(); + } } diff --git a/src/Disp/MenuSections/CreateDOMElements.js b/src/Disp/MenuSections/CreateDOMElements.js index 02809dea..84ded84d 100644 --- a/src/Disp/MenuSections/CreateDOMElements.js +++ b/src/Disp/MenuSections/CreateDOMElements.js @@ -12,28 +12,31 @@ import { TooltipText } from '../VariablesAndData'; * @returns {object} div The header object */ export function StatsHeader(text, config) { - const div = document.createElement('div'); - div.className = 'title'; - div.style.padding = '0px 16px'; - div.style.opacity = '0.7'; - div.style.fontSize = '17px'; - div.style.fontFamily = '"Kavoon", Georgia, serif'; - div.appendChild(document.createTextNode(`${text} `)); - const span = document.createElement('span'); - span.style.cursor = 'pointer'; - span.style.display = 'inline-block'; - span.style.height = '14px'; - span.style.width = '14px'; - span.style.borderRadius = '7px'; - span.style.textAlign = 'center'; - span.style.backgroundColor = '#C0C0C0'; - span.style.color = 'black'; - span.style.fontSize = '13px'; - span.style.verticalAlign = 'middle'; - span.textContent = CMOptions.Header[config] ? '-' : '+'; - span.onclick = function () { ToggleHeader(config); Game.UpdateMenu(); }; - div.appendChild(span); - return div; + const div = document.createElement('div'); + div.className = 'title'; + div.style.padding = '0px 16px'; + div.style.opacity = '0.7'; + div.style.fontSize = '17px'; + div.style.fontFamily = '"Kavoon", Georgia, serif'; + div.appendChild(document.createTextNode(`${text} `)); + const span = document.createElement('span'); + span.style.cursor = 'pointer'; + span.style.display = 'inline-block'; + span.style.height = '14px'; + span.style.width = '14px'; + span.style.borderRadius = '7px'; + span.style.textAlign = 'center'; + span.style.backgroundColor = '#C0C0C0'; + span.style.color = 'black'; + span.style.fontSize = '13px'; + span.style.verticalAlign = 'middle'; + span.textContent = CMOptions.Header[config] ? '-' : '+'; + span.onclick = function () { + ToggleHeader(config); + Game.UpdateMenu(); + }; + div.appendChild(span); + return div; } /** @@ -46,35 +49,39 @@ export function StatsHeader(text, config) { * @returns {object} div The option object */ export function StatsListing(type, name, text, placeholder) { - const div = document.createElement('div'); - div.className = 'listing'; + const div = document.createElement('div'); + div.className = 'listing'; - const listingName = document.createElement('b'); - listingName.textContent = name; - div.appendChild(listingName); - if (type === 'withTooltip') { - div.className = 'listing'; - div.appendChild(document.createTextNode(' ')); + const listingName = document.createElement('b'); + listingName.textContent = name; + div.appendChild(listingName); + if (type === 'withTooltip') { + div.className = 'listing'; + div.appendChild(document.createTextNode(' ')); - const tooltip = document.createElement('span'); - tooltip.onmouseout = function () { Game.tooltip.hide(); }; - tooltip.onmouseover = function () { Game.tooltip.draw(this, escape(TooltipText[placeholder].innerHTML)); }; - tooltip.style.cursor = 'default'; - tooltip.style.display = 'inline-block'; - tooltip.style.height = '10px'; - tooltip.style.width = '10px'; - tooltip.style.borderRadius = '5px'; - tooltip.style.textAlign = 'center'; - tooltip.style.backgroundColor = '#C0C0C0'; - tooltip.style.color = 'black'; - tooltip.style.fontSize = '9px'; - tooltip.style.verticalAlign = 'bottom'; - tooltip.textContent = '?'; - div.appendChild(tooltip); - } - div.appendChild(document.createTextNode(': ')); - div.appendChild(text); - return div; + const tooltip = document.createElement('span'); + tooltip.onmouseout = function () { + Game.tooltip.hide(); + }; + tooltip.onmouseover = function () { + Game.tooltip.draw(this, escape(TooltipText[placeholder].innerHTML)); + }; + tooltip.style.cursor = 'default'; + tooltip.style.display = 'inline-block'; + tooltip.style.height = '10px'; + tooltip.style.width = '10px'; + tooltip.style.borderRadius = '5px'; + tooltip.style.textAlign = 'center'; + tooltip.style.backgroundColor = '#C0C0C0'; + tooltip.style.color = 'black'; + tooltip.style.fontSize = '9px'; + tooltip.style.verticalAlign = 'bottom'; + tooltip.textContent = '?'; + div.appendChild(tooltip); + } + div.appendChild(document.createTextNode(': ')); + div.appendChild(text); + return div; } /** @@ -83,39 +90,43 @@ export function StatsListing(type, name, text, placeholder) { * @returns {object} frag The tooltip object */ export function StatsMissDisp(theMissDisp) { - const frag = document.createDocumentFragment(); - frag.appendChild(document.createTextNode(`${theMissDisp.length} `)); - const span = document.createElement('span'); - span.onmouseout = function () { Game.tooltip.hide(); }; - const placeholder = document.createElement('div'); - const missing = document.createElement('div'); - missing.style.minWidth = '140px'; - missing.style.marginBottom = '4px'; - const title = document.createElement('div'); - title.className = 'name'; - title.style.marginBottom = '4px'; - title.style.textAlign = 'center'; - title.textContent = 'Missing'; - missing.appendChild(title); - for (const i of Object.keys(theMissDisp)) { - const div = document.createElement('div'); - div.style.textAlign = 'center'; - div.appendChild(document.createTextNode(theMissDisp[i])); - missing.appendChild(div); - } - placeholder.appendChild(missing); - span.onmouseover = function () { Game.tooltip.draw(this, escape(placeholder.innerHTML)); }; - span.style.cursor = 'default'; - span.style.display = 'inline-block'; - span.style.height = '10px'; - span.style.width = '10px'; - span.style.borderRadius = '5px'; - span.style.textAlign = 'center'; - span.style.backgroundColor = '#C0C0C0'; - span.style.color = 'black'; - span.style.fontSize = '9px'; - span.style.verticalAlign = 'bottom'; - span.textContent = '?'; - frag.appendChild(span); - return frag; + const frag = document.createDocumentFragment(); + frag.appendChild(document.createTextNode(`${theMissDisp.length} `)); + const span = document.createElement('span'); + span.onmouseout = function () { + Game.tooltip.hide(); + }; + const placeholder = document.createElement('div'); + const missing = document.createElement('div'); + missing.style.minWidth = '140px'; + missing.style.marginBottom = '4px'; + const title = document.createElement('div'); + title.className = 'name'; + title.style.marginBottom = '4px'; + title.style.textAlign = 'center'; + title.textContent = 'Missing'; + missing.appendChild(title); + for (const i of Object.keys(theMissDisp)) { + const div = document.createElement('div'); + div.style.textAlign = 'center'; + div.appendChild(document.createTextNode(theMissDisp[i])); + missing.appendChild(div); + } + placeholder.appendChild(missing); + span.onmouseover = function () { + Game.tooltip.draw(this, escape(placeholder.innerHTML)); + }; + span.style.cursor = 'default'; + span.style.display = 'inline-block'; + span.style.height = '10px'; + span.style.width = '10px'; + span.style.borderRadius = '5px'; + span.style.textAlign = 'center'; + span.style.backgroundColor = '#C0C0C0'; + span.style.color = 'black'; + span.style.fontSize = '9px'; + span.style.verticalAlign = 'bottom'; + span.textContent = '?'; + frag.appendChild(span); + return frag; } diff --git a/src/Disp/MenuSections/CreateMissingUpgrades.js b/src/Disp/MenuSections/CreateMissingUpgrades.js index 7c7281b8..bdd0d453 100644 --- a/src/Disp/MenuSections/CreateMissingUpgrades.js +++ b/src/Disp/MenuSections/CreateMissingUpgrades.js @@ -1,58 +1,88 @@ /** Functions related to displaying the missing upgrades in the Statistics page */ -import { CacheMissingUpgrades, CacheMissingUpgradesCookies, CacheMissingUpgradesPrestige } from '../../Cache/VariablesAndData'; +import { + CacheMissingUpgrades, + CacheMissingUpgradesCookies, + CacheMissingUpgradesPrestige, +} from '../../Cache/VariablesAndData'; /** * This function creates the missing upgrades sections for prestige, normal and cookie upgrades */ export function AddMissingUpgrades() { - for (const menuSection of (l('menu').children)) { - if (menuSection.children[0]) { - if (menuSection.children[0].innerHTML === 'Prestige' && CacheMissingUpgradesPrestige) { - const prestigeUpgradesMissing = CacheMissingUpgradesPrestige.match(new RegExp('div', 'g') || []).length / 2; - const title = document.createElement('div'); - title.id = 'CMMissingUpgradesPrestigeTitle'; - title.className = 'listing'; - const titlefrag = document.createElement('div'); - titlefrag.innerHTML = `Missing Prestige upgrades: ${prestigeUpgradesMissing}/${Game.PrestigeUpgrades.length} (${Math.floor((prestigeUpgradesMissing / Game.PrestigeUpgrades.length) * 100)}%)`; - title.appendChild(titlefrag); - menuSection.appendChild(title); - const upgrades = document.createElement('div'); - upgrades.className = 'listing crateBox'; - upgrades.innerHTML = CacheMissingUpgradesPrestige; - menuSection.appendChild(upgrades); - } else if (menuSection.children[0].innerHTML === 'Upgrades') { - if (CacheMissingUpgrades) { - const normalUpgradesMissing = CacheMissingUpgrades.match(new RegExp('div', 'g') || []).length / 2; - const title = document.createElement('div'); - title.id = 'CMMissingUpgradesTitle'; - title.className = 'listing'; - const titlefrag = document.createElement('div'); - titlefrag.innerHTML = `Missing normal upgrades: ${normalUpgradesMissing}/${Game.UpgradesByPool[''].length + Game.UpgradesByPool.tech.length} (${Math.floor((normalUpgradesMissing / (Game.UpgradesByPool[''].length + Game.UpgradesByPool.tech.length)) * 100)}%)`; - title.appendChild(titlefrag); - menuSection.insertBefore(title, menuSection.childNodes[3]); - const upgrades = document.createElement('div'); - upgrades.className = 'listing crateBox'; - upgrades.innerHTML = CacheMissingUpgrades; - menuSection.insertBefore(upgrades, document.getElementById('CMMissingUpgradesTitle').nextSibling); - } - if (CacheMissingUpgradesCookies) { - const cookieUpgradesMissing = CacheMissingUpgradesCookies.match(new RegExp('div', 'g') || []).length / 2; - const title = document.createElement('div'); - title.id = 'CMMissingUpgradesCookiesTitle'; - title.className = 'listing'; - const titlefrag = document.createElement('div'); - titlefrag.innerHTML = `Missing Cookie upgrades: ${cookieUpgradesMissing}/${Game.UpgradesByPool.cookie.length} (${Math.floor((cookieUpgradesMissing / Game.UpgradesByPool.cookie.length) * 100)}%)`; - title.appendChild(titlefrag); - menuSection.appendChild(title); - const upgrades = document.createElement('div'); - upgrades.className = 'listing crateBox'; - upgrades.innerHTML = CacheMissingUpgradesCookies; - menuSection.appendChild(upgrades); - } - } - } - } + for (const menuSection of l('menu').children) { + if (menuSection.children[0]) { + if ( + menuSection.children[0].innerHTML === 'Prestige' && + CacheMissingUpgradesPrestige + ) { + const prestigeUpgradesMissing = + CacheMissingUpgradesPrestige.match(new RegExp('div', 'g') || []) + .length / 2; + const title = document.createElement('div'); + title.id = 'CMMissingUpgradesPrestigeTitle'; + title.className = 'listing'; + const titlefrag = document.createElement('div'); + titlefrag.innerHTML = `Missing Prestige upgrades: ${prestigeUpgradesMissing}/${ + Game.PrestigeUpgrades.length + } (${Math.floor( + (prestigeUpgradesMissing / Game.PrestigeUpgrades.length) * 100, + )}%)`; + title.appendChild(titlefrag); + menuSection.appendChild(title); + const upgrades = document.createElement('div'); + upgrades.className = 'listing crateBox'; + upgrades.innerHTML = CacheMissingUpgradesPrestige; + menuSection.appendChild(upgrades); + } else if (menuSection.children[0].innerHTML === 'Upgrades') { + if (CacheMissingUpgrades) { + const normalUpgradesMissing = + CacheMissingUpgrades.match(new RegExp('div', 'g') || []).length / 2; + const title = document.createElement('div'); + title.id = 'CMMissingUpgradesTitle'; + title.className = 'listing'; + const titlefrag = document.createElement('div'); + titlefrag.innerHTML = `Missing normal upgrades: ${normalUpgradesMissing}/${ + Game.UpgradesByPool[''].length + Game.UpgradesByPool.tech.length + } (${Math.floor( + (normalUpgradesMissing / + (Game.UpgradesByPool[''].length + + Game.UpgradesByPool.tech.length)) * + 100, + )}%)`; + title.appendChild(titlefrag); + menuSection.insertBefore(title, menuSection.childNodes[3]); + const upgrades = document.createElement('div'); + upgrades.className = 'listing crateBox'; + upgrades.innerHTML = CacheMissingUpgrades; + menuSection.insertBefore( + upgrades, + document.getElementById('CMMissingUpgradesTitle').nextSibling, + ); + } + if (CacheMissingUpgradesCookies) { + const cookieUpgradesMissing = + CacheMissingUpgradesCookies.match(new RegExp('div', 'g') || []) + .length / 2; + const title = document.createElement('div'); + title.id = 'CMMissingUpgradesCookiesTitle'; + title.className = 'listing'; + const titlefrag = document.createElement('div'); + titlefrag.innerHTML = `Missing Cookie upgrades: ${cookieUpgradesMissing}/${ + Game.UpgradesByPool.cookie.length + } (${Math.floor( + (cookieUpgradesMissing / Game.UpgradesByPool.cookie.length) * 100, + )}%)`; + title.appendChild(titlefrag); + menuSection.appendChild(title); + const upgrades = document.createElement('div'); + upgrades.className = 'listing crateBox'; + upgrades.innerHTML = CacheMissingUpgradesCookies; + menuSection.appendChild(upgrades); + } + } + } + } } /** @@ -62,18 +92,20 @@ export function AddMissingUpgrades() { * @returns {string} ? The HTML string that creates the icon. */ export function crateMissing(me) { - let classes = 'crate upgrade missing'; - if (me.pool === 'prestige') classes += ' heavenly'; + let classes = 'crate upgrade missing'; + if (me.pool === 'prestige') classes += ' heavenly'; - let noFrame = 0; - if (!Game.prefs.crates) noFrame = 1; - if (noFrame) classes += ' noFrame'; + let noFrame = 0; + if (!Game.prefs.crates) noFrame = 1; + if (noFrame) classes += ' noFrame'; - let icon = me.icon; - if (me.iconFunction) icon = me.iconFunction(); - const tooltip = `function() {return Game.crateTooltip(Game.UpgradesById[${me.id}], 'stats');}`; - return `
+ style = "${`${ + icon[2] ? `background-image: url(${icon[2]});` : '' + }background-position:${-icon[0] * 48}px ${-icon[1] * 48}px`};">
`; } diff --git a/src/Disp/MenuSections/CreateStatsSections.js b/src/Disp/MenuSections/CreateStatsSections.js index 789b43e6..e5ce1e4e 100644 --- a/src/Disp/MenuSections/CreateStatsSections.js +++ b/src/Disp/MenuSections/CreateStatsSections.js @@ -2,29 +2,43 @@ import { MaxChainCookieReward } from '../../Cache/Stats/ChainCookies'; import { - CacheAvgCPSWithChoEgg, - CacheChainFrenzyMaxReward, - CacheChainFrenzyRequired, - CacheChainFrenzyRequiredNext, - CacheChainFrenzyWrathRequired, - CacheChainFrenzyWrathRequiredNext, - CacheChainMaxReward, - CacheChainRequired, - CacheChainRequiredNext, - CacheChainWrathMaxReward, - CacheChainWrathRequired, - CacheChainWrathRequiredNext, - CacheConjure, - CacheConjureReward, - CacheDragonsFortuneMultAdjustment, - CacheEdifice, - CacheEdificeBuilding, - CacheGoldenCookiesMult, - CacheHCPerSecond, CacheLastChoEgg, CacheLucky, CacheLuckyFrenzy, CacheLuckyReward, CacheLuckyRewardFrenzy, CacheLuckyWrathReward, CacheLuckyWrathRewardFrenzy, CacheNoGoldSwitchCookiesPS, CacheRealCookiesEarned, CacheWrathCookiesMult, CacheWrinklersTotal, + CacheAvgCPSWithChoEgg, + CacheChainFrenzyMaxReward, + CacheChainFrenzyRequired, + CacheChainFrenzyRequiredNext, + CacheChainFrenzyWrathRequired, + CacheChainFrenzyWrathRequiredNext, + CacheChainMaxReward, + CacheChainRequired, + CacheChainRequiredNext, + CacheChainWrathMaxReward, + CacheChainWrathRequired, + CacheChainWrathRequiredNext, + CacheConjure, + CacheConjureReward, + CacheDragonsFortuneMultAdjustment, + CacheEdifice, + CacheEdificeBuilding, + CacheGoldenCookiesMult, + CacheHCPerSecond, + CacheLastChoEgg, + CacheLucky, + CacheLuckyFrenzy, + CacheLuckyReward, + CacheLuckyRewardFrenzy, + CacheLuckyWrathReward, + CacheLuckyWrathRewardFrenzy, + CacheNoGoldSwitchCookiesPS, + CacheRealCookiesEarned, + CacheWrathCookiesMult, + CacheWrinklersTotal, } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import ResetBonus from '../../Sim/SimulationEvents/ResetAscension'; -import { Beautify, FormatTime } from '../BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify, + FormatTime, +} from '../BeautifyAndFormatting/BeautifyFormatting'; import GetCPS from '../HelperFunctions/GetCPS'; import GetWrinkConfigBank from '../HelperFunctions/GetWrinkConfigBank'; @@ -36,63 +50,124 @@ import { StatsListing } from './CreateDOMElements'; * @returns {object} section The object contating the Lucky section */ export function LuckySection() { - // This sets which tooltip to display for certain stats - const goldCookTooltip = Game.auraMult('Dragon\'s Fortune') ? 'GoldCookDragonsFortuneTooltipPlaceholder' : 'GoldCookTooltipPlaceholder'; - - const section = document.createElement('div'); - section.className = 'CMStatsLuckySection'; - - const luckyColor = ((Game.cookies + GetWrinkConfigBank()) < CacheLucky) ? ColorRed : ColorGreen; - const luckyTime = ((Game.cookies + GetWrinkConfigBank()) < CacheLucky) ? FormatTime((CacheLucky - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const luckyReqFrag = document.createDocumentFragment(); - const luckyReqSpan = document.createElement('span'); - luckyReqSpan.style.fontWeight = 'bold'; - luckyReqSpan.className = ColorTextPre + luckyColor; - luckyReqSpan.textContent = Beautify(CacheLucky); - luckyReqFrag.appendChild(luckyReqSpan); - if (luckyTime !== '') { - const luckyReqSmall = document.createElement('small'); - luckyReqSmall.textContent = ` (${luckyTime})`; - luckyReqFrag.appendChild(luckyReqSmall); - } - section.appendChild(StatsListing('withTooltip', '"Lucky!" Cookies Required', luckyReqFrag, goldCookTooltip)); - - const luckyColorFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheLuckyFrenzy) ? ColorRed : ColorGreen; - const luckyTimeFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheLuckyFrenzy) ? FormatTime((CacheLuckyFrenzy - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const luckyReqFrenFrag = document.createDocumentFragment(); - const luckyReqFrenSpan = document.createElement('span'); - luckyReqFrenSpan.style.fontWeight = 'bold'; - luckyReqFrenSpan.className = ColorTextPre + luckyColorFrenzy; - luckyReqFrenSpan.textContent = Beautify(CacheLuckyFrenzy); - luckyReqFrenFrag.appendChild(luckyReqFrenSpan); - if (luckyTimeFrenzy !== '') { - const luckyReqFrenSmall = document.createElement('small'); - luckyReqFrenSmall.textContent = ` (${luckyTimeFrenzy})`; - luckyReqFrenFrag.appendChild(luckyReqFrenSmall); - } - section.appendChild(StatsListing('withTooltip', '"Lucky!" Cookies Required (Frenzy)', luckyReqFrenFrag, goldCookTooltip)); - - const luckySplit = CacheLuckyReward !== CacheLuckyWrathReward; - - const luckyRewardMaxSpan = document.createElement('span'); - luckyRewardMaxSpan.style.fontWeight = 'bold'; - luckyRewardMaxSpan.className = ColorTextPre + CacheLuckyReward; - luckyRewardMaxSpan.textContent = Beautify(CacheLuckyReward) + (luckySplit ? (` / ${Beautify(CacheLuckyWrathReward)}`) : ''); - section.appendChild(StatsListing('withTooltip', `"Lucky!" Reward (MAX)${luckySplit ? ' (Golden / Wrath)' : ''}`, luckyRewardMaxSpan, goldCookTooltip)); - - const luckyRewardFrenzyMaxSpan = document.createElement('span'); - luckyRewardFrenzyMaxSpan.style.fontWeight = 'bold'; - luckyRewardFrenzyMaxSpan.className = ColorTextPre + luckyRewardFrenzyMaxSpan; - luckyRewardFrenzyMaxSpan.textContent = Beautify(CacheLuckyRewardFrenzy) + (luckySplit ? (` / ${Beautify(CacheLuckyWrathRewardFrenzy)}`) : ''); - section.appendChild(StatsListing('withTooltip', `"Lucky!" Reward (MAX) (Frenzy)${luckySplit ? ' (Golden / Wrath)' : ''}`, luckyRewardFrenzyMaxSpan, goldCookTooltip)); - - const luckyCurBase = Math.min((Game.cookies + GetWrinkConfigBank()) * 0.15, CacheNoGoldSwitchCookiesPS * CacheDragonsFortuneMultAdjustment * 60 * 15) + 13; - const luckyCurSpan = document.createElement('span'); - luckyCurSpan.style.fontWeight = 'bold'; - luckyCurSpan.className = ColorTextPre + luckyCurSpan; - luckyCurSpan.textContent = Beautify(CacheGoldenCookiesMult * luckyCurBase) + (luckySplit ? (` / ${Beautify(CacheWrathCookiesMult * luckyCurBase)}`) : ''); - section.appendChild(StatsListing('withTooltip', `"Lucky!" Reward (CUR)${luckySplit ? ' (Golden / Wrath)' : ''}`, luckyCurSpan, goldCookTooltip)); - return section; + // This sets which tooltip to display for certain stats + const goldCookTooltip = Game.auraMult("Dragon's Fortune") + ? 'GoldCookDragonsFortuneTooltipPlaceholder' + : 'GoldCookTooltipPlaceholder'; + + const section = document.createElement('div'); + section.className = 'CMStatsLuckySection'; + + const luckyColor = + Game.cookies + GetWrinkConfigBank() < CacheLucky ? ColorRed : ColorGreen; + const luckyTime = + Game.cookies + GetWrinkConfigBank() < CacheLucky + ? FormatTime( + (CacheLucky - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ) + : ''; + const luckyReqFrag = document.createDocumentFragment(); + const luckyReqSpan = document.createElement('span'); + luckyReqSpan.style.fontWeight = 'bold'; + luckyReqSpan.className = ColorTextPre + luckyColor; + luckyReqSpan.textContent = Beautify(CacheLucky); + luckyReqFrag.appendChild(luckyReqSpan); + if (luckyTime !== '') { + const luckyReqSmall = document.createElement('small'); + luckyReqSmall.textContent = ` (${luckyTime})`; + luckyReqFrag.appendChild(luckyReqSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Lucky!" Cookies Required', + luckyReqFrag, + goldCookTooltip, + ), + ); + + const luckyColorFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheLuckyFrenzy + ? ColorRed + : ColorGreen; + const luckyTimeFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheLuckyFrenzy + ? FormatTime( + (CacheLuckyFrenzy - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ) + : ''; + const luckyReqFrenFrag = document.createDocumentFragment(); + const luckyReqFrenSpan = document.createElement('span'); + luckyReqFrenSpan.style.fontWeight = 'bold'; + luckyReqFrenSpan.className = ColorTextPre + luckyColorFrenzy; + luckyReqFrenSpan.textContent = Beautify(CacheLuckyFrenzy); + luckyReqFrenFrag.appendChild(luckyReqFrenSpan); + if (luckyTimeFrenzy !== '') { + const luckyReqFrenSmall = document.createElement('small'); + luckyReqFrenSmall.textContent = ` (${luckyTimeFrenzy})`; + luckyReqFrenFrag.appendChild(luckyReqFrenSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Lucky!" Cookies Required (Frenzy)', + luckyReqFrenFrag, + goldCookTooltip, + ), + ); + + const luckySplit = CacheLuckyReward !== CacheLuckyWrathReward; + + const luckyRewardMaxSpan = document.createElement('span'); + luckyRewardMaxSpan.style.fontWeight = 'bold'; + luckyRewardMaxSpan.className = ColorTextPre + CacheLuckyReward; + luckyRewardMaxSpan.textContent = + Beautify(CacheLuckyReward) + + (luckySplit ? ` / ${Beautify(CacheLuckyWrathReward)}` : ''); + section.appendChild( + StatsListing( + 'withTooltip', + `"Lucky!" Reward (MAX)${luckySplit ? ' (Golden / Wrath)' : ''}`, + luckyRewardMaxSpan, + goldCookTooltip, + ), + ); + + const luckyRewardFrenzyMaxSpan = document.createElement('span'); + luckyRewardFrenzyMaxSpan.style.fontWeight = 'bold'; + luckyRewardFrenzyMaxSpan.className = ColorTextPre + luckyRewardFrenzyMaxSpan; + luckyRewardFrenzyMaxSpan.textContent = + Beautify(CacheLuckyRewardFrenzy) + + (luckySplit ? ` / ${Beautify(CacheLuckyWrathRewardFrenzy)}` : ''); + section.appendChild( + StatsListing( + 'withTooltip', + `"Lucky!" Reward (MAX) (Frenzy)${luckySplit ? ' (Golden / Wrath)' : ''}`, + luckyRewardFrenzyMaxSpan, + goldCookTooltip, + ), + ); + + const luckyCurBase = + Math.min( + (Game.cookies + GetWrinkConfigBank()) * 0.15, + CacheNoGoldSwitchCookiesPS * CacheDragonsFortuneMultAdjustment * 60 * 15, + ) + 13; + const luckyCurSpan = document.createElement('span'); + luckyCurSpan.style.fontWeight = 'bold'; + luckyCurSpan.className = ColorTextPre + luckyCurSpan; + luckyCurSpan.textContent = + Beautify(CacheGoldenCookiesMult * luckyCurBase) + + (luckySplit ? ` / ${Beautify(CacheWrathCookiesMult * luckyCurBase)}` : ''); + section.appendChild( + StatsListing( + 'withTooltip', + `"Lucky!" Reward (CUR)${luckySplit ? ' (Golden / Wrath)' : ''}`, + luckyCurSpan, + goldCookTooltip, + ), + ); + return section; } /** @@ -100,84 +175,215 @@ export function LuckySection() { * @returns {object} section The object contating the Chain section */ export function ChainSection() { - // This sets which tooltip to display for certain stats - const goldCookTooltip = Game.auraMult('Dragon\'s Fortune') ? 'GoldCookDragonsFortuneTooltipPlaceholder' : 'GoldCookTooltipPlaceholder'; - - const section = document.createElement('div'); - section.className = 'CMStatsChainSection'; - - const chainColor = ((Game.cookies + GetWrinkConfigBank()) < CacheChainRequired) ? ColorRed : ColorGreen; - const chainTime = ((Game.cookies + GetWrinkConfigBank()) < CacheChainRequired) ? FormatTime((CacheChainRequired - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const chainReqFrag = document.createDocumentFragment(); - const chainReqSpan = document.createElement('span'); - chainReqSpan.style.fontWeight = 'bold'; - chainReqSpan.className = ColorTextPre + chainColor; - chainReqSpan.textContent = Beautify(CacheChainRequired); - chainReqFrag.appendChild(chainReqSpan); - if (chainTime !== '') { - const chainReqSmall = document.createElement('small'); - chainReqSmall.textContent = ` (${chainTime})`; - chainReqFrag.appendChild(chainReqSmall); - } - section.appendChild(StatsListing('withTooltip', '"Chain" Cookies Required', chainReqFrag, goldCookTooltip)); - - const chainWrathColor = ((Game.cookies + GetWrinkConfigBank()) < CacheChainWrathRequired) ? ColorRed : ColorGreen; - const chainWrathTime = ((Game.cookies + GetWrinkConfigBank()) < CacheChainWrathRequired) ? FormatTime((CacheChainWrathRequired - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const chainWrathReqFrag = document.createDocumentFragment(); - const chainWrathReqSpan = document.createElement('span'); - chainWrathReqSpan.style.fontWeight = 'bold'; - chainWrathReqSpan.className = ColorTextPre + chainWrathColor; - chainWrathReqSpan.textContent = Beautify(CacheChainWrathRequired); - chainWrathReqFrag.appendChild(chainWrathReqSpan); - if (chainWrathTime !== '') { - const chainWrathReqSmall = document.createElement('small'); - chainWrathReqSmall.textContent = ` (${chainWrathTime})`; - chainWrathReqFrag.appendChild(chainWrathReqSmall); - } - section.appendChild(StatsListing('withTooltip', '"Chain" Cookies Required (Wrath)', chainWrathReqFrag, goldCookTooltip)); - - const chainColorFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheChainFrenzyRequired) ? ColorRed : ColorGreen; - const chainTimeFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheChainFrenzyRequired) ? FormatTime((CacheChainFrenzyRequired - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const chainReqFrenFrag = document.createDocumentFragment(); - const chainReqFrenSpan = document.createElement('span'); - chainReqFrenSpan.style.fontWeight = 'bold'; - chainReqFrenSpan.className = ColorTextPre + chainColorFrenzy; - chainReqFrenSpan.textContent = Beautify(CacheChainFrenzyRequired); - chainReqFrenFrag.appendChild(chainReqFrenSpan); - if (chainTimeFrenzy !== '') { - const chainReqFrenSmall = document.createElement('small'); - chainReqFrenSmall.textContent = ` (${chainTimeFrenzy})`; - chainReqFrenFrag.appendChild(chainReqFrenSmall); - } - section.appendChild(StatsListing('withTooltip', '"Chain" Cookies Required (Frenzy)', chainReqFrenFrag, goldCookTooltip)); - - const chainWrathColorFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheChainFrenzyWrathRequired) ? ColorRed : ColorGreen; - const chainWrathTimeFrenzy = ((Game.cookies + GetWrinkConfigBank()) < CacheChainFrenzyWrathRequired) ? FormatTime((CacheChainFrenzyWrathRequired - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - const chainWrathReqFrenFrag = document.createDocumentFragment(); - const chainWrathReqFrenSpan = document.createElement('span'); - chainWrathReqFrenSpan.style.fontWeight = 'bold'; - chainWrathReqFrenSpan.className = ColorTextPre + chainWrathColorFrenzy; - chainWrathReqFrenSpan.textContent = Beautify(CacheChainFrenzyWrathRequired); - chainWrathReqFrenFrag.appendChild(chainWrathReqFrenSpan); - if (chainWrathTimeFrenzy !== '') { - const chainWrathReqFrenSmall = document.createElement('small'); - chainWrathReqFrenSmall.textContent = ` (${chainWrathTimeFrenzy})`; - chainWrathReqFrenFrag.appendChild(chainWrathReqFrenSmall); - } - section.appendChild(StatsListing('withTooltip', '"Chain" Cookies Required (Frenzy) (Wrath)', chainWrathReqFrenFrag, goldCookTooltip)); - - section.appendChild(StatsListing('withTooltip', '"Chain" Reward (MAX) (Golden / Wrath)', document.createTextNode(`${Beautify(CacheChainMaxReward[0])} / ${Beautify(CacheChainWrathMaxReward[0])}`), goldCookTooltip)); - - section.appendChild(StatsListing('withTooltip', '"Chain" Reward (MAX) (Frenzy) (Golden / Wrath)', document.createTextNode((`${Beautify(CacheChainFrenzyMaxReward[0])} / ${Beautify(CacheChainFrenzyMaxReward[0])}`)), goldCookTooltip)); - - const chainCurMax = Math.min(Game.cookiesPs * 60 * 60 * 6 * CacheDragonsFortuneMultAdjustment, Game.cookies * 0.5); - const chainCur = MaxChainCookieReward(7, chainCurMax, CacheGoldenCookiesMult)[0]; - const chainCurWrath = MaxChainCookieReward(6, chainCurMax, CacheWrathCookiesMult)[0]; - section.appendChild(StatsListing('withTooltip', '"Chain" Reward (CUR) (Golden / Wrath)', document.createTextNode((`${Beautify(chainCur)} / ${Beautify(chainCurWrath)}`)), goldCookTooltip)); - - section.appendChild(StatsListing('withTooltip', 'CPS Needed For Next Level (G / W)', document.createTextNode((`${Beautify(CacheChainRequiredNext)} / ${Beautify(CacheChainWrathRequiredNext)}`)), 'ChainNextLevelPlaceholder')); - section.appendChild(StatsListing('withTooltip', 'CPS Needed For Next Level (Frenzy) (G / W)', document.createTextNode((`${Beautify(CacheChainFrenzyRequiredNext)} / ${Beautify(CacheChainFrenzyWrathRequiredNext)}`)), 'ChainNextLevelPlaceholder')); - return section; + // This sets which tooltip to display for certain stats + const goldCookTooltip = Game.auraMult("Dragon's Fortune") + ? 'GoldCookDragonsFortuneTooltipPlaceholder' + : 'GoldCookTooltipPlaceholder'; + + const section = document.createElement('div'); + section.className = 'CMStatsChainSection'; + + const chainColor = + Game.cookies + GetWrinkConfigBank() < CacheChainRequired + ? ColorRed + : ColorGreen; + const chainTime = + Game.cookies + GetWrinkConfigBank() < CacheChainRequired + ? FormatTime( + (CacheChainRequired - (Game.cookies + GetWrinkConfigBank())) / + GetCPS(), + ) + : ''; + const chainReqFrag = document.createDocumentFragment(); + const chainReqSpan = document.createElement('span'); + chainReqSpan.style.fontWeight = 'bold'; + chainReqSpan.className = ColorTextPre + chainColor; + chainReqSpan.textContent = Beautify(CacheChainRequired); + chainReqFrag.appendChild(chainReqSpan); + if (chainTime !== '') { + const chainReqSmall = document.createElement('small'); + chainReqSmall.textContent = ` (${chainTime})`; + chainReqFrag.appendChild(chainReqSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Cookies Required', + chainReqFrag, + goldCookTooltip, + ), + ); + + const chainWrathColor = + Game.cookies + GetWrinkConfigBank() < CacheChainWrathRequired + ? ColorRed + : ColorGreen; + const chainWrathTime = + Game.cookies + GetWrinkConfigBank() < CacheChainWrathRequired + ? FormatTime( + (CacheChainWrathRequired - (Game.cookies + GetWrinkConfigBank())) / + GetCPS(), + ) + : ''; + const chainWrathReqFrag = document.createDocumentFragment(); + const chainWrathReqSpan = document.createElement('span'); + chainWrathReqSpan.style.fontWeight = 'bold'; + chainWrathReqSpan.className = ColorTextPre + chainWrathColor; + chainWrathReqSpan.textContent = Beautify(CacheChainWrathRequired); + chainWrathReqFrag.appendChild(chainWrathReqSpan); + if (chainWrathTime !== '') { + const chainWrathReqSmall = document.createElement('small'); + chainWrathReqSmall.textContent = ` (${chainWrathTime})`; + chainWrathReqFrag.appendChild(chainWrathReqSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Cookies Required (Wrath)', + chainWrathReqFrag, + goldCookTooltip, + ), + ); + + const chainColorFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheChainFrenzyRequired + ? ColorRed + : ColorGreen; + const chainTimeFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheChainFrenzyRequired + ? FormatTime( + (CacheChainFrenzyRequired - (Game.cookies + GetWrinkConfigBank())) / + GetCPS(), + ) + : ''; + const chainReqFrenFrag = document.createDocumentFragment(); + const chainReqFrenSpan = document.createElement('span'); + chainReqFrenSpan.style.fontWeight = 'bold'; + chainReqFrenSpan.className = ColorTextPre + chainColorFrenzy; + chainReqFrenSpan.textContent = Beautify(CacheChainFrenzyRequired); + chainReqFrenFrag.appendChild(chainReqFrenSpan); + if (chainTimeFrenzy !== '') { + const chainReqFrenSmall = document.createElement('small'); + chainReqFrenSmall.textContent = ` (${chainTimeFrenzy})`; + chainReqFrenFrag.appendChild(chainReqFrenSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Cookies Required (Frenzy)', + chainReqFrenFrag, + goldCookTooltip, + ), + ); + + const chainWrathColorFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheChainFrenzyWrathRequired + ? ColorRed + : ColorGreen; + const chainWrathTimeFrenzy = + Game.cookies + GetWrinkConfigBank() < CacheChainFrenzyWrathRequired + ? FormatTime( + (CacheChainFrenzyWrathRequired - + (Game.cookies + GetWrinkConfigBank())) / + GetCPS(), + ) + : ''; + const chainWrathReqFrenFrag = document.createDocumentFragment(); + const chainWrathReqFrenSpan = document.createElement('span'); + chainWrathReqFrenSpan.style.fontWeight = 'bold'; + chainWrathReqFrenSpan.className = ColorTextPre + chainWrathColorFrenzy; + chainWrathReqFrenSpan.textContent = Beautify(CacheChainFrenzyWrathRequired); + chainWrathReqFrenFrag.appendChild(chainWrathReqFrenSpan); + if (chainWrathTimeFrenzy !== '') { + const chainWrathReqFrenSmall = document.createElement('small'); + chainWrathReqFrenSmall.textContent = ` (${chainWrathTimeFrenzy})`; + chainWrathReqFrenFrag.appendChild(chainWrathReqFrenSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Cookies Required (Frenzy) (Wrath)', + chainWrathReqFrenFrag, + goldCookTooltip, + ), + ); + + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Reward (MAX) (Golden / Wrath)', + document.createTextNode( + `${Beautify(CacheChainMaxReward[0])} / ${Beautify( + CacheChainWrathMaxReward[0], + )}`, + ), + goldCookTooltip, + ), + ); + + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Reward (MAX) (Frenzy) (Golden / Wrath)', + document.createTextNode( + `${Beautify(CacheChainFrenzyMaxReward[0])} / ${Beautify( + CacheChainFrenzyMaxReward[0], + )}`, + ), + goldCookTooltip, + ), + ); + + const chainCurMax = Math.min( + Game.cookiesPs * 60 * 60 * 6 * CacheDragonsFortuneMultAdjustment, + Game.cookies * 0.5, + ); + const chainCur = MaxChainCookieReward( + 7, + chainCurMax, + CacheGoldenCookiesMult, + )[0]; + const chainCurWrath = MaxChainCookieReward( + 6, + chainCurMax, + CacheWrathCookiesMult, + )[0]; + section.appendChild( + StatsListing( + 'withTooltip', + '"Chain" Reward (CUR) (Golden / Wrath)', + document.createTextNode( + `${Beautify(chainCur)} / ${Beautify(chainCurWrath)}`, + ), + goldCookTooltip, + ), + ); + + section.appendChild( + StatsListing( + 'withTooltip', + 'CPS Needed For Next Level (G / W)', + document.createTextNode( + `${Beautify(CacheChainRequiredNext)} / ${Beautify( + CacheChainWrathRequiredNext, + )}`, + ), + 'ChainNextLevelPlaceholder', + ), + ); + section.appendChild( + StatsListing( + 'withTooltip', + 'CPS Needed For Next Level (Frenzy) (G / W)', + document.createTextNode( + `${Beautify(CacheChainFrenzyRequiredNext)} / ${Beautify( + CacheChainFrenzyWrathRequiredNext, + )}`, + ), + 'ChainNextLevelPlaceholder', + ), + ); + return section; } /** @@ -185,48 +391,109 @@ export function ChainSection() { * @returns {object} section The object contating the Spells section */ export function SpellsSection() { - const section = document.createElement('div'); - section.className = 'CMStatsSpellsSection'; - - const conjureColor = ((Game.cookies + GetWrinkConfigBank()) < CacheConjure) ? ColorRed : ColorGreen; - const conjureTime = ((Game.cookies + GetWrinkConfigBank()) < CacheConjure) ? FormatTime((CacheConjure - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - - const conjureReqFrag = document.createDocumentFragment(); - const conjureReqSpan = document.createElement('span'); - conjureReqSpan.style.fontWeight = 'bold'; - conjureReqSpan.className = ColorTextPre + conjureColor; - conjureReqSpan.textContent = Beautify(CacheConjure); - conjureReqFrag.appendChild(conjureReqSpan); - if (conjureTime !== '') { - const conjureReqSmall = document.createElement('small'); - conjureReqSmall.textContent = ` (${conjureTime})`; - conjureReqFrag.appendChild(conjureReqSmall); - } - section.appendChild(StatsListing('withTooltip', '"Conjure Baked Goods" Cookies Required', conjureReqFrag, 'GoldCookTooltipPlaceholder')); - section.appendChild(StatsListing('withTooltip', '"Conjure Baked Goods" Reward (MAX)', document.createTextNode(Beautify(CacheConjureReward)), 'GoldCookTooltipPlaceholder')); - - const conjureFrenzyColor = ((Game.cookies + GetWrinkConfigBank()) < CacheConjure * 7) ? ColorRed : ColorGreen; - const conjureFrenzyCur = Math.min((Game.cookies + GetWrinkConfigBank()) * 0.15, CacheNoGoldSwitchCookiesPS * 60 * 30); - const conjureFrenzyTime = ((Game.cookies + GetWrinkConfigBank()) < CacheConjure * 7) ? FormatTime((CacheConjure * 7 - (Game.cookies + GetWrinkConfigBank())) / GetCPS()) : ''; - - const conjureFrenzyReqFrag = document.createDocumentFragment(); - const conjureFrenzyReqSpan = document.createElement('span'); - conjureFrenzyReqSpan.style.fontWeight = 'bold'; - conjureFrenzyReqSpan.className = ColorTextPre + conjureFrenzyColor; - conjureFrenzyReqSpan.textContent = Beautify(CacheConjure * 7); - conjureFrenzyReqFrag.appendChild(conjureFrenzyReqSpan); - if (conjureFrenzyTime !== '') { - const conjureFrenzyReqSmall = document.createElement('small'); - conjureFrenzyReqSmall.textContent = ` (${conjureFrenzyTime})`; - conjureFrenzyReqFrag.appendChild(conjureFrenzyReqSmall); - } - section.appendChild(StatsListing('withTooltip', '"Conjure Baked Goods" Cookies Required (Frenzy)', conjureFrenzyReqFrag, 'GoldCookTooltipPlaceholder')); - section.appendChild(StatsListing('withTooltip', '"Conjure Baked Goods" Reward (MAX) (Frenzy)', document.createTextNode(Beautify(CacheConjureReward * 7)), 'GoldCookTooltipPlaceholder')); - section.appendChild(StatsListing('withTooltip', '"Conjure Baked Goods" Reward (CUR)', document.createTextNode(Beautify(conjureFrenzyCur)), 'GoldCookTooltipPlaceholder')); - if (CacheEdifice) { - section.appendChild(StatsListing('withTooltip', '"Spontaneous Edifice" Cookies Required (most expensive building)', document.createTextNode(`${Beautify(CacheEdifice)} (${CacheEdificeBuilding})`), 'GoldCookTooltipPlaceholder')); - } - return section; + const section = document.createElement('div'); + section.className = 'CMStatsSpellsSection'; + + const conjureColor = + Game.cookies + GetWrinkConfigBank() < CacheConjure ? ColorRed : ColorGreen; + const conjureTime = + Game.cookies + GetWrinkConfigBank() < CacheConjure + ? FormatTime( + (CacheConjure - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ) + : ''; + + const conjureReqFrag = document.createDocumentFragment(); + const conjureReqSpan = document.createElement('span'); + conjureReqSpan.style.fontWeight = 'bold'; + conjureReqSpan.className = ColorTextPre + conjureColor; + conjureReqSpan.textContent = Beautify(CacheConjure); + conjureReqFrag.appendChild(conjureReqSpan); + if (conjureTime !== '') { + const conjureReqSmall = document.createElement('small'); + conjureReqSmall.textContent = ` (${conjureTime})`; + conjureReqFrag.appendChild(conjureReqSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Conjure Baked Goods" Cookies Required', + conjureReqFrag, + 'GoldCookTooltipPlaceholder', + ), + ); + section.appendChild( + StatsListing( + 'withTooltip', + '"Conjure Baked Goods" Reward (MAX)', + document.createTextNode(Beautify(CacheConjureReward)), + 'GoldCookTooltipPlaceholder', + ), + ); + + const conjureFrenzyColor = + Game.cookies + GetWrinkConfigBank() < CacheConjure * 7 + ? ColorRed + : ColorGreen; + const conjureFrenzyCur = Math.min( + (Game.cookies + GetWrinkConfigBank()) * 0.15, + CacheNoGoldSwitchCookiesPS * 60 * 30, + ); + const conjureFrenzyTime = + Game.cookies + GetWrinkConfigBank() < CacheConjure * 7 + ? FormatTime( + (CacheConjure * 7 - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ) + : ''; + + const conjureFrenzyReqFrag = document.createDocumentFragment(); + const conjureFrenzyReqSpan = document.createElement('span'); + conjureFrenzyReqSpan.style.fontWeight = 'bold'; + conjureFrenzyReqSpan.className = ColorTextPre + conjureFrenzyColor; + conjureFrenzyReqSpan.textContent = Beautify(CacheConjure * 7); + conjureFrenzyReqFrag.appendChild(conjureFrenzyReqSpan); + if (conjureFrenzyTime !== '') { + const conjureFrenzyReqSmall = document.createElement('small'); + conjureFrenzyReqSmall.textContent = ` (${conjureFrenzyTime})`; + conjureFrenzyReqFrag.appendChild(conjureFrenzyReqSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + '"Conjure Baked Goods" Cookies Required (Frenzy)', + conjureFrenzyReqFrag, + 'GoldCookTooltipPlaceholder', + ), + ); + section.appendChild( + StatsListing( + 'withTooltip', + '"Conjure Baked Goods" Reward (MAX) (Frenzy)', + document.createTextNode(Beautify(CacheConjureReward * 7)), + 'GoldCookTooltipPlaceholder', + ), + ); + section.appendChild( + StatsListing( + 'withTooltip', + '"Conjure Baked Goods" Reward (CUR)', + document.createTextNode(Beautify(conjureFrenzyCur)), + 'GoldCookTooltipPlaceholder', + ), + ); + if (CacheEdifice) { + section.appendChild( + StatsListing( + 'withTooltip', + '"Spontaneous Edifice" Cookies Required (most expensive building)', + document.createTextNode( + `${Beautify(CacheEdifice)} (${CacheEdificeBuilding})`, + ), + 'GoldCookTooltipPlaceholder', + ), + ); + } + return section; } /** @@ -234,37 +501,65 @@ export function SpellsSection() { * @returns {object} section The object contating the Spells section */ export function GardenSection() { - const section = document.createElement('div'); - section.className = 'CMStatsGardenSection'; - - const bakeberryColor = (Game.cookies < Game.cookiesPs * 60 * 30) ? ColorRed : ColorGreen; - const bakeberryFrag = document.createElement('span'); - bakeberryFrag.style.fontWeight = 'bold'; - bakeberryFrag.className = ColorTextPre + bakeberryColor; - bakeberryFrag.textContent = Beautify(Game.cookiesPs * 60 * 30); - section.appendChild(StatsListing('basic', 'Cookies required for max reward of Bakeberry: ', bakeberryFrag)); - - const chocorootColor = (Game.cookies < Game.cookiesPs * 60 * 3) ? ColorRed : ColorGreen; - const chocorootFrag = document.createElement('span'); - chocorootFrag.style.fontWeight = 'bold'; - chocorootFrag.className = ColorTextPre + chocorootColor; - chocorootFrag.textContent = Beautify(Game.cookiesPs * 60 * 3); - section.appendChild(StatsListing('basic', 'Cookies required for max reward of Chocoroot: ', chocorootFrag)); - - const queenbeetColor = (Game.cookies < Game.cookiesPs * 60 * 60) ? ColorRed : ColorGreen; - const queenbeetFrag = document.createElement('span'); - queenbeetFrag.style.fontWeight = 'bold'; - queenbeetFrag.className = ColorTextPre + queenbeetColor; - queenbeetFrag.textContent = Beautify(Game.cookiesPs * 60 * 60); - section.appendChild(StatsListing('basic', 'Cookies required for max reward of Queenbeet: ', queenbeetFrag)); - - const duketaterColor = (Game.cookies < Game.cookiesPs * 60 * 120) ? ColorRed : ColorGreen; - const duketaterFrag = document.createElement('span'); - duketaterFrag.style.fontWeight = 'bold'; - duketaterFrag.className = ColorTextPre + duketaterColor; - duketaterFrag.textContent = Beautify(Game.cookiesPs * 60 * 120); - section.appendChild(StatsListing('basic', 'Cookies required for max reward of Duketater: ', duketaterFrag)); - return section; + const section = document.createElement('div'); + section.className = 'CMStatsGardenSection'; + + const bakeberryColor = + Game.cookies < Game.cookiesPs * 60 * 30 ? ColorRed : ColorGreen; + const bakeberryFrag = document.createElement('span'); + bakeberryFrag.style.fontWeight = 'bold'; + bakeberryFrag.className = ColorTextPre + bakeberryColor; + bakeberryFrag.textContent = Beautify(Game.cookiesPs * 60 * 30); + section.appendChild( + StatsListing( + 'basic', + 'Cookies required for max reward of Bakeberry: ', + bakeberryFrag, + ), + ); + + const chocorootColor = + Game.cookies < Game.cookiesPs * 60 * 3 ? ColorRed : ColorGreen; + const chocorootFrag = document.createElement('span'); + chocorootFrag.style.fontWeight = 'bold'; + chocorootFrag.className = ColorTextPre + chocorootColor; + chocorootFrag.textContent = Beautify(Game.cookiesPs * 60 * 3); + section.appendChild( + StatsListing( + 'basic', + 'Cookies required for max reward of Chocoroot: ', + chocorootFrag, + ), + ); + + const queenbeetColor = + Game.cookies < Game.cookiesPs * 60 * 60 ? ColorRed : ColorGreen; + const queenbeetFrag = document.createElement('span'); + queenbeetFrag.style.fontWeight = 'bold'; + queenbeetFrag.className = ColorTextPre + queenbeetColor; + queenbeetFrag.textContent = Beautify(Game.cookiesPs * 60 * 60); + section.appendChild( + StatsListing( + 'basic', + 'Cookies required for max reward of Queenbeet: ', + queenbeetFrag, + ), + ); + + const duketaterColor = + Game.cookies < Game.cookiesPs * 60 * 120 ? ColorRed : ColorGreen; + const duketaterFrag = document.createElement('span'); + duketaterFrag.style.fontWeight = 'bold'; + duketaterFrag.className = ColorTextPre + duketaterColor; + duketaterFrag.textContent = Beautify(Game.cookiesPs * 60 * 120); + section.appendChild( + StatsListing( + 'basic', + 'Cookies required for max reward of Duketater: ', + duketaterFrag, + ), + ); + return section; } /** @@ -272,78 +567,175 @@ export function GardenSection() { * @returns {object} section The object contating the Prestige section */ export function PrestigeSection() { - const section = document.createElement('div'); - section.className = 'CMStatsPrestigeSection'; - - const possiblePresMax = Math.floor(Game.HowMuchPrestige(CacheRealCookiesEarned - + Game.cookiesReset + CacheWrinklersTotal - + (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg') ? CacheLastChoEgg : 0))); - section.appendChild(StatsListing('withTooltip', 'Prestige Level (CUR / MAX)', document.createTextNode(`${Beautify(Game.prestige)} / ${Beautify(possiblePresMax)}`), 'PrestMaxTooltipPlaceholder')); - - const neededCook = Game.HowManyCookiesReset(possiblePresMax + 1) - (CacheRealCookiesEarned + Game.cookiesReset + CacheWrinklersTotal + ((Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg') ? CacheLastChoEgg : 0) ? CacheLastChoEgg : 0)); - const cookiesNextFrag = document.createDocumentFragment(); - cookiesNextFrag.appendChild(document.createTextNode(Beautify(neededCook))); - const cookiesNextSmall = document.createElement('small'); - cookiesNextSmall.textContent = ` (${FormatTime(neededCook / CacheAvgCPSWithChoEgg, 1)})`; - cookiesNextFrag.appendChild(cookiesNextSmall); - section.appendChild(StatsListing('withTooltip', 'Cookies To Next Level', cookiesNextFrag, 'NextPrestTooltipPlaceholder')); - - section.appendChild(StatsListing('withTooltip', 'Heavenly Chips (CUR / MAX)', document.createTextNode(`${Beautify(Game.heavenlyChips)} / ${Beautify((possiblePresMax - Game.prestige) + Game.heavenlyChips)}`), 'HeavenChipMaxTooltipPlaceholder')); - - section.appendChild(StatsListing('basic', 'Heavenly Chips Per Second (last 5 seconds)', document.createTextNode(Beautify(CacheHCPerSecond, 2)))); - - const HCTarget = Number(CMOptions.HeavenlyChipsTarget); - if (!Number.isNaN(HCTarget)) { - const CookiesTillTarget = HCTarget - Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)); - if (CookiesTillTarget > 0) { - section.appendChild(StatsListing('basic', 'Heavenly Chips To Target Set In Settings (CUR)', document.createTextNode(Beautify(CookiesTillTarget)))); - section.appendChild(StatsListing('basic', 'Time To Target (CUR, Current 5 Second Average)', document.createTextNode(FormatTime(CookiesTillTarget / CacheHCPerSecond)))); - } - } - - const resetBonus = ResetBonus(possiblePresMax); - const resetFrag = document.createDocumentFragment(); - resetFrag.appendChild(document.createTextNode(Beautify(resetBonus))); - const increase = Math.round(resetBonus / Game.cookiesPs * 10000); - if (Number.isFinite(increase) && increase !== 0) { - const resetSmall = document.createElement('small'); - resetSmall.textContent = ` (${increase / 100}% of income)`; - resetFrag.appendChild(resetSmall); - } - section.appendChild(StatsListing('withTooltip', 'Reset Bonus Income', resetFrag, 'ResetTooltipPlaceholder')); - - const currentPrestige = Math.floor(Game.HowMuchPrestige(Game.cookiesReset)); - const willHave = Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)); - const willGet = willHave - currentPrestige; - if (!Game.Has('Lucky digit')) { - let delta7 = 7 - (willHave % 10); - if (delta7 < 0) delta7 += 10; - const next7Reset = willGet + delta7; - const next7Total = willHave + delta7; - const frag7 = document.createDocumentFragment(); - frag7.appendChild(document.createTextNode(`${next7Total.toLocaleString()} / ${next7Reset.toLocaleString()} (+${delta7})`)); - section.appendChild(StatsListing('basic', 'Next "Lucky Digit" (total / reset)', frag7)); - } - - if (!Game.Has('Lucky number')) { - let delta777 = 777 - (willHave % 1000); - if (delta777 < 0) delta777 += 1000; - const next777Reset = willGet + delta777; - const next777Total = willHave + delta777; - const frag777 = document.createDocumentFragment(); - frag777.appendChild(document.createTextNode(`${next777Total.toLocaleString()} / ${next777Reset.toLocaleString()} (+${delta777})`)); - section.appendChild(StatsListing('basic', 'Next "Lucky Number" (total / reset)', frag777)); - } - - if (!Game.Has('Lucky payout')) { - let delta777777 = 777777 - (willHave % 1000000); - if (delta777777 < 0) delta777777 += 1000000; - const next777777Reset = willGet + delta777777; - const next777777Total = willHave + delta777777; - const frag777777 = document.createDocumentFragment(); - frag777777.appendChild(document.createTextNode(`${next777777Total.toLocaleString()} / ${next777777Reset.toLocaleString()} (+${delta777777})`)); - section.appendChild(StatsListing('basic', 'Next "Lucky Payout" (total / reset)', frag777777)); - } - - return section; + const section = document.createElement('div'); + section.className = 'CMStatsPrestigeSection'; + + const possiblePresMax = Math.floor( + Game.HowMuchPrestige( + CacheRealCookiesEarned + + Game.cookiesReset + + CacheWrinklersTotal + + (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg') + ? CacheLastChoEgg + : 0), + ), + ); + section.appendChild( + StatsListing( + 'withTooltip', + 'Prestige Level (CUR / MAX)', + document.createTextNode( + `${Beautify(Game.prestige)} / ${Beautify(possiblePresMax)}`, + ), + 'PrestMaxTooltipPlaceholder', + ), + ); + + const neededCook = + Game.HowManyCookiesReset(possiblePresMax + 1) - + (CacheRealCookiesEarned + + Game.cookiesReset + + CacheWrinklersTotal + + (( + Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg') + ? CacheLastChoEgg + : 0 + ) + ? CacheLastChoEgg + : 0)); + const cookiesNextFrag = document.createDocumentFragment(); + cookiesNextFrag.appendChild(document.createTextNode(Beautify(neededCook))); + const cookiesNextSmall = document.createElement('small'); + cookiesNextSmall.textContent = ` (${FormatTime( + neededCook / CacheAvgCPSWithChoEgg, + 1, + )})`; + cookiesNextFrag.appendChild(cookiesNextSmall); + section.appendChild( + StatsListing( + 'withTooltip', + 'Cookies To Next Level', + cookiesNextFrag, + 'NextPrestTooltipPlaceholder', + ), + ); + + section.appendChild( + StatsListing( + 'withTooltip', + 'Heavenly Chips (CUR / MAX)', + document.createTextNode( + `${Beautify(Game.heavenlyChips)} / ${Beautify( + possiblePresMax - Game.prestige + Game.heavenlyChips, + )}`, + ), + 'HeavenChipMaxTooltipPlaceholder', + ), + ); + + section.appendChild( + StatsListing( + 'basic', + 'Heavenly Chips Per Second (last 5 seconds)', + document.createTextNode(Beautify(CacheHCPerSecond, 2)), + ), + ); + + const HCTarget = Number(CMOptions.HeavenlyChipsTarget); + if (!Number.isNaN(HCTarget)) { + const CookiesTillTarget = + HCTarget - + Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)); + if (CookiesTillTarget > 0) { + section.appendChild( + StatsListing( + 'basic', + 'Heavenly Chips To Target Set In Settings (CUR)', + document.createTextNode(Beautify(CookiesTillTarget)), + ), + ); + section.appendChild( + StatsListing( + 'basic', + 'Time To Target (CUR, Current 5 Second Average)', + document.createTextNode( + FormatTime(CookiesTillTarget / CacheHCPerSecond), + ), + ), + ); + } + } + + const resetBonus = ResetBonus(possiblePresMax); + const resetFrag = document.createDocumentFragment(); + resetFrag.appendChild(document.createTextNode(Beautify(resetBonus))); + const increase = Math.round((resetBonus / Game.cookiesPs) * 10000); + if (Number.isFinite(increase) && increase !== 0) { + const resetSmall = document.createElement('small'); + resetSmall.textContent = ` (${increase / 100}% of income)`; + resetFrag.appendChild(resetSmall); + } + section.appendChild( + StatsListing( + 'withTooltip', + 'Reset Bonus Income', + resetFrag, + 'ResetTooltipPlaceholder', + ), + ); + + const currentPrestige = Math.floor(Game.HowMuchPrestige(Game.cookiesReset)); + const willHave = Math.floor( + Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned), + ); + const willGet = willHave - currentPrestige; + if (!Game.Has('Lucky digit')) { + let delta7 = 7 - (willHave % 10); + if (delta7 < 0) delta7 += 10; + const next7Reset = willGet + delta7; + const next7Total = willHave + delta7; + const frag7 = document.createDocumentFragment(); + frag7.appendChild( + document.createTextNode( + `${next7Total.toLocaleString()} / ${next7Reset.toLocaleString()} (+${delta7})`, + ), + ); + section.appendChild( + StatsListing('basic', 'Next "Lucky Digit" (total / reset)', frag7), + ); + } + + if (!Game.Has('Lucky number')) { + let delta777 = 777 - (willHave % 1000); + if (delta777 < 0) delta777 += 1000; + const next777Reset = willGet + delta777; + const next777Total = willHave + delta777; + const frag777 = document.createDocumentFragment(); + frag777.appendChild( + document.createTextNode( + `${next777Total.toLocaleString()} / ${next777Reset.toLocaleString()} (+${delta777})`, + ), + ); + section.appendChild( + StatsListing('basic', 'Next "Lucky Number" (total / reset)', frag777), + ); + } + + if (!Game.Has('Lucky payout')) { + let delta777777 = 777777 - (willHave % 1000000); + if (delta777777 < 0) delta777777 += 1000000; + const next777777Reset = willGet + delta777777; + const next777777Total = willHave + delta777777; + const frag777777 = document.createDocumentFragment(); + frag777777.appendChild( + document.createTextNode( + `${next777777Total.toLocaleString()} / ${next777777Reset.toLocaleString()} (+${delta777777})`, + ), + ); + section.appendChild( + StatsListing('basic', 'Next "Lucky Payout" (total / reset)', frag777777), + ); + } + + return section; } diff --git a/src/Disp/MenuSections/InfoPage.js b/src/Disp/MenuSections/InfoPage.js index 653edac4..3c1cd3b3 100644 --- a/src/Disp/MenuSections/InfoPage.js +++ b/src/Disp/MenuSections/InfoPage.js @@ -9,34 +9,37 @@ import { LatestReleaseNotes, ModDescription } from '../../Data/Moddata'; * @param {object} title On object that includes the title of the menu */ export default function AddMenuInfo(title) { - const info = document.createElement('div'); - info.className = 'subsection'; + const info = document.createElement('div'); + info.className = 'subsection'; - const span = document.createElement('span'); - span.style.cursor = 'pointer'; - span.style.display = 'inline-block'; - span.style.height = '14px'; - span.style.width = '14px'; - span.style.borderRadius = '7px'; - span.style.textAlign = 'center'; - span.style.backgroundColor = '#C0C0C0'; - span.style.color = 'black'; - span.style.fontSize = '13px'; - span.style.verticalAlign = 'middle'; - span.textContent = CMOptions.Header.InfoTab ? '-' : '+'; - span.onclick = function () { ToggleHeader('InfoTab'); Game.UpdateMenu(); }; - title.appendChild(span); - info.appendChild(title); + const span = document.createElement('span'); + span.style.cursor = 'pointer'; + span.style.display = 'inline-block'; + span.style.height = '14px'; + span.style.width = '14px'; + span.style.borderRadius = '7px'; + span.style.textAlign = 'center'; + span.style.backgroundColor = '#C0C0C0'; + span.style.color = 'black'; + span.style.fontSize = '13px'; + span.style.verticalAlign = 'middle'; + span.textContent = CMOptions.Header.InfoTab ? '-' : '+'; + span.onclick = function () { + ToggleHeader('InfoTab'); + Game.UpdateMenu(); + }; + title.appendChild(span); + info.appendChild(title); - if (CMOptions.Header.InfoTab) { - const description = document.createElement('div'); - description.innerHTML = ModDescription; - info.appendChild(description); - const notes = document.createElement('div'); - notes.innerHTML = LatestReleaseNotes; - info.appendChild(notes); - } + if (CMOptions.Header.InfoTab) { + const description = document.createElement('div'); + description.innerHTML = ModDescription; + info.appendChild(description); + const notes = document.createElement('div'); + notes.innerHTML = LatestReleaseNotes; + info.appendChild(notes); + } - const menu = l('menu').children[1]; - menu.insertBefore(info, menu.children[1]); + const menu = l('menu').children[1]; + menu.insertBefore(info, menu.children[1]); } diff --git a/src/Disp/MenuSections/Refreshmenu.js b/src/Disp/MenuSections/Refreshmenu.js index 445f9a3c..492fb661 100644 --- a/src/Disp/MenuSections/Refreshmenu.js +++ b/src/Disp/MenuSections/Refreshmenu.js @@ -5,5 +5,11 @@ import { CMOptions } from '../../Config/VariablesAndData'; * It is called by CM.Disp.Draw() */ export default function RefreshMenu() { - if (CMOptions.UpStats && Game.onMenu === 'stats' && (Game.drawT - 1) % (Game.fps * 5) !== 0 && (Game.drawT - 1) % Game.fps === 0) Game.UpdateMenu(); + if ( + CMOptions.UpStats && + Game.onMenu === 'stats' && + (Game.drawT - 1) % (Game.fps * 5) !== 0 && + (Game.drawT - 1) % Game.fps === 0 + ) + Game.UpdateMenu(); } diff --git a/src/Disp/MenuSections/SettingsPage.js b/src/Disp/MenuSections/SettingsPage.js index 2f1dd485..669b0c99 100644 --- a/src/Disp/MenuSections/SettingsPage.js +++ b/src/Disp/MenuSections/SettingsPage.js @@ -1,12 +1,21 @@ /** Functions related to the Options/Preferences page */ import jscolor, * as JsColor from '@eastdesire/jscolor'; -import { LoadConfig, SaveConfig } from '../../Config/SaveLoadReload/SaveLoadReloadSettings'; import { - ConfigPrefix, ToggleConfig, ToggleConfigVolume, ToggleHeader, + LoadConfig, + SaveConfig, +} from '../../Config/SaveLoadReload/SaveLoadReloadSettings'; +import { + ConfigPrefix, + ToggleConfig, + ToggleConfigVolume, + ToggleHeader, } from '../../Config/ToggleSetting'; import { CMOptions } from '../../Config/VariablesAndData'; -import { ConfigGroups, ConfigGroupsNotification } from '../../Data/Sectionheaders'; +import { + ConfigGroups, + ConfigGroupsNotification, +} from '../../Data/Sectionheaders'; import Config from '../../Data/SettingsData'; import ConfigDefault from '../../Data/SettingsDefault'; import RefreshScale from '../HelperFunctions/RefreshScale'; @@ -20,27 +29,30 @@ import { Colors } from '../VariablesAndData'; * @returns {object} div The header object */ function CreatePrefHeader(config, text) { - const div = document.createElement('div'); - div.className = 'title'; + const div = document.createElement('div'); + div.className = 'title'; - div.style.opacity = '0.7'; - div.style.fontSize = '17px'; - div.appendChild(document.createTextNode(`${text} `)); - const span = document.createElement('span'); // Creates the +/- button - span.style.cursor = 'pointer'; - span.style.display = 'inline-block'; - span.style.height = '14px'; - span.style.width = '14px'; - span.style.borderRadius = '7px'; - span.style.textAlign = 'center'; - span.style.backgroundColor = '#C0C0C0'; - span.style.color = 'black'; - span.style.fontSize = '13px'; - span.style.verticalAlign = 'middle'; - span.textContent = CMOptions.Header[config] ? '-' : '+'; - span.onclick = function () { ToggleHeader(config); Game.UpdateMenu(); }; - div.appendChild(span); - return div; + div.style.opacity = '0.7'; + div.style.fontSize = '17px'; + div.appendChild(document.createTextNode(`${text} `)); + const span = document.createElement('span'); // Creates the +/- button + span.style.cursor = 'pointer'; + span.style.display = 'inline-block'; + span.style.height = '14px'; + span.style.width = '14px'; + span.style.borderRadius = '7px'; + span.style.textAlign = 'center'; + span.style.backgroundColor = '#C0C0C0'; + span.style.color = 'black'; + span.style.fontSize = '13px'; + span.style.verticalAlign = 'middle'; + span.textContent = CMOptions.Header[config] ? '-' : '+'; + span.onclick = function () { + ToggleHeader(config); + Game.UpdateMenu(); + }; + div.appendChild(span); + return div; } /** @@ -49,129 +61,150 @@ function CreatePrefHeader(config, text) { * @returns {object} div The option object */ function CreatePrefOption(config) { - const div = document.createElement('div'); - div.className = 'listing'; - if (Config[config].type === 'bool') { - const a = document.createElement('a'); - if (Config[config].toggle && CMOptions[config] === 0) { - a.className = 'option off'; - } else { - a.className = 'option'; - } - a.id = ConfigPrefix + config; - a.onclick = function () { ToggleConfig(config); }; - a.textContent = Config[config].label[CMOptions[config]]; - div.appendChild(a); - const label = document.createElement('label'); - label.textContent = Config[config].desc; - div.appendChild(label); - return div; - } if (Config[config].type === 'vol') { - const volume = document.createElement('div'); - volume.className = 'sliderBox'; - const title = document.createElement('div'); - title.style.float = 'left'; - title.innerHTML = Config[config].desc; - volume.appendChild(title); - const percent = document.createElement('div'); - percent.id = `slider${config}right`; - percent.style.float = 'right'; - percent.innerHTML = `${CMOptions[config]}%`; - volume.appendChild(percent); - const slider = document.createElement('input'); - slider.className = 'slider'; - slider.id = `slider${config}`; - slider.style.clear = 'both'; - slider.type = 'range'; - slider.min = '0'; - slider.max = '100'; - slider.step = '1'; - slider.value = CMOptions[config]; - slider.oninput = function () { ToggleConfigVolume(config); }; - slider.onchange = function () { ToggleConfigVolume(config); }; - volume.appendChild(slider); - div.appendChild(volume); - return div; - } if (Config[config].type === 'url') { - const span = document.createElement('span'); - span.className = 'option'; - span.textContent = `${Config[config].label} `; - div.appendChild(span); - const input = document.createElement('input'); - input.id = ConfigPrefix + config; - input.className = 'option'; - input.type = 'text'; - input.readOnly = true; - input.setAttribute('value', CMOptions[config]); - input.style.width = '300px'; - div.appendChild(input); - div.appendChild(document.createTextNode(' ')); - const inputPrompt = document.createElement('input'); - inputPrompt.id = `${ConfigPrefix + config}Prompt`; - inputPrompt.className = 'option'; - inputPrompt.type = 'text'; - inputPrompt.setAttribute('value', CMOptions[config]); - const a = document.createElement('a'); - a.className = 'option'; - a.onclick = function () { - Game.Prompt(inputPrompt.outerHTML, [['Save', function () { CMOptions[`${config}`] = l(`${ConfigPrefix}${config}Prompt`).value; SaveConfig(); Game.ClosePrompt(); Game.UpdateMenu(); }], 'Cancel']); - }; - a.textContent = 'Edit'; - div.appendChild(a); - const label = document.createElement('label'); - label.textContent = Config[config].desc; - div.appendChild(label); - return div; - } if (Config[config].type === 'color') { - div.className = ''; - for (let i = 0; i < Colors.length; i++) { - const innerDiv = document.createElement('div'); - innerDiv.className = 'listing'; - const input = document.createElement('input'); - input.id = Colors[i]; - input.style.width = '65px'; - input.setAttribute('value', CMOptions.Colors[Colors[i]]); - innerDiv.appendChild(input); - const change = function () { - CMOptions.Colors[this.targetElement.id] = this.toHEXString(); - UpdateColors(); - SaveConfig(); - Game.UpdateMenu(); - }; - new JsColor(input, { hash: true, position: 'right', onInput: change }); - const label = document.createElement('label'); - label.textContent = Config.Colors.desc[Colors[i]]; - innerDiv.appendChild(label); - div.appendChild(innerDiv); - } - jscolor.init(); - return div; - } if (Config[config].type === 'numscale') { - const span = document.createElement('span'); - span.className = 'option'; - span.textContent = `${Config[config].label} `; - div.appendChild(span); - const input = document.createElement('input'); - input.id = ConfigPrefix + config; - input.className = 'option'; - input.type = 'number'; - input.value = (CMOptions[config]); - input.min = Config[config].min; - input.max = Config[config].max; - input.oninput = function () { - if (this.value > this.max) console.log('TEST'); - CMOptions[config] = this.value; - SaveConfig(); - RefreshScale(); - }; - div.appendChild(input); - div.appendChild(document.createTextNode(' ')); - const label = document.createElement('label'); - label.textContent = Config[config].desc; - div.appendChild(label); - return div; - } - return div; + const div = document.createElement('div'); + div.className = 'listing'; + if (Config[config].type === 'bool') { + const a = document.createElement('a'); + if (Config[config].toggle && CMOptions[config] === 0) { + a.className = 'option off'; + } else { + a.className = 'option'; + } + a.id = ConfigPrefix + config; + a.onclick = function () { + ToggleConfig(config); + }; + a.textContent = Config[config].label[CMOptions[config]]; + div.appendChild(a); + const label = document.createElement('label'); + label.textContent = Config[config].desc; + div.appendChild(label); + return div; + } + if (Config[config].type === 'vol') { + const volume = document.createElement('div'); + volume.className = 'sliderBox'; + const title = document.createElement('div'); + title.style.float = 'left'; + title.innerHTML = Config[config].desc; + volume.appendChild(title); + const percent = document.createElement('div'); + percent.id = `slider${config}right`; + percent.style.float = 'right'; + percent.innerHTML = `${CMOptions[config]}%`; + volume.appendChild(percent); + const slider = document.createElement('input'); + slider.className = 'slider'; + slider.id = `slider${config}`; + slider.style.clear = 'both'; + slider.type = 'range'; + slider.min = '0'; + slider.max = '100'; + slider.step = '1'; + slider.value = CMOptions[config]; + slider.oninput = function () { + ToggleConfigVolume(config); + }; + slider.onchange = function () { + ToggleConfigVolume(config); + }; + volume.appendChild(slider); + div.appendChild(volume); + return div; + } + if (Config[config].type === 'url') { + const span = document.createElement('span'); + span.className = 'option'; + span.textContent = `${Config[config].label} `; + div.appendChild(span); + const input = document.createElement('input'); + input.id = ConfigPrefix + config; + input.className = 'option'; + input.type = 'text'; + input.readOnly = true; + input.setAttribute('value', CMOptions[config]); + input.style.width = '300px'; + div.appendChild(input); + div.appendChild(document.createTextNode(' ')); + const inputPrompt = document.createElement('input'); + inputPrompt.id = `${ConfigPrefix + config}Prompt`; + inputPrompt.className = 'option'; + inputPrompt.type = 'text'; + inputPrompt.setAttribute('value', CMOptions[config]); + const a = document.createElement('a'); + a.className = 'option'; + a.onclick = function () { + Game.Prompt(inputPrompt.outerHTML, [ + [ + 'Save', + function () { + CMOptions[`${config}`] = l(`${ConfigPrefix}${config}Prompt`).value; + SaveConfig(); + Game.ClosePrompt(); + Game.UpdateMenu(); + }, + ], + 'Cancel', + ]); + }; + a.textContent = 'Edit'; + div.appendChild(a); + const label = document.createElement('label'); + label.textContent = Config[config].desc; + div.appendChild(label); + return div; + } + if (Config[config].type === 'color') { + div.className = ''; + for (let i = 0; i < Colors.length; i++) { + const innerDiv = document.createElement('div'); + innerDiv.className = 'listing'; + const input = document.createElement('input'); + input.id = Colors[i]; + input.style.width = '65px'; + input.setAttribute('value', CMOptions.Colors[Colors[i]]); + innerDiv.appendChild(input); + const change = function () { + CMOptions.Colors[this.targetElement.id] = this.toHEXString(); + UpdateColors(); + SaveConfig(); + Game.UpdateMenu(); + }; + new JsColor(input, { hash: true, position: 'right', onInput: change }); + const label = document.createElement('label'); + label.textContent = Config.Colors.desc[Colors[i]]; + innerDiv.appendChild(label); + div.appendChild(innerDiv); + } + jscolor.init(); + return div; + } + if (Config[config].type === 'numscale') { + const span = document.createElement('span'); + span.className = 'option'; + span.textContent = `${Config[config].label} `; + div.appendChild(span); + const input = document.createElement('input'); + input.id = ConfigPrefix + config; + input.className = 'option'; + input.type = 'number'; + input.value = CMOptions[config]; + input.min = Config[config].min; + input.max = Config[config].max; + input.oninput = function () { + if (this.value > this.max) console.log('TEST'); + CMOptions[config] = this.value; + SaveConfig(); + RefreshScale(); + }; + div.appendChild(input); + div.appendChild(document.createTextNode(' ')); + const label = document.createElement('label'); + label.textContent = Config[config].desc; + div.appendChild(label); + return div; + } + return div; } /** @@ -180,42 +213,55 @@ function CreatePrefOption(config) { * @param {object} title On object that includes the title of the menu */ export default function AddMenuPref(title) { - const frag = document.createDocumentFragment(); - frag.appendChild(title); + const frag = document.createDocumentFragment(); + frag.appendChild(title); - for (const group of Object.keys(ConfigGroups)) { - const groupObject = CreatePrefHeader(group, ConfigGroups[group]); // (group, display-name of group) - frag.appendChild(groupObject); - if (CMOptions.Header[group]) { // 0 is show, 1 is collapsed - // Make sub-sections of Notification section - if (group === 'Notification') { - for (const subGroup of Object.keys(ConfigGroupsNotification)) { - const subGroupObject = CreatePrefHeader(subGroup, ConfigGroupsNotification[subGroup]); // (group, display-name of group) - subGroupObject.style.fontSize = '15px'; - subGroupObject.style.opacity = '0.5'; - frag.appendChild(subGroupObject); - if (CMOptions.Header[subGroup]) { - for (const option in Config) { - if (Config[option].group === subGroup) frag.appendChild(CreatePrefOption(option)); - } - } - } - } else { - for (const option of Object.keys(Config)) { - if (Config[option].group === group) frag.appendChild(CreatePrefOption(option)); - } - } - } - } + for (const group of Object.keys(ConfigGroups)) { + const groupObject = CreatePrefHeader(group, ConfigGroups[group]); // (group, display-name of group) + frag.appendChild(groupObject); + if (CMOptions.Header[group]) { + // 0 is show, 1 is collapsed + // Make sub-sections of Notification section + if (group === 'Notification') { + for (const subGroup of Object.keys(ConfigGroupsNotification)) { + const subGroupObject = CreatePrefHeader( + subGroup, + ConfigGroupsNotification[subGroup], + ); // (group, display-name of group) + subGroupObject.style.fontSize = '15px'; + subGroupObject.style.opacity = '0.5'; + frag.appendChild(subGroupObject); + if (CMOptions.Header[subGroup]) { + for (const option in Config) { + if (Config[option].group === subGroup) + frag.appendChild(CreatePrefOption(option)); + } + } + } + } else { + for (const option of Object.keys(Config)) { + if (Config[option].group === group) + frag.appendChild(CreatePrefOption(option)); + } + } + } + } - const resDef = document.createElement('div'); - resDef.className = 'listing'; - const resDefBut = document.createElement('a'); - resDefBut.className = 'option'; - resDefBut.onclick = function () { LoadConfig(ConfigDefault); }; - resDefBut.textContent = 'Restore Default'; - resDef.appendChild(resDefBut); - frag.appendChild(resDef); + const resDef = document.createElement('div'); + resDef.className = 'listing'; + const resDefBut = document.createElement('a'); + resDefBut.className = 'option'; + resDefBut.onclick = function () { + LoadConfig(ConfigDefault); + }; + resDefBut.textContent = 'Restore Default'; + resDef.appendChild(resDefBut); + frag.appendChild(resDef); - l('menu').childNodes[2].insertBefore(frag, l('menu').childNodes[2].childNodes[l('menu').childNodes[2].childNodes.length - 1]); + l('menu').childNodes[2].insertBefore( + frag, + l('menu').childNodes[2].childNodes[ + l('menu').childNodes[2].childNodes.length - 1 + ], + ); } diff --git a/src/Disp/Notifications/Flash.js b/src/Disp/Notifications/Flash.js index d1856812..ad258dab 100644 --- a/src/Disp/Notifications/Flash.js +++ b/src/Disp/Notifications/Flash.js @@ -9,17 +9,26 @@ import { isInitializing } from '../../InitSaveLoad/Variables'; * @param {string} config The setting in CM.Options that is checked before creating the flash */ export default function Flash(mode, config) { - // The arguments check makes the sound not play upon initialization of the mod - if ((CMOptions[config] === 1 && mode === 3 && isInitializing === false) || mode === 1) { - l('CMWhiteScreen').style.opacity = '0.5'; - if (mode === 3) { - l('CMWhiteScreen').style.display = 'inline'; - setTimeout(function () { Flash(2, config); }, 1000 / Game.fps); - } else { - setTimeout(function () { Flash(0, config); }, 1000 / Game.fps); - } - } else if (mode === 2) { - l('CMWhiteScreen').style.opacity = '1'; - setTimeout(function () { Flash(1, config); }, 1000 / Game.fps); - } else if (mode === 0) l('CMWhiteScreen').style.display = 'none'; + // The arguments check makes the sound not play upon initialization of the mod + if ( + (CMOptions[config] === 1 && mode === 3 && isInitializing === false) || + mode === 1 + ) { + l('CMWhiteScreen').style.opacity = '0.5'; + if (mode === 3) { + l('CMWhiteScreen').style.display = 'inline'; + setTimeout(function () { + Flash(2, config); + }, 1000 / Game.fps); + } else { + setTimeout(function () { + Flash(0, config); + }, 1000 / Game.fps); + } + } else if (mode === 2) { + l('CMWhiteScreen').style.opacity = '1'; + setTimeout(function () { + Flash(1, config); + }, 1000 / Game.fps); + } else if (mode === 0) l('CMWhiteScreen').style.display = 'none'; } diff --git a/src/Disp/Notifications/Notification.js b/src/Disp/Notifications/Notification.js index 3ef602e8..7f64697b 100644 --- a/src/Disp/Notifications/Notification.js +++ b/src/Disp/Notifications/Notification.js @@ -11,9 +11,13 @@ import { isInitializing } from '../../InitSaveLoad/Variables'; * @param {string} message The text of the to-be created notifications */ export default function Notification(notifyConfig, title, message) { - // The arguments check makes the sound not play upon initialization of the mod - if (CMOptions[notifyConfig] === 1 && document.visibilityState === 'hidden' && isInitializing === false) { - const CookieIcon = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; - new Notification(title, { body: message, badge: CookieIcon }); - } + // The arguments check makes the sound not play upon initialization of the mod + if ( + CMOptions[notifyConfig] === 1 && + document.visibilityState === 'hidden' && + isInitializing === false + ) { + const CookieIcon = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; + new Notification(title, { body: message, badge: CookieIcon }); + } } diff --git a/src/Disp/Notifications/Sound.js b/src/Disp/Notifications/Sound.js index 0d0f9d14..e4063925 100644 --- a/src/Disp/Notifications/Sound.js +++ b/src/Disp/Notifications/Sound.js @@ -9,12 +9,13 @@ import { isInitializing } from '../../InitSaveLoad/Variables'; * @param {string} volConfig The setting in CM.Options that is checked to determine volume */ export default function PlaySound(url, sndConfig, volConfig) { - // The arguments check makes the sound not play upon initialization of the mod - if (CMOptions[sndConfig] === 1 && isInitializing === false) { - // eslint-disable-next-line new-cap - const sound = new realAudio(url); - if (CMOptions.GeneralSound) sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100); - else sound.volume = (CMOptions[volConfig] / 100); - sound.play(); - } + // The arguments check makes the sound not play upon initialization of the mod + if (CMOptions[sndConfig] === 1 && isInitializing === false) { + // eslint-disable-next-line new-cap + const sound = new realAudio(url); + if (CMOptions.GeneralSound) + sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100); + else sound.volume = CMOptions[volConfig] / 100; + sound.play(); + } } diff --git a/src/Disp/TabTitle/FavIcon.js b/src/Disp/TabTitle/FavIcon.js index dcecaba3..f80bc243 100644 --- a/src/Disp/TabTitle/FavIcon.js +++ b/src/Disp/TabTitle/FavIcon.js @@ -6,11 +6,11 @@ import { LastGoldenCookieState } from '../../Main/VariablesAndData'; * This function creates the Favicon, it is called by CM.Main.DelayInit() */ export function CreateFavicon() { - const Favicon = document.createElement('link'); - Favicon.id = 'CMFavicon'; - Favicon.rel = 'shortcut icon'; - Favicon.href = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; - document.getElementsByTagName('head')[0].appendChild(Favicon); + const Favicon = document.createElement('link'); + Favicon.id = 'CMFavicon'; + Favicon.rel = 'shortcut icon'; + Favicon.href = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; + document.getElementsByTagName('head')[0].appendChild(Favicon); } /** @@ -18,8 +18,14 @@ export function CreateFavicon() { * By relying on CM.Cache.spawnedGoldenShimmer it only changes for non-user spawned cookie */ export function UpdateFavicon() { - if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) { - if (CacheSpawnedGoldenShimmer.wrath) l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico'; - else l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico'; - } else l('CMFavicon').href = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; + if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) { + if (CacheSpawnedGoldenShimmer.wrath) + l('CMFavicon').href = + 'https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico'; + else + l('CMFavicon').href = + 'https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico'; + } else + l('CMFavicon').href = + 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; } diff --git a/src/Disp/TabTitle/TabTitle.js b/src/Disp/TabTitle/TabTitle.js index ec227efe..8dd4259a 100644 --- a/src/Disp/TabTitle/TabTitle.js +++ b/src/Disp/TabTitle/TabTitle.js @@ -1,8 +1,14 @@ /** Functions related to updating the tab in the browser's tab-bar */ -import { CacheSeasonPopShimmer, CacheSpawnedGoldenShimmer } from '../../Cache/VariablesAndData'; +import { + CacheSeasonPopShimmer, + CacheSpawnedGoldenShimmer, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; -import { LastSeasonPopupState, LastTickerFortuneState } from '../../Main/VariablesAndData'; +import { + LastSeasonPopupState, + LastTickerFortuneState, +} from '../../Main/VariablesAndData'; import { Title } from '../VariablesAndData'; /** @@ -10,61 +16,78 @@ import { Title } from '../VariablesAndData'; * It is called on every loop by Game.Logic() which also sets CM.Disp.Title to Game.cookies */ export default function UpdateTitle() { - if (Game.OnAscend || CMOptions.Title === 0) { - document.title = Title; - } else if (CMOptions.Title === 1) { - let addFC = false; - let addSP = false; - let titleGC; - let titleFC; - let titleSP; + if (Game.OnAscend || CMOptions.Title === 0) { + document.title = Title; + } else if (CMOptions.Title === 1) { + let addFC = false; + let addSP = false; + let titleGC; + let titleFC; + let titleSP; - if (CacheSpawnedGoldenShimmer) { - if (CacheSpawnedGoldenShimmer.wrath) titleGC = `[W${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; - else titleGC = `[G${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; - } else if (!Game.Has('Golden switch [off]')) { - titleGC = `[${Number(l('CMTimerBarGCMinBar').textContent) < 0 ? '!' : ''}${Math.ceil((Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / Game.fps)}]`; - } else titleGC = '[GS]'; + if (CacheSpawnedGoldenShimmer) { + if (CacheSpawnedGoldenShimmer.wrath) + titleGC = `[W${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; + else + titleGC = `[G${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; + } else if (!Game.Has('Golden switch [off]')) { + titleGC = `[${ + Number(l('CMTimerBarGCMinBar').textContent) < 0 ? '!' : '' + }${Math.ceil( + (Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / + Game.fps, + )}]`; + } else titleGC = '[GS]'; - if (LastTickerFortuneState) { - addFC = true; - titleFC = '[F]'; - } + if (LastTickerFortuneState) { + addFC = true; + titleFC = '[F]'; + } - if (Game.season === 'christmas') { - addSP = true; - if (LastSeasonPopupState) titleSP = `[R${Math.ceil(CacheSeasonPopShimmer.life / Game.fps)}]`; - else { - titleSP = `[${Number(l('CMTimerBarRenMinBar').textContent) < 0 ? '!' : ''}${Math.ceil((Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / Game.fps)}]`; - } - } + if (Game.season === 'christmas') { + addSP = true; + if (LastSeasonPopupState) + titleSP = `[R${Math.ceil(CacheSeasonPopShimmer.life / Game.fps)}]`; + else { + titleSP = `[${ + Number(l('CMTimerBarRenMinBar').textContent) < 0 ? '!' : '' + }${Math.ceil( + (Game.shimmerTypes.reindeer.maxTime - + Game.shimmerTypes.reindeer.time) / + Game.fps, + )}]`; + } + } - // Remove previous timers and add current cookies - let str = Title; - if (str.charAt(0) === '[') { - str = str.substring(str.lastIndexOf(']') + 1); - } - document.title = `${titleGC + (addFC ? titleFC : '') + (addSP ? titleSP : '')} ${str}`; - } else if (CMOptions.Title === 2) { - let str = ''; - let spawn = false; - if (CacheSpawnedGoldenShimmer) { - spawn = true; - if (CacheSpawnedGoldenShimmer.wrath) str += `[W${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; - else str += `[G${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; - } - if (LastTickerFortuneState) { - spawn = true; - str += '[F]'; - } - if (Game.season === 'christmas' && LastSeasonPopupState) { - str += `[R${Math.ceil(CacheSeasonPopShimmer.life / Game.fps)}]`; - spawn = true; - } - if (spawn) str += ' - '; - let title = 'Cookie Clicker'; - if (Game.season === 'fools') title = 'Cookie Baker'; - str += title; - document.title = str; - } + // Remove previous timers and add current cookies + let str = Title; + if (str.charAt(0) === '[') { + str = str.substring(str.lastIndexOf(']') + 1); + } + document.title = `${ + titleGC + (addFC ? titleFC : '') + (addSP ? titleSP : '') + } ${str}`; + } else if (CMOptions.Title === 2) { + let str = ''; + let spawn = false; + if (CacheSpawnedGoldenShimmer) { + spawn = true; + if (CacheSpawnedGoldenShimmer.wrath) + str += `[W${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; + else str += `[G${Math.ceil(CacheSpawnedGoldenShimmer.life / Game.fps)}]`; + } + if (LastTickerFortuneState) { + spawn = true; + str += '[F]'; + } + if (Game.season === 'christmas' && LastSeasonPopupState) { + str += `[R${Math.ceil(CacheSeasonPopShimmer.life / Game.fps)}]`; + spawn = true; + } + if (spawn) str += ' - '; + let title = 'Cookie Clicker'; + if (Game.season === 'fools') title = 'Cookie Baker'; + str += title; + document.title = str; + } } diff --git a/src/Disp/Tooltips/AscendButton.js b/src/Disp/Tooltips/AscendButton.js index 8c0530ad..c4f6cc9c 100644 --- a/src/Disp/Tooltips/AscendButton.js +++ b/src/Disp/Tooltips/AscendButton.js @@ -1,4 +1,7 @@ -import { CacheHCPerSecond, CacheTimeTillNextPrestige } from '../../Cache/VariablesAndData'; +import { + CacheHCPerSecond, + CacheTimeTillNextPrestige, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import { Beautify } from '../BeautifyAndFormatting/BeautifyFormatting'; @@ -8,21 +11,53 @@ import { Beautify } from '../BeautifyAndFormatting/BeautifyFormatting'; * @returns {object} div An object containing the stylized header */ export default function ReplaceAscendTooltip() { - const ascendNowToGet = Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) - Math.floor(Game.HowMuchPrestige(Game.cookiesReset)); - const cookiesToNext = Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) + 1) - (Game.cookiesEarned + Game.cookiesReset); - const startDate = Game.sayTime(((Date.now() - Game.startDate) / 1000) * Game.fps, -1); - let str = ''; - str += `You've been on this run for ${startDate === '' ? 'not very long' : (startDate)}.
`; - str += '
'; - if (Game.prestige > 0) { - str += `Your prestige level is currently ${Beautify(Game.prestige)}.
(CpS +${Beautify(Game.prestige)}%)`; - str += '
'; - } - if (ascendNowToGet < 1) str += 'Ascending now would grant you no prestige.'; - else if (ascendNowToGet < 2) str += 'Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.'; - else str += `Ascending now would grant you
${Beautify(ascendNowToGet)} prestige levels (+${Beautify(ascendNowToGet)}% CpS)
and ${Beautify(ascendNowToGet)} heavenly chips to spend.`; - str += '
'; - str += `You need ${Beautify(cookiesToNext)} more cookies for the next level.
`; - str += `${CMOptions.TooltipAscendButton ? `
It takes ${CacheTimeTillNextPrestige} to reach the next level and you are making ${Beautify(CacheHCPerSecond, 2)} chips on average in the last 5 seconds.
` : ''}`; - l('ascendTooltip').innerHTML = str; + const ascendNowToGet = + Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) - + Math.floor(Game.HowMuchPrestige(Game.cookiesReset)); + const cookiesToNext = + Game.HowManyCookiesReset( + Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned)) + + 1, + ) - + (Game.cookiesEarned + Game.cookiesReset); + const startDate = Game.sayTime( + ((Date.now() - Game.startDate) / 1000) * Game.fps, + -1, + ); + let str = ''; + str += `You've been on this run for ${ + startDate === '' ? 'not very long' : startDate + }.
`; + str += '
'; + if (Game.prestige > 0) { + str += `Your prestige level is currently ${Beautify( + Game.prestige, + )}.
(CpS +${Beautify(Game.prestige)}%)`; + str += '
'; + } + if (ascendNowToGet < 1) str += 'Ascending now would grant you no prestige.'; + else if (ascendNowToGet < 2) + str += + 'Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.'; + else + str += `Ascending now would grant you
${Beautify( + ascendNowToGet, + )} prestige levels (+${Beautify( + ascendNowToGet, + )}% CpS)
and ${Beautify( + ascendNowToGet, + )} heavenly chips to spend.`; + str += '
'; + str += `You need ${Beautify( + cookiesToNext, + )} more cookies for the next level.
`; + str += `${ + CMOptions.TooltipAscendButton + ? `
It takes ${CacheTimeTillNextPrestige} to reach the next level and you are making ${Beautify( + CacheHCPerSecond, + 2, + )} chips on average in the last 5 seconds.
` + : '' + }`; + l('ascendTooltip').innerHTML = str; } diff --git a/src/Disp/Tooltips/CreateTooltip.js b/src/Disp/Tooltips/CreateTooltip.js index 607a1019..cb18d6a4 100644 --- a/src/Disp/Tooltips/CreateTooltip.js +++ b/src/Disp/Tooltips/CreateTooltip.js @@ -1,6 +1,13 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { - ColorTextPre, ColorBorderPre, ColorGray, ColorBlue, ColorRed, ColorYellow, ColorPurple, TooltipType, + ColorTextPre, + ColorBorderPre, + ColorGray, + ColorBlue, + ColorRed, + ColorYellow, + ColorPurple, + TooltipType, } from '../VariablesAndData'; /** Creates various sections of tooltips */ @@ -10,14 +17,14 @@ import { * @returns {object} div An object containing the stylized box */ export function TooltipCreateTooltipBox() { - l('tooltip').firstChild.style.paddingBottom = '4px'; // Sets padding on base-tooltip - const tooltipBox = document.createElement('div'); - tooltipBox.style.border = '1px solid'; - tooltipBox.style.padding = '4px'; - tooltipBox.style.margin = '0px -4px'; - tooltipBox.id = 'CMTooltipBorder'; - tooltipBox.className = ColorTextPre + ColorGray; - return tooltipBox; + l('tooltip').firstChild.style.paddingBottom = '4px'; // Sets padding on base-tooltip + const tooltipBox = document.createElement('div'); + tooltipBox.style.border = '1px solid'; + tooltipBox.style.padding = '4px'; + tooltipBox.style.margin = '0px -4px'; + tooltipBox.id = 'CMTooltipBorder'; + tooltipBox.className = ColorTextPre + ColorGray; + return tooltipBox; } /** @@ -26,12 +33,12 @@ export function TooltipCreateTooltipBox() { * @returns {object} div An object containing the stylized header */ export function TooltipCreateHeader(text) { - const div = document.createElement('div'); - div.style.fontWeight = 'bold'; - div.id = `${text}Title`; - div.className = ColorTextPre + ColorBlue; - div.textContent = text; - return div; + const div = document.createElement('div'); + div.style.fontWeight = 'bold'; + div.id = `${text}Title`; + div.className = ColorTextPre + ColorBlue; + div.textContent = text; + return div; } /** @@ -40,51 +47,105 @@ export function TooltipCreateHeader(text) { * @returns {object} TooltipWarn The Warnings-tooltip object */ export function TooltipCreateWarningSection() { - const TooltipWarn = document.createElement('div'); - TooltipWarn.style.position = 'absolute'; - TooltipWarn.style.display = 'block'; - TooltipWarn.style.left = 'auto'; - TooltipWarn.style.bottom = 'auto'; - TooltipWarn.id = 'CMDispTooltipWarningParent'; + const TooltipWarn = document.createElement('div'); + TooltipWarn.style.position = 'absolute'; + TooltipWarn.style.display = 'block'; + TooltipWarn.style.left = 'auto'; + TooltipWarn.style.bottom = 'auto'; + TooltipWarn.id = 'CMDispTooltipWarningParent'; - const create = function (boxId, color, labelTextFront, labelTextBack, deficitId) { - const box = document.createElement('div'); - box.id = boxId; - box.style.display = 'none'; - box.style.transition = 'opacity 0.1s ease-out'; - box.className = ColorBorderPre + color; - box.style.padding = '2px'; - box.style.background = '#000 url(img/darkNoise.png)'; - const labelDiv = document.createElement('div'); - box.appendChild(labelDiv); - const labelSpan = document.createElement('span'); - labelSpan.className = ColorTextPre + color; - labelSpan.style.fontWeight = 'bold'; - labelSpan.textContent = labelTextFront; - labelDiv.appendChild(labelSpan); - labelDiv.appendChild(document.createTextNode(labelTextBack)); - const deficitDiv = document.createElement('div'); - box.appendChild(deficitDiv); - const deficitSpan = document.createElement('span'); - deficitSpan.id = deficitId; - deficitDiv.appendChild(document.createTextNode('Deficit: ')); - deficitDiv.appendChild(deficitSpan); - return box; - }; + const create = function ( + boxId, + color, + labelTextFront, + labelTextBack, + deficitId, + ) { + const box = document.createElement('div'); + box.id = boxId; + box.style.display = 'none'; + box.style.transition = 'opacity 0.1s ease-out'; + box.className = ColorBorderPre + color; + box.style.padding = '2px'; + box.style.background = '#000 url(img/darkNoise.png)'; + const labelDiv = document.createElement('div'); + box.appendChild(labelDiv); + const labelSpan = document.createElement('span'); + labelSpan.className = ColorTextPre + color; + labelSpan.style.fontWeight = 'bold'; + labelSpan.textContent = labelTextFront; + labelDiv.appendChild(labelSpan); + labelDiv.appendChild(document.createTextNode(labelTextBack)); + const deficitDiv = document.createElement('div'); + box.appendChild(deficitDiv); + const deficitSpan = document.createElement('span'); + deficitSpan.id = deficitId; + deficitDiv.appendChild(document.createTextNode('Deficit: ')); + deficitDiv.appendChild(deficitSpan); + return box; + }; - TooltipWarn.appendChild(create('CMDispTooltipWarnLucky', ColorRed, 'Warning: ', 'Purchase of this item will put you under the number of Cookies required for "Lucky!"', 'CMDispTooltipWarnLuckyText')); - TooltipWarn.firstChild.style.marginBottom = '4px'; - TooltipWarn.appendChild(create('CMDispTooltipWarnLuckyFrenzy', ColorYellow, 'Warning: ', 'Purchase of this item will put you under the number of Cookies required for "Lucky!" (Frenzy)', 'CMDispTooltipWarnLuckyFrenzyText')); - TooltipWarn.lastChild.style.marginBottom = '4px'; - TooltipWarn.appendChild(create('CMDispTooltipWarnConjure', ColorPurple, 'Warning: ', 'Purchase of this item will put you under the number of Cookies required for "Conjure Baked Goods"', 'CMDispTooltipWarnConjureText')); - TooltipWarn.lastChild.style.marginBottom = '4px'; - TooltipWarn.appendChild(create('CMDispTooltipWarnConjureFrenzy', ColorPurple, 'Warning: ', 'Purchase of this item will put you under the number of Cookies required for "Conjure Baked Goods" (Frenzy)', 'CMDispTooltipWarnConjureFrenzyText')); - TooltipWarn.lastChild.style.marginBottom = '4px'; - TooltipWarn.appendChild(create('CMDispTooltipWarnEdifice', ColorPurple, 'Warning: ', 'Purchase of this item will put you under the number of Cookies needed for "Spontaneous Edifice" to possibly give you your most expensive building"', 'CMDispTooltipWarnEdificeText')); - TooltipWarn.lastChild.style.marginBottom = '4px'; - TooltipWarn.appendChild(create('CMDispTooltipWarnUser', ColorRed, 'Warning: ', `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`, 'CMDispTooltipWarnUserText')); + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnLucky', + ColorRed, + 'Warning: ', + 'Purchase of this item will put you under the number of Cookies required for "Lucky!"', + 'CMDispTooltipWarnLuckyText', + ), + ); + TooltipWarn.firstChild.style.marginBottom = '4px'; + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnLuckyFrenzy', + ColorYellow, + 'Warning: ', + 'Purchase of this item will put you under the number of Cookies required for "Lucky!" (Frenzy)', + 'CMDispTooltipWarnLuckyFrenzyText', + ), + ); + TooltipWarn.lastChild.style.marginBottom = '4px'; + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnConjure', + ColorPurple, + 'Warning: ', + 'Purchase of this item will put you under the number of Cookies required for "Conjure Baked Goods"', + 'CMDispTooltipWarnConjureText', + ), + ); + TooltipWarn.lastChild.style.marginBottom = '4px'; + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnConjureFrenzy', + ColorPurple, + 'Warning: ', + 'Purchase of this item will put you under the number of Cookies required for "Conjure Baked Goods" (Frenzy)', + 'CMDispTooltipWarnConjureFrenzyText', + ), + ); + TooltipWarn.lastChild.style.marginBottom = '4px'; + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnEdifice', + ColorPurple, + 'Warning: ', + 'Purchase of this item will put you under the number of Cookies needed for "Spontaneous Edifice" to possibly give you your most expensive building"', + 'CMDispTooltipWarnEdificeText', + ), + ); + TooltipWarn.lastChild.style.marginBottom = '4px'; + TooltipWarn.appendChild( + create( + 'CMDispTooltipWarnUser', + ColorRed, + 'Warning: ', + `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`, + 'CMDispTooltipWarnUserText', + ), + ); - return TooltipWarn; + return TooltipWarn; } /** @@ -93,38 +154,40 @@ export function TooltipCreateWarningSection() { * @param {object} tooltip Object of a TooltipBox, normally created by a call to CM.Disp.TooltipCreateTooltipBox() */ export function TooltipCreateCalculationSection(tooltip) { - tooltip.appendChild(TooltipCreateHeader('Bonus Income')); - const income = document.createElement('div'); - income.style.marginBottom = '4px'; - income.style.color = 'white'; - income.id = 'CMTooltipIncome'; - tooltip.appendChild(income); + tooltip.appendChild(TooltipCreateHeader('Bonus Income')); + const income = document.createElement('div'); + income.style.marginBottom = '4px'; + income.style.color = 'white'; + income.id = 'CMTooltipIncome'; + tooltip.appendChild(income); - tooltip.appendChild(TooltipCreateHeader('Bonus Cookies per Click')); - tooltip.lastChild.style.display = 'none'; - const click = document.createElement('div'); - click.style.marginBottom = '4px'; - click.style.color = 'white'; - click.style.display = 'none'; - click.id = 'CMTooltipCookiePerClick'; - tooltip.appendChild(click); + tooltip.appendChild(TooltipCreateHeader('Bonus Cookies per Click')); + tooltip.lastChild.style.display = 'none'; + const click = document.createElement('div'); + click.style.marginBottom = '4px'; + click.style.color = 'white'; + click.style.display = 'none'; + click.id = 'CMTooltipCookiePerClick'; + tooltip.appendChild(click); - tooltip.appendChild(TooltipCreateHeader('Payback Period')); - const pp = document.createElement('div'); - pp.style.marginBottom = '4px'; - pp.id = 'CMTooltipPP'; - tooltip.appendChild(pp); + tooltip.appendChild(TooltipCreateHeader('Payback Period')); + const pp = document.createElement('div'); + pp.style.marginBottom = '4px'; + pp.id = 'CMTooltipPP'; + tooltip.appendChild(pp); - tooltip.appendChild(TooltipCreateHeader('Time Left')); - const time = document.createElement('div'); - time.id = 'CMTooltipTime'; - tooltip.appendChild(time); + tooltip.appendChild(TooltipCreateHeader('Time Left')); + const time = document.createElement('div'); + time.id = 'CMTooltipTime'; + tooltip.appendChild(time); - if (TooltipType === 'b') { - tooltip.appendChild(TooltipCreateHeader('Production left till next achievement')); - tooltip.lastChild.id = 'CMTooltipProductionHeader'; // Assign a id in order to hid when no achiev's are left - const production = document.createElement('div'); - production.id = 'CMTooltipProduction'; - tooltip.appendChild(production); - } + if (TooltipType === 'b') { + tooltip.appendChild( + TooltipCreateHeader('Production left till next achievement'), + ); + tooltip.lastChild.id = 'CMTooltipProductionHeader'; // Assign a id in order to hid when no achiev's are left + const production = document.createElement('div'); + production.id = 'CMTooltipProduction'; + tooltip.appendChild(production); + } } diff --git a/src/Disp/Tooltips/PositionLocation.js b/src/Disp/Tooltips/PositionLocation.js index f35b9f0d..cfaed6d8 100644 --- a/src/Disp/Tooltips/PositionLocation.js +++ b/src/Disp/Tooltips/PositionLocation.js @@ -5,15 +5,26 @@ import { CMOptions } from '../../Config/VariablesAndData'; * It is called by Game.tooltip.update() because of CM.Main.ReplaceNative() */ export default function UpdateTooltipLocation() { - if (Game.tooltip.origin === 'store') { - let warnOffset = 0; - if (CMOptions.ToolWarnLucky === 1 && CMOptions.ToolWarnPos === 1 && l('CMDispTooltipWarningParent') !== null) { - warnOffset = l('CMDispTooltipWarningParent').clientHeight - 4; - } - Game.tooltip.tta.style.top = `${Math.min(parseInt(Game.tooltip.tta.style.top, 10), (l('game').clientHeight + l('topBar').clientHeight) - Game.tooltip.tt.clientHeight - warnOffset - 46)}px`; - } - // Kept for future possible use if the code changes again - /* else if (!Game.onCrate && !Game.OnAscend && CM.Options.TimerBar === 1 && CM.Options.TimerBarPos === 0) { + if (Game.tooltip.origin === 'store') { + let warnOffset = 0; + if ( + CMOptions.ToolWarnLucky === 1 && + CMOptions.ToolWarnPos === 1 && + l('CMDispTooltipWarningParent') !== null + ) { + warnOffset = l('CMDispTooltipWarningParent').clientHeight - 4; + } + Game.tooltip.tta.style.top = `${Math.min( + parseInt(Game.tooltip.tta.style.top, 10), + l('game').clientHeight + + l('topBar').clientHeight - + Game.tooltip.tt.clientHeight - + warnOffset - + 46, + )}px`; + } + // Kept for future possible use if the code changes again + /* else if (!Game.onCrate && !Game.OnAscend && CM.Options.TimerBar === 1 && CM.Options.TimerBarPos === 0) { Game.tooltip.tta.style.top = (parseInt(Game.tooltip.tta.style.top) + parseInt(CM.Disp.TimerBar.style.height)) + 'px'; } */ } diff --git a/src/Disp/Tooltips/Tooltip.js b/src/Disp/Tooltips/Tooltip.js index 42957a1a..cd044da0 100644 --- a/src/Disp/Tooltips/Tooltip.js +++ b/src/Disp/Tooltips/Tooltip.js @@ -1,7 +1,10 @@ /* eslint-disable no-unused-vars */ import * as UpdateTooltip from './UpdateTooltips'; import { TooltipCreateTooltipBox } from './CreateTooltip'; -import { Beautify, GetTimeColor } from '../BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify, + GetTimeColor, +} from '../BeautifyAndFormatting/BeautifyFormatting'; import CopyData from '../../Sim/SimulationData/CopyData'; import { TooltipName, TooltipType } from '../VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; @@ -17,47 +20,48 @@ import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding'; * @param {string} minWidth The minimum width of the tooltip */ export function CreateSimpleTooltip(placeholder, text, minWidth) { - const Tooltip = document.createElement('div'); - Tooltip.id = placeholder; - const desc = document.createElement('div'); - desc.style.minWidth = minWidth; - desc.style.marginBottom = '4px'; - const div = document.createElement('div'); - div.style.textAlign = 'left'; - div.textContent = text; - desc.appendChild(div); - Tooltip.appendChild(desc); + const Tooltip = document.createElement('div'); + Tooltip.id = placeholder; + const desc = document.createElement('div'); + desc.style.minWidth = minWidth; + desc.style.marginBottom = '4px'; + const div = document.createElement('div'); + div.style.textAlign = 'left'; + div.textContent = text; + desc.appendChild(div); + Tooltip.appendChild(desc); } /** * This function updates the sections of the tooltips created by CookieMonster */ export function UpdateTooltips() { - CopyData(); - if (l('tooltipAnchor').style.display !== 'none' && l('CMTooltipArea')) { - l('CMTooltipArea').innerHTML = ''; - const tooltipBox = TooltipCreateTooltipBox(); - l('CMTooltipArea').appendChild(tooltipBox); + CopyData(); + if (l('tooltipAnchor').style.display !== 'none' && l('CMTooltipArea')) { + l('CMTooltipArea').innerHTML = ''; + const tooltipBox = TooltipCreateTooltipBox(); + l('CMTooltipArea').appendChild(tooltipBox); - if (TooltipType === 'b') { - UpdateTooltip.Building(); - } else if (TooltipType === 'u') { - UpdateTooltip.Upgrade(); - } else if (TooltipType === 's') { - UpdateTooltip.SugarLump(); - } else if (TooltipType === 'g') { - UpdateTooltip.Grimoire(); - } else if (TooltipType === 'p') { - UpdateTooltip.GardenPlots(); - } else if (TooltipType === 'ha') { - UpdateTooltip.HarvestAll(); - } - UpdateTooltip.Warnings(); - } else if (l('CMTooltipArea') === null) { // Remove warnings if its a basic tooltip - if (l('CMDispTooltipWarningParent') !== null) { - l('CMDispTooltipWarningParent').remove(); - } - } + if (TooltipType === 'b') { + UpdateTooltip.Building(); + } else if (TooltipType === 'u') { + UpdateTooltip.Upgrade(); + } else if (TooltipType === 's') { + UpdateTooltip.SugarLump(); + } else if (TooltipType === 'g') { + UpdateTooltip.Grimoire(); + } else if (TooltipType === 'p') { + UpdateTooltip.GardenPlots(); + } else if (TooltipType === 'ha') { + UpdateTooltip.HarvestAll(); + } + UpdateTooltip.Warnings(); + } else if (l('CMTooltipArea') === null) { + // Remove warnings if its a basic tooltip + if (l('CMDispTooltipWarningParent') !== null) { + l('CMDispTooltipWarningParent').remove(); + } + } } /** @@ -68,49 +72,98 @@ export function UpdateTooltips() { * @returns {string} l('tooltip').innerHTML The HTML of the l('tooltip')-object */ export function CreateTooltip(type, name) { - if (type === 'b') { // Buildings - l('tooltip').innerHTML = Game.Objects[name].tooltip(); - // Adds amortization info to the list of info per building - if (CMOptions.TooltipAmor === 1) { - const buildPrice = BuildingGetPrice(Game.Objects[name], Game.Objects[name].basePrice, 0, Game.Objects[name].free, Game.Objects[name].amount); - const amortizeAmount = buildPrice - Game.Objects[name].totalCookies; - if (amortizeAmount > 0) { - l('tooltip').innerHTML = l('tooltip').innerHTML - .split('so far
') - .join(`so far
${Beautify(amortizeAmount)} ${Math.floor(amortizeAmount) === 1 ? 'cookie' : 'cookies'} left to amortize (${GetTimeColor((buildPrice - Game.Objects[name].totalCookies) / (Game.Objects[name].storedTotalCps * Game.globalCpsMult)).text})
`); - } - } - if (Game.buyMode === -1) { - /* - * Fix sell price displayed in the object tooltip. - * - * The buildings sell price displayed by the game itself (without any mod) is incorrect. - * The following line of code fixes this issue, and can be safely removed when the game gets fixed. - * - * This issue is extensively detailed here: https://github.com/Aktanusa/CookieMonster/issues/359#issuecomment-735658262 - */ - l('tooltip').innerHTML = l('tooltip').innerHTML.split(Beautify(Game.Objects[name].bulkPrice)).join(Beautify((Game.Objects[name], Game.Objects[name].basePrice, Game.Objects[name].amount, Game.Objects[name].free, Game.buyBulk, 1))); - } - } else if (type === 'u') { // Upgrades - if (!Game.UpgradesInStore[name]) return ''; - l('tooltip').innerHTML = Game.crateTooltip(Game.UpgradesInStore[name], 'store'); - } else if (type === 's') l('tooltip').innerHTML = Game.lumpTooltip(); // Sugar Lumps - else if (type === 'g') l('tooltip').innerHTML = Game.Objects['Wizard tower'].minigame.spellTooltip(name)(); // Grimoire - else if (type === 'p') l('tooltip').innerHTML = Game.ObjectsById[2].minigame.tileTooltip(name[0], name[1])(); // Garden plots - else if (type === 'ha') l('tooltip').innerHTML = Game.ObjectsById[2].minigame.toolTooltip(1)(); // Harvest all button in garden + if (type === 'b') { + // Buildings + l('tooltip').innerHTML = Game.Objects[name].tooltip(); + // Adds amortization info to the list of info per building + if (CMOptions.TooltipAmor === 1) { + const buildPrice = BuildingGetPrice( + Game.Objects[name], + Game.Objects[name].basePrice, + 0, + Game.Objects[name].free, + Game.Objects[name].amount, + ); + const amortizeAmount = buildPrice - Game.Objects[name].totalCookies; + if (amortizeAmount > 0) { + l('tooltip').innerHTML = l('tooltip') + .innerHTML.split('so far') + .join( + `so far
${Beautify(amortizeAmount)} ${ + Math.floor(amortizeAmount) === 1 ? 'cookie' : 'cookies' + } left to amortize (${ + GetTimeColor( + (buildPrice - Game.Objects[name].totalCookies) / + (Game.Objects[name].storedTotalCps * Game.globalCpsMult), + ).text + })`, + ); + } + } + if (Game.buyMode === -1) { + /* + * Fix sell price displayed in the object tooltip. + * + * The buildings sell price displayed by the game itself (without any mod) is incorrect. + * The following line of code fixes this issue, and can be safely removed when the game gets fixed. + * + * This issue is extensively detailed here: https://github.com/Aktanusa/CookieMonster/issues/359#issuecomment-735658262 + */ + l('tooltip').innerHTML = l('tooltip') + .innerHTML.split(Beautify(Game.Objects[name].bulkPrice)) + .join( + Beautify( + (Game.Objects[name], + Game.Objects[name].basePrice, + Game.Objects[name].amount, + Game.Objects[name].free, + Game.buyBulk, + 1), + ), + ); + } + } else if (type === 'u') { + // Upgrades + if (!Game.UpgradesInStore[name]) return ''; + l('tooltip').innerHTML = Game.crateTooltip( + Game.UpgradesInStore[name], + 'store', + ); + } else if (type === 's') l('tooltip').innerHTML = Game.lumpTooltip(); + // Sugar Lumps + else if (type === 'g') + l('tooltip').innerHTML = Game.Objects['Wizard tower'].minigame.spellTooltip( + name, + )(); + // Grimoire + else if (type === 'p') + l('tooltip').innerHTML = Game.ObjectsById[2].minigame.tileTooltip( + name[0], + name[1], + )(); + // Garden plots + else if (type === 'ha') + l('tooltip').innerHTML = Game.ObjectsById[2].minigame.toolTooltip(1)(); // Harvest all button in garden - // Adds area for extra tooltip-sections - if ((type === 'b' && Game.buyMode === 1) || type === 'u' || type === 's' || type === 'g' || (type === 'p' && !Game.keys[16]) || type === 'ha') { - const area = document.createElement('div'); - area.id = 'CMTooltipArea'; - l('tooltip').appendChild(area); - } + // Adds area for extra tooltip-sections + if ( + (type === 'b' && Game.buyMode === 1) || + type === 'u' || + type === 's' || + type === 'g' || + (type === 'p' && !Game.keys[16]) || + type === 'ha' + ) { + const area = document.createElement('div'); + area.id = 'CMTooltipArea'; + l('tooltip').appendChild(area); + } - // Sets global variables used by CM.Disp.UpdateTooltip() - TooltipType = type; - TooltipName = name; + // Sets global variables used by CM.Disp.UpdateTooltip() + TooltipType = type; + TooltipName = name; - UpdateTooltips(); + UpdateTooltips(); - return l('tooltip').innerHTML; + return l('tooltip').innerHTML; } diff --git a/src/Disp/Tooltips/UpdateTooltips.js b/src/Disp/Tooltips/UpdateTooltips.js index 09c0f413..4476e2cc 100644 --- a/src/Disp/Tooltips/UpdateTooltips.js +++ b/src/Disp/Tooltips/UpdateTooltips.js @@ -1,17 +1,34 @@ import GetCPSBuffMult from '../../Cache/CPS/GetCPSBuffMult'; import { - CacheEdifice, CacheLastChoEgg, CacheLucky, CacheNoGoldSwitchCookiesPS, CacheObjects1, CacheObjects10, CacheObjects100, CacheUpgrades, + CacheEdifice, + CacheLastChoEgg, + CacheLucky, + CacheNoGoldSwitchCookiesPS, + CacheObjects1, + CacheObjects10, + CacheObjects100, + CacheUpgrades, } from '../../Cache/VariablesAndData'; import ToggleToolWarnPos from '../../Config/Toggles/ToggleToolWarnPos'; import { CMOptions } from '../../Config/VariablesAndData'; import { SimObjects } from '../../Sim/VariablesAndData'; -import { Beautify, FormatTime, GetTimeColor } from '../BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify, + FormatTime, + GetTimeColor, +} from '../BeautifyAndFormatting/BeautifyFormatting'; import CalculateGrimoireRefillTime from '../HelperFunctions/CalculateGrimoireRefillTime'; import GetCPS from '../HelperFunctions/GetCPS'; import GetLumpColor from '../HelperFunctions/GetLumpColor'; import GetWrinkConfigBank from '../HelperFunctions/GetWrinkConfigBank'; import { - ColorTextPre, LastTargetTooltipBuilding, TooltipBonusIncome, TooltipBonusMouse, TooltipName, TooltipPrice, TooltipType, + ColorTextPre, + LastTargetTooltipBuilding, + TooltipBonusIncome, + TooltipBonusMouse, + TooltipName, + TooltipPrice, + TooltipType, } from '../VariablesAndData'; import * as Create from './CreateTooltip'; @@ -21,114 +38,154 @@ import * as Create from './CreateTooltip'; * This function adds extra info to the Building tooltips */ export function Building() { - if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { - const tooltipBox = l('CMTooltipBorder'); - Create.TooltipCreateCalculationSection(tooltipBox); - - let target; - if (Game.buyMode === 1) { - LastTargetTooltipBuilding = target; - } else { - target = LastTargetTooltipBuilding; - } - if (Game.buyBulk === 1) target = CacheObjects1; - else if (Game.buyBulk === 10) target = CacheObjects10; - else if (Game.buyBulk === 100) target = CacheObjects100; - - TooltipPrice = Game.Objects[TooltipName].bulkPrice; - TooltipBonusIncome = target[TooltipName].bonus; - - if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { - l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); - const increase = Math.round(TooltipBonusIncome / Game.cookiesPs * 10000); - if (Number.isFinite(increase) && increase !== 0) { - l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; - } - l('CMTooltipBorder').className = ColorTextPre + target[TooltipName].color; - l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); - l('CMTooltipPP').className = ColorTextPre + target[TooltipName].color; - const timeColor = GetTimeColor((TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS()); - l('CMTooltipTime').textContent = timeColor.text; - if (timeColor.text === 'Done!' && Game.cookies < target[TooltipName].price) { - l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; - } else l('CMTooltipTime').textContent = timeColor.text; - l('CMTooltipTime').className = ColorTextPre + timeColor.color; - } - - // Add "production left till next achievement"-bar - l('CMTooltipProductionHeader').style.display = 'none'; - l('CMTooltipTime').style.marginBottom = '0px'; - for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) { - if (!Game.HasAchiev(Game.Objects[TooltipName].productionAchievs[i].achiev.name)) { - const nextProductionAchiev = Game.Objects[TooltipName].productionAchievs[i]; - l('CMTooltipTime').style.marginBottom = '4px'; - l('CMTooltipProductionHeader').style.display = ''; - l('CMTooltipProduction').className = `ProdAchievement${TooltipName}`; - l('CMTooltipProduction').textContent = Beautify(nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies, 15); - l('CMTooltipProduction').style.color = 'white'; - break; - } - } - } else l('CMTooltipArea').style.display = 'none'; + if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { + const tooltipBox = l('CMTooltipBorder'); + Create.TooltipCreateCalculationSection(tooltipBox); + + let target; + if (Game.buyMode === 1) { + LastTargetTooltipBuilding = target; + } else { + target = LastTargetTooltipBuilding; + } + if (Game.buyBulk === 1) target = CacheObjects1; + else if (Game.buyBulk === 10) target = CacheObjects10; + else if (Game.buyBulk === 100) target = CacheObjects100; + + TooltipPrice = Game.Objects[TooltipName].bulkPrice; + TooltipBonusIncome = target[TooltipName].bonus; + + if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { + l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); + const increase = Math.round( + (TooltipBonusIncome / Game.cookiesPs) * 10000, + ); + if (Number.isFinite(increase) && increase !== 0) { + l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; + } + l('CMTooltipBorder').className = ColorTextPre + target[TooltipName].color; + l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); + l('CMTooltipPP').className = ColorTextPre + target[TooltipName].color; + const timeColor = GetTimeColor( + (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ); + l('CMTooltipTime').textContent = timeColor.text; + if ( + timeColor.text === 'Done!' && + Game.cookies < target[TooltipName].price + ) { + l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; + } else l('CMTooltipTime').textContent = timeColor.text; + l('CMTooltipTime').className = ColorTextPre + timeColor.color; + } + + // Add "production left till next achievement"-bar + l('CMTooltipProductionHeader').style.display = 'none'; + l('CMTooltipTime').style.marginBottom = '0px'; + for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) { + if ( + !Game.HasAchiev( + Game.Objects[TooltipName].productionAchievs[i].achiev.name, + ) + ) { + const nextProductionAchiev = + Game.Objects[TooltipName].productionAchievs[i]; + l('CMTooltipTime').style.marginBottom = '4px'; + l('CMTooltipProductionHeader').style.display = ''; + l('CMTooltipProduction').className = `ProdAchievement${TooltipName}`; + l('CMTooltipProduction').textContent = Beautify( + nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies, + 15, + ); + l('CMTooltipProduction').style.color = 'white'; + break; + } + } + } else l('CMTooltipArea').style.display = 'none'; } /** * This function adds extra info to the Upgrade tooltips */ export function Upgrade() { - const tooltipBox = l('CMTooltipBorder'); - Create.TooltipCreateCalculationSection(tooltipBox); - - TooltipBonusIncome = CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonus; - TooltipPrice = Game.Upgrades[Game.UpgradesInStore[TooltipName].name].getPrice(); - TooltipBonusMouse = CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonusMouse; - - if (CMOptions.TooltipBuildUpgrade === 1) { - l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); - const increase = Math.round(TooltipBonusIncome / Game.cookiesPs * 10000); - // Don't display certain parts of tooltip if not applicable - if (l('CMTooltipIncome').textContent === '0' && (TooltipType === 'b' || TooltipType === 'u')) { - l('Bonus IncomeTitle').style.display = 'none'; - l('CMTooltipIncome').style.display = 'none'; - l('Payback PeriodTitle').style.display = 'none'; - l('CMTooltipPP').style.display = 'none'; - } else { - if (Number.isFinite(increase) && increase !== 0) { - l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; - } - l('CMTooltipBorder').className = ColorTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; - // If clicking power upgrade - if (TooltipBonusMouse) { - l('CMTooltipCookiePerClick').textContent = Beautify(TooltipBonusMouse); - l('CMTooltipCookiePerClick').style.display = 'block'; - l('CMTooltipCookiePerClick').previousSibling.style.display = 'block'; - } - // If only a clicking power upgrade change PP to click-based period - if (TooltipBonusIncome === 0 && TooltipBonusMouse) { - l('CMTooltipPP').textContent = `${Beautify(TooltipPrice / TooltipBonusMouse)} Clicks`; - l('CMTooltipPP').style.color = 'white'; - } else { - l('CMTooltipPP').textContent = Beautify(CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, 2); - l('CMTooltipPP').className = ColorTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; - } - } - const timeColor = GetTimeColor((TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS()); - l('CMTooltipTime').textContent = timeColor.text; - if (timeColor.text === 'Done!' && Game.cookies < Game.UpgradesInStore[TooltipName].getPrice()) { - l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; - } else l('CMTooltipTime').textContent = timeColor.text; - l('CMTooltipTime').className = ColorTextPre + timeColor.color; - - // Add extra info to Chocolate egg tooltip - if (Game.UpgradesInStore[TooltipName].name === 'Chocolate egg') { - l('CMTooltipBorder').lastChild.style.marginBottom = '4px'; - l('CMTooltipBorder').appendChild(Create.TooltipCreateHeader('Cookies to be gained (Currently/Max)')); - const chocolate = document.createElement('div'); - chocolate.style.color = 'white'; - chocolate.textContent = `${Beautify(Game.cookies * 0.05)} / ${Beautify(CacheLastChoEgg)}`; - l('CMTooltipBorder').appendChild(chocolate); - } - } else l('CMTooltipArea').style.display = 'none'; + const tooltipBox = l('CMTooltipBorder'); + Create.TooltipCreateCalculationSection(tooltipBox); + + TooltipBonusIncome = + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonus; + TooltipPrice = Game.Upgrades[ + Game.UpgradesInStore[TooltipName].name + ].getPrice(); + TooltipBonusMouse = + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonusMouse; + + if (CMOptions.TooltipBuildUpgrade === 1) { + l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); + const increase = Math.round((TooltipBonusIncome / Game.cookiesPs) * 10000); + // Don't display certain parts of tooltip if not applicable + if ( + l('CMTooltipIncome').textContent === '0' && + (TooltipType === 'b' || TooltipType === 'u') + ) { + l('Bonus IncomeTitle').style.display = 'none'; + l('CMTooltipIncome').style.display = 'none'; + l('Payback PeriodTitle').style.display = 'none'; + l('CMTooltipPP').style.display = 'none'; + } else { + if (Number.isFinite(increase) && increase !== 0) { + l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; + } + l('CMTooltipBorder').className = + ColorTextPre + + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; + // If clicking power upgrade + if (TooltipBonusMouse) { + l('CMTooltipCookiePerClick').textContent = Beautify(TooltipBonusMouse); + l('CMTooltipCookiePerClick').style.display = 'block'; + l('CMTooltipCookiePerClick').previousSibling.style.display = 'block'; + } + // If only a clicking power upgrade change PP to click-based period + if (TooltipBonusIncome === 0 && TooltipBonusMouse) { + l('CMTooltipPP').textContent = `${Beautify( + TooltipPrice / TooltipBonusMouse, + )} Clicks`; + l('CMTooltipPP').style.color = 'white'; + } else { + l('CMTooltipPP').textContent = Beautify( + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, + 2, + ); + l('CMTooltipPP').className = + ColorTextPre + + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; + } + } + const timeColor = GetTimeColor( + (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ); + l('CMTooltipTime').textContent = timeColor.text; + if ( + timeColor.text === 'Done!' && + Game.cookies < Game.UpgradesInStore[TooltipName].getPrice() + ) { + l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; + } else l('CMTooltipTime').textContent = timeColor.text; + l('CMTooltipTime').className = ColorTextPre + timeColor.color; + + // Add extra info to Chocolate egg tooltip + if (Game.UpgradesInStore[TooltipName].name === 'Chocolate egg') { + l('CMTooltipBorder').lastChild.style.marginBottom = '4px'; + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Cookies to be gained (Currently/Max)'), + ); + const chocolate = document.createElement('div'); + chocolate.style.color = 'white'; + chocolate.textContent = `${Beautify(Game.cookies * 0.05)} / ${Beautify( + CacheLastChoEgg, + )}`; + l('CMTooltipBorder').appendChild(chocolate); + } + } else l('CMTooltipArea').style.display = 'none'; } /** @@ -136,18 +193,18 @@ export function Upgrade() { * It adds to the additional information to l('CMTooltipArea') */ export function SugarLump() { - if (CMOptions.TooltipLump === 1) { - const tooltipBox = l('CMTooltipBorder'); - - tooltipBox.appendChild(Create.TooltipCreateHeader('Current Sugar Lump')); - - const lumpType = document.createElement('div'); - lumpType.id = 'CMTooltipTime'; - tooltipBox.appendChild(lumpType); - const lumpColor = GetLumpColor(Game.lumpCurrentType); - lumpType.textContent = lumpColor.text; - lumpType.className = ColorTextPre + lumpColor.color; - } else l('CMTooltipArea').style.display = 'none'; + if (CMOptions.TooltipLump === 1) { + const tooltipBox = l('CMTooltipBorder'); + + tooltipBox.appendChild(Create.TooltipCreateHeader('Current Sugar Lump')); + + const lumpType = document.createElement('div'); + lumpType.id = 'CMTooltipTime'; + tooltipBox.appendChild(lumpType); + const lumpColor = GetLumpColor(Game.lumpCurrentType); + lumpType.textContent = lumpColor.text; + lumpType.className = ColorTextPre + lumpColor.color; + } else l('CMTooltipArea').style.display = 'none'; } /** @@ -155,53 +212,69 @@ export function SugarLump() { * It adds to the additional information to l('CMTooltipArea') */ export function Grimoire() { - const minigame = Game.Objects['Wizard tower'].minigame; - const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); - - if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) { - const tooltipBox = l('CMTooltipBorder'); - - // Time left till enough magic for spell - tooltipBox.appendChild(Create.TooltipCreateHeader('Time Left')); - const time = document.createElement('div'); - time.id = 'CMTooltipTime'; - tooltipBox.appendChild(time); - const timeColor = GetTimeColor(CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, spellCost)); - time.textContent = timeColor.text; - time.className = ColorTextPre + timeColor.color; - - // Time left untill magic spent is recovered - if (spellCost <= minigame.magic) { - tooltipBox.appendChild(Create.TooltipCreateHeader('Recover Time')); - const recover = document.createElement('div'); - recover.id = 'CMTooltipRecover'; - tooltipBox.appendChild(recover); - const recoverColor = GetTimeColor(CalculateGrimoireRefillTime(Math.max(0, minigame.magic - spellCost), minigame.magicM, minigame.magic)); - recover.textContent = recoverColor.text; - recover.className = ColorTextPre + recoverColor.color; - } - - // Extra information on cookies gained when spell is Conjure Baked Goods (Name === 0) - if (TooltipName === '0') { - tooltipBox.appendChild(Create.TooltipCreateHeader('Cookies to be gained/lost')); - const conjure = document.createElement('div'); - conjure.id = 'x'; - tooltipBox.appendChild(conjure); - const reward = document.createElement('span'); - reward.style.color = '#33FF00'; - reward.textContent = Beautify(Math.min((Game.cookies + GetWrinkConfigBank()) * 0.15, CacheNoGoldSwitchCookiesPS * 60 * 30), 2); - conjure.appendChild(reward); - const seperator = document.createElement('span'); - seperator.textContent = ' / '; - conjure.appendChild(seperator); - const loss = document.createElement('span'); - loss.style.color = 'red'; - loss.textContent = Beautify((CacheNoGoldSwitchCookiesPS * 60 * 15), 2); - conjure.appendChild(loss); - } - - l('CMTooltipArea').appendChild(tooltipBox); - } else l('CMTooltipArea').style.display = 'none'; + const minigame = Game.Objects['Wizard tower'].minigame; + const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); + + if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) { + const tooltipBox = l('CMTooltipBorder'); + + // Time left till enough magic for spell + tooltipBox.appendChild(Create.TooltipCreateHeader('Time Left')); + const time = document.createElement('div'); + time.id = 'CMTooltipTime'; + tooltipBox.appendChild(time); + const timeColor = GetTimeColor( + CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, spellCost), + ); + time.textContent = timeColor.text; + time.className = ColorTextPre + timeColor.color; + + // Time left untill magic spent is recovered + if (spellCost <= minigame.magic) { + tooltipBox.appendChild(Create.TooltipCreateHeader('Recover Time')); + const recover = document.createElement('div'); + recover.id = 'CMTooltipRecover'; + tooltipBox.appendChild(recover); + const recoverColor = GetTimeColor( + CalculateGrimoireRefillTime( + Math.max(0, minigame.magic - spellCost), + minigame.magicM, + minigame.magic, + ), + ); + recover.textContent = recoverColor.text; + recover.className = ColorTextPre + recoverColor.color; + } + + // Extra information on cookies gained when spell is Conjure Baked Goods (Name === 0) + if (TooltipName === '0') { + tooltipBox.appendChild( + Create.TooltipCreateHeader('Cookies to be gained/lost'), + ); + const conjure = document.createElement('div'); + conjure.id = 'x'; + tooltipBox.appendChild(conjure); + const reward = document.createElement('span'); + reward.style.color = '#33FF00'; + reward.textContent = Beautify( + Math.min( + (Game.cookies + GetWrinkConfigBank()) * 0.15, + CacheNoGoldSwitchCookiesPS * 60 * 30, + ), + 2, + ); + conjure.appendChild(reward); + const seperator = document.createElement('span'); + seperator.textContent = ' / '; + conjure.appendChild(seperator); + const loss = document.createElement('span'); + loss.style.color = 'red'; + loss.textContent = Beautify(CacheNoGoldSwitchCookiesPS * 60 * 15, 2); + conjure.appendChild(loss); + } + + l('CMTooltipArea').appendChild(tooltipBox); + } else l('CMTooltipArea').style.display = 'none'; } /** @@ -209,24 +282,50 @@ export function Grimoire() { * It adds to the additional information to l('CMTooltipArea') */ export function GardenPlots() { - const minigame = Game.Objects.Farm.minigame; - if (CMOptions.TooltipPlots && minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0) { - const mature = minigame.plot[TooltipName[1]][TooltipName[0]][1] > minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1].matureBase; - const plantName = minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1].name; - l('CMTooltipBorder').appendChild(Create.TooltipCreateHeader('Reward (Current / Maximum)')); - const reward = document.createElement('div'); - reward.id = 'CMTooltipPlantReward'; - l('CMTooltipBorder').appendChild(reward); - if (plantName === 'Bakeberry') { - l('CMTooltipPlantReward').textContent = `${mature ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 30)) : '0'} / ${Beautify(Game.cookiesPs * 60 * 30)}`; - } else if (plantName === 'Chocoroot' || plantName === 'White chocoroot') { - l('CMTooltipPlantReward').textContent = `${mature ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3)) : '0'} / ${Beautify(Game.cookiesPs * 60 * 3)}`; - } else if (plantName === 'Queenbeet') { - l('CMTooltipPlantReward').textContent = `${mature ? Beautify(Math.min(Game.cookies * 0.04, Game.cookiesPs * 60 * 60)) : '0'} / ${Beautify(Game.cookiesPs * 60 * 60)}`; - } else if (plantName === 'Duketater') { - l('CMTooltipPlantReward').textContent = `${mature ? Beautify(Math.min(Game.cookies * 0.08, Game.cookiesPs * 60 * 120)) : '0'} / ${Beautify(Game.cookiesPs * 60 * 120)}`; - } else l('CMTooltipArea').style.display = 'none'; - } else l('CMTooltipArea').style.display = 'none'; + const minigame = Game.Objects.Farm.minigame; + if ( + CMOptions.TooltipPlots && + minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0 + ) { + const mature = + minigame.plot[TooltipName[1]][TooltipName[0]][1] > + minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] + .matureBase; + const plantName = + minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] + .name; + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Reward (Current / Maximum)'), + ); + const reward = document.createElement('div'); + reward.id = 'CMTooltipPlantReward'; + l('CMTooltipBorder').appendChild(reward); + if (plantName === 'Bakeberry') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 30)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 30)}`; + } else if (plantName === 'Chocoroot' || plantName === 'White chocoroot') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 3)}`; + } else if (plantName === 'Queenbeet') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.04, Game.cookiesPs * 60 * 60)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 60)}`; + } else if (plantName === 'Duketater') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.08, Game.cookiesPs * 60 * 120)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 120)}`; + } else l('CMTooltipArea').style.display = 'none'; + } else l('CMTooltipArea').style.display = 'none'; } /** @@ -235,36 +334,52 @@ export function GardenPlots() { * It adds to the additional information to l('CMTooltipArea') */ export function HarvestAll() { - const minigame = Game.Objects.Farm.minigame; - if (CMOptions.TooltipLump) { - l('CMTooltipBorder').appendChild(Create.TooltipCreateHeader('Cookies gained from harvesting:')); - let totalGain = 0; - let mortal = 0; - if (Game.keys[16] && Game.keys[17]) mortal = 1; - for (let y = 0; y < 6; y++) { - for (let x = 0; x < 6; x++) { - if (minigame.plot[y][x][0] >= 1) { - const tile = minigame.plot[y][x]; - const me = minigame.plantsById[tile[0] - 1]; - const plantName = me.name; - - let count = true; - if (mortal && me.immortal) count = false; - if (tile[1] < me.matureBase) count = false; - if (count && plantName === 'Bakeberry') { - totalGain += Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 30); - } else if (count && plantName === 'Chocoroot' || plantName === 'White chocoroot') { - totalGain += Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3); - } else if (count && plantName === 'Queenbeet') { - totalGain += Math.min(Game.cookies * 0.04, Game.cookiesPs * 60 * 60); - } else if (count && plantName === 'Duketater') { - totalGain += Math.min(Game.cookies * 0.08, Game.cookiesPs * 60 * 120); - } - } - } - } - l('CMTooltipBorder').appendChild(document.createTextNode(Beautify(totalGain))); - } else l('CMTooltipArea').style.display = 'none'; + const minigame = Game.Objects.Farm.minigame; + if (CMOptions.TooltipLump) { + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Cookies gained from harvesting:'), + ); + let totalGain = 0; + let mortal = 0; + if (Game.keys[16] && Game.keys[17]) mortal = 1; + for (let y = 0; y < 6; y++) { + for (let x = 0; x < 6; x++) { + if (minigame.plot[y][x][0] >= 1) { + const tile = minigame.plot[y][x]; + const me = minigame.plantsById[tile[0] - 1]; + const plantName = me.name; + + let count = true; + if (mortal && me.immortal) count = false; + if (tile[1] < me.matureBase) count = false; + if (count && plantName === 'Bakeberry') { + totalGain += Math.min( + Game.cookies * 0.03, + Game.cookiesPs * 60 * 30, + ); + } else if ( + (count && plantName === 'Chocoroot') || + plantName === 'White chocoroot' + ) { + totalGain += Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3); + } else if (count && plantName === 'Queenbeet') { + totalGain += Math.min( + Game.cookies * 0.04, + Game.cookiesPs * 60 * 60, + ); + } else if (count && plantName === 'Duketater') { + totalGain += Math.min( + Game.cookies * 0.08, + Game.cookiesPs * 60 * 120, + ); + } + } + } + } + l('CMTooltipBorder').appendChild( + document.createTextNode(Beautify(totalGain)), + ); + } else l('CMTooltipArea').style.display = 'none'; } /** @@ -272,73 +387,125 @@ export function HarvestAll() { * It is called by CM.Disp.UpdateTooltip() */ export function Warnings() { - if (TooltipType === 'b' || TooltipType === 'u') { - if (document.getElementById('CMDispTooltipWarningParent') === null) { - l('tooltipAnchor').appendChild(Create.TooltipCreateWarningSection()); - ToggleToolWarnPos(); - } - - if (CMOptions.ToolWarnPos === 0) l('CMDispTooltipWarningParent').style.right = '0px'; - else l('CMDispTooltipWarningParent').style.top = `${l('tooltip').offsetHeight}px`; - - l('CMDispTooltipWarningParent').style.width = `${l('tooltip').offsetWidth - 6}px`; - - const amount = (Game.cookies + GetWrinkConfigBank()) - TooltipPrice; - const bonusIncomeUsed = CMOptions.ToolWarnBon ? TooltipBonusIncome : 0; - let limitLucky = CacheLucky; - if (CMOptions.ToolWarnBon === 1) { - let bonusNoFren = TooltipBonusIncome; - bonusNoFren /= GetCPSBuffMult(); - limitLucky += ((bonusNoFren * 60 * 15) / 0.15); - } - - if (CMOptions.ToolWarnLucky === 1) { - if (amount < limitLucky && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnLucky').style.display = ''; - l('CMDispTooltipWarnLuckyText').textContent = `${Beautify(limitLucky - amount)} (${FormatTime((limitLucky - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnLucky').style.display = 'none'; - } else l('CMDispTooltipWarnLucky').style.display = 'none'; - - if (CMOptions.ToolWarnLuckyFrenzy === 1) { - const limitLuckyFrenzy = limitLucky * 7; - if (amount < limitLuckyFrenzy && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnLuckyFrenzy').style.display = ''; - l('CMDispTooltipWarnLuckyFrenzyText').textContent = `${Beautify(limitLuckyFrenzy - amount)} (${FormatTime((limitLuckyFrenzy - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; - } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; - - if (CMOptions.ToolWarnConjure === 1) { - const limitConjure = limitLucky * 2; - if ((amount < limitConjure) && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnConjure').style.display = ''; - l('CMDispTooltipWarnConjureText').textContent = `${Beautify(limitConjure - amount)} (${FormatTime((limitConjure - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnConjure').style.display = 'none'; - } else l('CMDispTooltipWarnConjure').style.display = 'none'; - - if (CMOptions.ToolWarnConjureFrenzy === 1) { - const limitConjureFrenzy = limitLucky * 2 * 7; - if ((amount < limitConjureFrenzy) && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnConjureFrenzy').style.display = ''; - l('CMDispTooltipWarnConjureFrenzyText').textContent = `${Beautify(limitConjureFrenzy - amount)} (${FormatTime((limitConjureFrenzy - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; - } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; - - if (CMOptions.ToolWarnEdifice === 1 && Game.Objects['Wizard tower'].minigameLoaded) { - if (CacheEdifice && amount < CacheEdifice && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnEdifice').style.display = ''; - l('CMDispTooltipWarnEdificeText').textContent = `${Beautify(CacheEdifice - amount)} (${FormatTime((CacheEdifice - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnEdifice').style.display = 'none'; - } else l('CMDispTooltipWarnEdifice').style.display = 'none'; - - if (CMOptions.ToolWarnUser > 0) { - if (amount < CMOptions.ToolWarnUser * GetCPS() && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnUser').style.display = ''; - // Need to update tooltip text dynamically - l('CMDispTooltipWarnUser').children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`; - l('CMDispTooltipWarnUserText').textContent = `${Beautify(CMOptions.ToolWarnUser * GetCPS() - amount)} (${FormatTime((CMOptions.ToolWarnUser * GetCPS() - amount) / (GetCPS() + bonusIncomeUsed))})`; - } else l('CMDispTooltipWarnUser').style.display = 'none'; - } else l('CMDispTooltipWarnUser').style.display = 'none'; - } else if (l('CMDispTooltipWarningParent') !== null) { - l('CMDispTooltipWarningParent').remove(); - } + if (TooltipType === 'b' || TooltipType === 'u') { + if (document.getElementById('CMDispTooltipWarningParent') === null) { + l('tooltipAnchor').appendChild(Create.TooltipCreateWarningSection()); + ToggleToolWarnPos(); + } + + if (CMOptions.ToolWarnPos === 0) + l('CMDispTooltipWarningParent').style.right = '0px'; + else + l('CMDispTooltipWarningParent').style.top = `${ + l('tooltip').offsetHeight + }px`; + + l('CMDispTooltipWarningParent').style.width = `${ + l('tooltip').offsetWidth - 6 + }px`; + + const amount = Game.cookies + GetWrinkConfigBank() - TooltipPrice; + const bonusIncomeUsed = CMOptions.ToolWarnBon ? TooltipBonusIncome : 0; + let limitLucky = CacheLucky; + if (CMOptions.ToolWarnBon === 1) { + let bonusNoFren = TooltipBonusIncome; + bonusNoFren /= GetCPSBuffMult(); + limitLucky += (bonusNoFren * 60 * 15) / 0.15; + } + + if (CMOptions.ToolWarnLucky === 1) { + if (amount < limitLucky && (TooltipType !== 'b' || Game.buyMode === 1)) { + l('CMDispTooltipWarnLucky').style.display = ''; + l('CMDispTooltipWarnLuckyText').textContent = `${Beautify( + limitLucky - amount, + )} (${FormatTime( + (limitLucky - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnLucky').style.display = 'none'; + } else l('CMDispTooltipWarnLucky').style.display = 'none'; + + if (CMOptions.ToolWarnLuckyFrenzy === 1) { + const limitLuckyFrenzy = limitLucky * 7; + if ( + amount < limitLuckyFrenzy && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnLuckyFrenzy').style.display = ''; + l('CMDispTooltipWarnLuckyFrenzyText').textContent = `${Beautify( + limitLuckyFrenzy - amount, + )} (${FormatTime( + (limitLuckyFrenzy - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; + } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; + + if (CMOptions.ToolWarnConjure === 1) { + const limitConjure = limitLucky * 2; + if ( + amount < limitConjure && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnConjure').style.display = ''; + l('CMDispTooltipWarnConjureText').textContent = `${Beautify( + limitConjure - amount, + )} (${FormatTime( + (limitConjure - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnConjure').style.display = 'none'; + } else l('CMDispTooltipWarnConjure').style.display = 'none'; + + if (CMOptions.ToolWarnConjureFrenzy === 1) { + const limitConjureFrenzy = limitLucky * 2 * 7; + if ( + amount < limitConjureFrenzy && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnConjureFrenzy').style.display = ''; + l('CMDispTooltipWarnConjureFrenzyText').textContent = `${Beautify( + limitConjureFrenzy - amount, + )} (${FormatTime( + (limitConjureFrenzy - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; + } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; + + if ( + CMOptions.ToolWarnEdifice === 1 && + Game.Objects['Wizard tower'].minigameLoaded + ) { + if ( + CacheEdifice && + amount < CacheEdifice && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnEdifice').style.display = ''; + l('CMDispTooltipWarnEdificeText').textContent = `${Beautify( + CacheEdifice - amount, + )} (${FormatTime( + (CacheEdifice - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnEdifice').style.display = 'none'; + } else l('CMDispTooltipWarnEdifice').style.display = 'none'; + + if (CMOptions.ToolWarnUser > 0) { + if ( + amount < CMOptions.ToolWarnUser * GetCPS() && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnUser').style.display = ''; + // Need to update tooltip text dynamically + l( + 'CMDispTooltipWarnUser', + ).children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`; + l('CMDispTooltipWarnUserText').textContent = `${Beautify( + CMOptions.ToolWarnUser * GetCPS() - amount, + )} (${FormatTime( + (CMOptions.ToolWarnUser * GetCPS() - amount) / + (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnUser').style.display = 'none'; + } else l('CMDispTooltipWarnUser').style.display = 'none'; + } else if (l('CMDispTooltipWarningParent') !== null) { + l('CMDispTooltipWarningParent').remove(); + } } diff --git a/src/Disp/Tooltips/WrinklerTooltips.js b/src/Disp/Tooltips/WrinklerTooltips.js index 815c5cc9..cb48499c 100644 --- a/src/Disp/Tooltips/WrinklerTooltips.js +++ b/src/Disp/Tooltips/WrinklerTooltips.js @@ -1,7 +1,11 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { SimObjects } from '../../Sim/VariablesAndData'; import { Beautify } from '../BeautifyAndFormatting/BeautifyFormatting'; -import { TooltipWrinkler, TooltipWrinklerArea, TooltipWrinklerBeingShown } from '../VariablesAndData'; +import { + TooltipWrinkler, + TooltipWrinklerArea, + TooltipWrinklerBeingShown, +} from '../VariablesAndData'; /** * This function checks and create a tooltip for the wrinklers @@ -9,34 +13,38 @@ import { TooltipWrinkler, TooltipWrinklerArea, TooltipWrinklerBeingShown } from * As wrinklers are not appended to the DOM we us a different system than for other tooltips */ export function CheckWrinklerTooltip() { - if (CMOptions.TooltipWrink === 1 && TooltipWrinklerArea === 1) { // Latter is set by CM.Main.AddWrinklerAreaDetect - let showingTooltip = false; - for (const i of Object.keys(Game.wrinklers)) { - const me = Game.wrinklers[i]; - if (me.phase > 0 && me.selected) { - showingTooltip = true; - if (TooltipWrinklerBeingShown[i] === 0 || TooltipWrinklerBeingShown[i] === undefined) { - const placeholder = document.createElement('div'); - const wrinkler = document.createElement('div'); - wrinkler.style.minWidth = '120px'; - wrinkler.style.marginBottom = '4px'; - const div = document.createElement('div'); - div.style.textAlign = 'center'; - div.id = 'CMTooltipWrinkler'; - wrinkler.appendChild(div); - placeholder.appendChild(wrinkler); - Game.tooltip.draw(this, escape(placeholder.innerHTML)); - TooltipWrinkler = i; - TooltipWrinklerBeingShown[i] = 1; - } else break; - } else { - TooltipWrinklerBeingShown[i] = 0; - } - } - if (!showingTooltip) { - Game.tooltip.hide(); - } - } + if (CMOptions.TooltipWrink === 1 && TooltipWrinklerArea === 1) { + // Latter is set by CM.Main.AddWrinklerAreaDetect + let showingTooltip = false; + for (const i of Object.keys(Game.wrinklers)) { + const me = Game.wrinklers[i]; + if (me.phase > 0 && me.selected) { + showingTooltip = true; + if ( + TooltipWrinklerBeingShown[i] === 0 || + TooltipWrinklerBeingShown[i] === undefined + ) { + const placeholder = document.createElement('div'); + const wrinkler = document.createElement('div'); + wrinkler.style.minWidth = '120px'; + wrinkler.style.marginBottom = '4px'; + const div = document.createElement('div'); + div.style.textAlign = 'center'; + div.id = 'CMTooltipWrinkler'; + wrinkler.appendChild(div); + placeholder.appendChild(wrinkler); + Game.tooltip.draw(this, escape(placeholder.innerHTML)); + TooltipWrinkler = i; + TooltipWrinklerBeingShown[i] = 1; + } else break; + } else { + TooltipWrinklerBeingShown[i] = 0; + } + } + if (!showingTooltip) { + Game.tooltip.hide(); + } + } } /** @@ -45,19 +53,19 @@ export function CheckWrinklerTooltip() { * As wrinklers are not appended to the DOM we us a different system than for other tooltips */ export function UpdateWrinklerTooltip() { - if (CMOptions.TooltipWrink === 1 && l('CMTooltipWrinkler') !== null) { - let sucked = Game.wrinklers[TooltipWrinkler].sucked; - let toSuck = 1.1; - if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; - if (Game.wrinklers[TooltipWrinkler].type === 1) toSuck *= 3; // Shiny wrinklers - sucked *= toSuck; - if (Game.Has('Wrinklerspawn')) sucked *= 1.05; - if (SimObjects.Temple.minigameLoaded) { - const godLvl = Game.hasGod('scorn'); - if (godLvl === 1) sucked *= 1.15; - else if (godLvl === 2) sucked *= 1.1; - else if (godLvl === 3) sucked *= 1.05; - } - l('CMTooltipWrinkler').textContent = Beautify(sucked); - } + if (CMOptions.TooltipWrink === 1 && l('CMTooltipWrinkler') !== null) { + let sucked = Game.wrinklers[TooltipWrinkler].sucked; + let toSuck = 1.1; + if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; + if (Game.wrinklers[TooltipWrinkler].type === 1) toSuck *= 3; // Shiny wrinklers + sucked *= toSuck; + if (Game.Has('Wrinklerspawn')) sucked *= 1.05; + if (SimObjects.Temple.minigameLoaded) { + const godLvl = Game.hasGod('scorn'); + if (godLvl === 1) sucked *= 1.15; + else if (godLvl === 2) sucked *= 1.1; + else if (godLvl === 3) sucked *= 1.05; + } + l('CMTooltipWrinkler').textContent = Beautify(sucked); + } } diff --git a/src/Disp/VariablesAndData.js b/src/Disp/VariablesAndData.js index ddf8c89d..1423ff94 100644 --- a/src/Disp/VariablesAndData.js +++ b/src/Disp/VariablesAndData.js @@ -23,7 +23,17 @@ export const ColorPurple = 'Purple'; export const ColorGray = 'Gray'; export const ColorPink = 'Pink'; export const ColorBrown = 'Brown'; -export const Colors = [ColorGray, ColorBlue, ColorGreen, ColorYellow, ColorOrange, ColorRed, ColorPurple, ColorPink, ColorBrown]; +export const Colors = [ + ColorGray, + ColorBlue, + ColorGreen, + ColorYellow, + ColorOrange, + ColorRed, + ColorPurple, + ColorPink, + ColorBrown, +]; /** * This list is used to make some very basic tooltips. @@ -33,14 +43,42 @@ export const Colors = [ColorGray, ColorBlue, ColorGreen, ColorYellow, ColorOrang * @item {string} minWidth */ export const TooltipText = [ - ['GoldCookTooltipPlaceholder', 'Calculated with Golden Switch off', '200px'], - ['GoldCookDragonsFortuneTooltipPlaceholder', 'Calculated with Golden Switch off and at least one golden cookie on-screen', '240px'], - ['PrestMaxTooltipPlaceholder', 'The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg', '320px'], - ['NextPrestTooltipPlaceholder', 'Calculated with cookies gained from wrinklers and Chocolate egg', '200px'], - ['HeavenChipMaxTooltipPlaceholder', 'The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg', '330px'], - ['ResetTooltipPlaceholder', 'The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset', '370px'], - ['ChoEggTooltipPlaceholder', 'The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg', '300px'], - ['ChainNextLevelPlaceholder', 'Cheated cookies might break this formula', '250px'], + ['GoldCookTooltipPlaceholder', 'Calculated with Golden Switch off', '200px'], + [ + 'GoldCookDragonsFortuneTooltipPlaceholder', + 'Calculated with Golden Switch off and at least one golden cookie on-screen', + '240px', + ], + [ + 'PrestMaxTooltipPlaceholder', + 'The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg', + '320px', + ], + [ + 'NextPrestTooltipPlaceholder', + 'Calculated with cookies gained from wrinklers and Chocolate egg', + '200px', + ], + [ + 'HeavenChipMaxTooltipPlaceholder', + 'The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg', + '330px', + ], + [ + 'ResetTooltipPlaceholder', + 'The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset', + '370px', + ], + [ + 'ChoEggTooltipPlaceholder', + 'The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg', + '300px', + ], + [ + 'ChainNextLevelPlaceholder', + 'Cheated cookies might break this formula', + '250px', + ], ]; /** @@ -78,7 +116,12 @@ export const ClickTimes = [1, 5, 10, 15, 30]; * This array is used to give certain timers specific colours */ export const BuffColors = { - Frenzy: ColorYellow, 'Dragon Harvest': ColorBrown, 'Elder frenzy': ColorGreen, Clot: ColorRed, 'Click frenzy': ColorBlue, Dragonflight: ColorPink, + Frenzy: ColorYellow, + 'Dragon Harvest': ColorBrown, + 'Elder frenzy': ColorGreen, + Clot: ColorRed, + 'Click frenzy': ColorBlue, + Dragonflight: ColorPink, }; /** diff --git a/src/InitSaveLoad/init.js b/src/InitSaveLoad/init.js index e70ae844..3a8fa492 100644 --- a/src/InitSaveLoad/init.js +++ b/src/InitSaveLoad/init.js @@ -6,21 +6,23 @@ import CMLoop from '../Main/Loop'; import { isInitializing } from './Variables'; /** - * This creates a init function for the CM object. Per Game code/comments: - * "this function is called as soon as the mod is registered - * declare hooks here" - * It starts the further initialization of CookieMonster and registers hooks - */ + * This creates a init function for the CM object. Per Game code/comments: + * "this function is called as soon as the mod is registered + * declare hooks here" + * It starts the further initialization of CookieMonster and registers hooks + */ export default function init() { - isInitializing = true; - let proceed = true; - if (Game.version !== Number(VersionMajor)) { - proceed = confirm(`Cookie Monster version ${VersionMajor}.${VersionMinor} is meant for Game version ${VersionMajor}. Loading a different version may cause errors. Do you still want to load Cookie Monster?`); - } - if (proceed) { - InitializeCookieMonster(); - Game.registerHook('draw', Draw); - Game.registerHook('logic', CMLoop); - isInitializing = false; - } + isInitializing = true; + let proceed = true; + if (Game.version !== Number(VersionMajor)) { + proceed = confirm( + `Cookie Monster version ${VersionMajor}.${VersionMinor} is meant for Game version ${VersionMajor}. Loading a different version may cause errors. Do you still want to load Cookie Monster?`, + ); + } + if (proceed) { + InitializeCookieMonster(); + Game.registerHook('draw', Draw); + Game.registerHook('logic', CMLoop); + isInitializing = false; + } } diff --git a/src/InitSaveLoad/load.js b/src/InitSaveLoad/load.js index 4fc4d5a6..6942eb84 100644 --- a/src/InitSaveLoad/load.js +++ b/src/InitSaveLoad/load.js @@ -7,11 +7,21 @@ import InitData from '../Sim/InitializeData/InitData'; * "do stuff with the string data you saved previously" */ export default function load(str) { - const save = JSON.parse(str); - InitData(); - LoadConfig(save.settings); - if (save.version !== `${VersionMajor}.${VersionMinor}`) { - if (Game.prefs.popups) Game.Popup('A new version of Cookie Monster has been loaded, check out the release notes in the info tab!'); - else Game.Notify('A new version of Cookie Monster has been loaded, check out the release notes in the info tab!', '', '', 0, 1); - } + const save = JSON.parse(str); + InitData(); + LoadConfig(save.settings); + if (save.version !== `${VersionMajor}.${VersionMinor}`) { + if (Game.prefs.popups) + Game.Popup( + 'A new version of Cookie Monster has been loaded, check out the release notes in the info tab!', + ); + else + Game.Notify( + 'A new version of Cookie Monster has been loaded, check out the release notes in the info tab!', + '', + '', + 0, + 1, + ); + } } diff --git a/src/InitSaveLoad/save.js b/src/InitSaveLoad/save.js index a42befa6..7f2e523c 100644 --- a/src/InitSaveLoad/save.js +++ b/src/InitSaveLoad/save.js @@ -7,8 +7,8 @@ import { VersionMajor, VersionMinor } from '../Data/Moddata'; * return 'a string to be saved';" */ export default function save() { - return JSON.stringify({ - settings: CMOptions, - version: `${VersionMajor}.${VersionMinor}`, - }); + return JSON.stringify({ + settings: CMOptions, + version: `${VersionMajor}.${VersionMinor}`, + }); } diff --git a/src/Main/CheckStates/Garden.js b/src/Main/CheckStates/Garden.js index 5675113e..808f8064 100644 --- a/src/Main/CheckStates/Garden.js +++ b/src/Main/CheckStates/Garden.js @@ -7,11 +7,14 @@ import { LastGardenNextStep } from '../VariablesAndData'; * This function checks if a garden tick has happened */ export default function CheckGardenTick() { - if (Game.Objects.Farm.minigameLoaded && LastGardenNextStep !== Game.Objects.Farm.minigame.nextStep) { - if (LastGardenNextStep !== 0 && LastGardenNextStep < Date.now()) { - Flash(3, 'GardFlash'); - PlaySound(CMOptions.GardSoundURL, 'GardSound', 'GardVolume'); - } - LastGardenNextStep = Game.Objects.Farm.minigame.nextStep; - } + if ( + Game.Objects.Farm.minigameLoaded && + LastGardenNextStep !== Game.Objects.Farm.minigame.nextStep + ) { + if (LastGardenNextStep !== 0 && LastGardenNextStep < Date.now()) { + Flash(3, 'GardFlash'); + PlaySound(CMOptions.GardSoundURL, 'GardSound', 'GardVolume'); + } + LastGardenNextStep = Game.Objects.Farm.minigame.nextStep; + } } diff --git a/src/Main/CheckStates/GoldenCookie.js b/src/Main/CheckStates/GoldenCookie.js index 0da1e54e..18d1727d 100644 --- a/src/Main/CheckStates/GoldenCookie.js +++ b/src/Main/CheckStates/GoldenCookie.js @@ -1,5 +1,8 @@ /* eslint-disable no-unused-vars */ -import { CacheSpawnedGoldenShimmer, CacheGoldenShimmersByID } from '../../Cache/VariablesAndData'; +import { + CacheSpawnedGoldenShimmer, + CacheGoldenShimmersByID, +} from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import CreateGCTimer from '../../Disp/GoldenCookieTimers/GoldenCookieTimers'; import Flash from '../../Disp/Notifications/Flash'; @@ -7,7 +10,11 @@ import Notification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { UpdateFavicon } from '../../Disp/TabTitle/FavIcon'; import { GCTimers } from '../../Disp/VariablesAndData'; -import { CurrSpawnedGoldenCookieState, LastGoldenCookieState, LastSpawnedGoldenCookieState } from '../VariablesAndData'; +import { + CurrSpawnedGoldenCookieState, + LastGoldenCookieState, + LastSpawnedGoldenCookieState, +} from '../VariablesAndData'; /** * Auxilirary function that finds all currently spawned shimmers. @@ -15,15 +22,15 @@ import { CurrSpawnedGoldenCookieState, LastGoldenCookieState, LastSpawnedGoldenC * It is called by CM.CM.Main.CheckGoldenCookie */ function FindShimmer() { - CurrSpawnedGoldenCookieState = 0; - CacheGoldenShimmersByID = {}; - for (const i of Object.keys(Game.shimmers)) { - CacheGoldenShimmersByID[Game.shimmers[i].id] = Game.shimmers[i]; - if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'golden') { - CacheSpawnedGoldenShimmer = Game.shimmers[i]; - CurrSpawnedGoldenCookieState += 1; - } - } + CurrSpawnedGoldenCookieState = 0; + CacheGoldenShimmersByID = {}; + for (const i of Object.keys(Game.shimmers)) { + CacheGoldenShimmersByID[Game.shimmers[i].id] = Game.shimmers[i]; + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'golden') { + CacheSpawnedGoldenShimmer = Game.shimmers[i]; + CurrSpawnedGoldenCookieState += 1; + } + } } /** @@ -31,36 +38,43 @@ function FindShimmer() { * It is called by CM.Main.Loop */ export default function CheckGoldenCookie() { - FindShimmer(); - for (const i of Object.keys(GCTimers)) { - if (typeof CacheGoldenShimmersByID[i] === 'undefined') { - GCTimers[i].parentNode.removeChild(GCTimers[i]); - delete GCTimers[i]; - } - } - if (LastGoldenCookieState !== Game.shimmerTypes.golden.n) { - LastGoldenCookieState = Game.shimmerTypes.golden.n; - if (LastGoldenCookieState) { - if (LastSpawnedGoldenCookieState < CurrSpawnedGoldenCookieState) { - Flash(3, 'GCFlash'); - PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume'); - Notification('GCNotification', 'Golden Cookie Spawned', 'A Golden Cookie has spawned. Click it now!'); - } + FindShimmer(); + for (const i of Object.keys(GCTimers)) { + if (typeof CacheGoldenShimmersByID[i] === 'undefined') { + GCTimers[i].parentNode.removeChild(GCTimers[i]); + delete GCTimers[i]; + } + } + if (LastGoldenCookieState !== Game.shimmerTypes.golden.n) { + LastGoldenCookieState = Game.shimmerTypes.golden.n; + if (LastGoldenCookieState) { + if (LastSpawnedGoldenCookieState < CurrSpawnedGoldenCookieState) { + Flash(3, 'GCFlash'); + PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume'); + Notification( + 'GCNotification', + 'Golden Cookie Spawned', + 'A Golden Cookie has spawned. Click it now!', + ); + } - for (const i of Object.keys(Game.shimmers)) { - if (typeof GCTimers[Game.shimmers[i].id] === 'undefined') { - CreateGCTimer(Game.shimmers[i]); - } - } - } - UpdateFavicon(); - LastSpawnedGoldenCookieState = CurrSpawnedGoldenCookieState; - if (CurrSpawnedGoldenCookieState === 0) CacheSpawnedGoldenShimmer = 0; - } else if (CMOptions.GCTimer === 1 && LastGoldenCookieState) { - for (const i of Object.keys(GCTimers)) { - GCTimers[i].style.opacity = CacheGoldenShimmersByID[i].l.style.opacity; - GCTimers[i].style.transform = CacheGoldenShimmersByID[i].l.style.transform; - GCTimers[i].textContent = Math.ceil(CacheGoldenShimmersByID[i].life / Game.fps); - } - } + for (const i of Object.keys(Game.shimmers)) { + if (typeof GCTimers[Game.shimmers[i].id] === 'undefined') { + CreateGCTimer(Game.shimmers[i]); + } + } + } + UpdateFavicon(); + LastSpawnedGoldenCookieState = CurrSpawnedGoldenCookieState; + if (CurrSpawnedGoldenCookieState === 0) CacheSpawnedGoldenShimmer = 0; + } else if (CMOptions.GCTimer === 1 && LastGoldenCookieState) { + for (const i of Object.keys(GCTimers)) { + GCTimers[i].style.opacity = CacheGoldenShimmersByID[i].l.style.opacity; + GCTimers[i].style.transform = + CacheGoldenShimmersByID[i].l.style.transform; + GCTimers[i].textContent = Math.ceil( + CacheGoldenShimmersByID[i].life / Game.fps, + ); + } + } } diff --git a/src/Main/CheckStates/Grimoire.js b/src/Main/CheckStates/Grimoire.js index c6669e20..3835b726 100644 --- a/src/Main/CheckStates/Grimoire.js +++ b/src/Main/CheckStates/Grimoire.js @@ -9,14 +9,21 @@ import { LastMagicBarFull } from '../VariablesAndData'; * It is called by CM.Main.Loop */ export default function CheckMagicMeter() { - if (Game.Objects['Wizard tower'].minigameLoaded && CMOptions.GrimoireBar === 1) { - const minigame = Game.Objects['Wizard tower'].minigame; - if (minigame.magic < minigame.magicM) LastMagicBarFull = false; - else if (!LastMagicBarFull) { - LastMagicBarFull = true; - Flash(3, 'MagicFlash'); - PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume'); - Notification('MagicNotification', 'Magic Meter full', 'Your Magic Meter is full. Cast a spell!'); - } - } + if ( + Game.Objects['Wizard tower'].minigameLoaded && + CMOptions.GrimoireBar === 1 + ) { + const minigame = Game.Objects['Wizard tower'].minigame; + if (minigame.magic < minigame.magicM) LastMagicBarFull = false; + else if (!LastMagicBarFull) { + LastMagicBarFull = true; + Flash(3, 'MagicFlash'); + PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume'); + Notification( + 'MagicNotification', + 'Magic Meter full', + 'Your Magic Meter is full. Cast a spell!', + ); + } + } } diff --git a/src/Main/CheckStates/Season.js b/src/Main/CheckStates/Season.js index c9023d58..958a0b4f 100644 --- a/src/Main/CheckStates/Season.js +++ b/src/Main/CheckStates/Season.js @@ -11,16 +11,20 @@ import { LastSeasonPopupState } from '../VariablesAndData'; * It is called by CM.Main.Loop */ export default function CheckSeasonPopup() { - if (LastSeasonPopupState !== Game.shimmerTypes.reindeer.spawned) { - LastSeasonPopupState = Game.shimmerTypes.reindeer.spawned; - for (const i of Object.keys(Game.shimmers)) { - if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'reindeer') { - CacheSeasonPopShimmer = Game.shimmers[i]; - break; - } - } - Flash(3, 'SeaFlash'); - PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume'); - Notification('SeaNotification', 'Reindeer sighted!', 'A Reindeer has spawned. Click it now!'); - } + if (LastSeasonPopupState !== Game.shimmerTypes.reindeer.spawned) { + LastSeasonPopupState = Game.shimmerTypes.reindeer.spawned; + for (const i of Object.keys(Game.shimmers)) { + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'reindeer') { + CacheSeasonPopShimmer = Game.shimmers[i]; + break; + } + } + Flash(3, 'SeaFlash'); + PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume'); + Notification( + 'SeaNotification', + 'Reindeer sighted!', + 'A Reindeer has spawned. Click it now!', + ); + } } diff --git a/src/Main/CheckStates/Ticker.js b/src/Main/CheckStates/Ticker.js index 03b0899d..f515d675 100644 --- a/src/Main/CheckStates/Ticker.js +++ b/src/Main/CheckStates/Ticker.js @@ -8,12 +8,20 @@ import { LastTickerFortuneState } from '../VariablesAndData'; * It is called by CM.Main.Loop */ export default function CheckTickerFortune() { - if (LastTickerFortuneState !== (Game.TickerEffect && Game.TickerEffect.type === 'fortune')) { - LastTickerFortuneState = (Game.TickerEffect && Game.TickerEffect.type === 'fortune'); - if (LastTickerFortuneState) { - Flash(3, 'FortuneFlash'); - PlaySound(CM.Options.FortuneSoundURL, 'FortuneSound', 'FortuneVolume'); - Notification('FortuneNotification', 'Fortune Cookie found', 'A Fortune Cookie has appeared on the Ticker.'); - } - } + if ( + LastTickerFortuneState !== + (Game.TickerEffect && Game.TickerEffect.type === 'fortune') + ) { + LastTickerFortuneState = + Game.TickerEffect && Game.TickerEffect.type === 'fortune'; + if (LastTickerFortuneState) { + Flash(3, 'FortuneFlash'); + PlaySound(CM.Options.FortuneSoundURL, 'FortuneSound', 'FortuneVolume'); + Notification( + 'FortuneNotification', + 'Fortune Cookie found', + 'A Fortune Cookie has appeared on the Ticker.', + ); + } + } } diff --git a/src/Main/CheckStates/Wrinkler.js b/src/Main/CheckStates/Wrinkler.js index 3712cbd3..6c1cf1b7 100644 --- a/src/Main/CheckStates/Wrinkler.js +++ b/src/Main/CheckStates/Wrinkler.js @@ -9,30 +9,55 @@ import { LastWrinklerCount } from '../VariablesAndData'; * It is called by CM.Main.Loop */ export default function CheckWrinklerCount() { - if (Game.elderWrath > 0) { - let CurrentWrinklers = 0; - for (const i in Game.wrinklers) { - if (Game.wrinklers[i].phase === 2) CurrentWrinklers++; - } - if (CurrentWrinklers > LastWrinklerCount) { - LastWrinklerCount = CurrentWrinklers; - if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxFlash) { - Flash(3, 'WrinklerMaxFlash'); - } else { - Flash(3, 'WrinklerFlash'); - } - if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxSound) { - PlaySound(CMOptions.WrinklerMaxSoundURL, 'WrinklerMaxSound', 'WrinklerMaxVolume'); - } else { - PlaySound(CMOptions.WrinklerSoundURL, 'WrinklerSound', 'WrinklerVolume'); - } - if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxNotification) { - Notification('WrinklerMaxNotification', 'Maximum Wrinklers Reached', 'You have reached your maximum ammount of wrinklers'); - } else { - Notification('WrinklerNotification', 'A Wrinkler appeared', 'A new wrinkler has appeared'); - } - } else { - LastWrinklerCount = CurrentWrinklers; - } - } + if (Game.elderWrath > 0) { + let CurrentWrinklers = 0; + for (const i in Game.wrinklers) { + if (Game.wrinklers[i].phase === 2) CurrentWrinklers++; + } + if (CurrentWrinklers > LastWrinklerCount) { + LastWrinklerCount = CurrentWrinklers; + if ( + CurrentWrinklers === Game.getWrinklersMax() && + CMOptions.WrinklerMaxFlash + ) { + Flash(3, 'WrinklerMaxFlash'); + } else { + Flash(3, 'WrinklerFlash'); + } + if ( + CurrentWrinklers === Game.getWrinklersMax() && + CMOptions.WrinklerMaxSound + ) { + PlaySound( + CMOptions.WrinklerMaxSoundURL, + 'WrinklerMaxSound', + 'WrinklerMaxVolume', + ); + } else { + PlaySound( + CMOptions.WrinklerSoundURL, + 'WrinklerSound', + 'WrinklerVolume', + ); + } + if ( + CurrentWrinklers === Game.getWrinklersMax() && + CMOptions.WrinklerMaxNotification + ) { + Notification( + 'WrinklerMaxNotification', + 'Maximum Wrinklers Reached', + 'You have reached your maximum ammount of wrinklers', + ); + } else { + Notification( + 'WrinklerNotification', + 'A Wrinkler appeared', + 'A new wrinkler has appeared', + ); + } + } else { + LastWrinklerCount = CurrentWrinklers; + } + } } diff --git a/src/Main/Initialization.js b/src/Main/Initialization.js index 0636f3b7..71227fdf 100644 --- a/src/Main/Initialization.js +++ b/src/Main/Initialization.js @@ -24,39 +24,53 @@ import AddWrinklerAreaDetect from './WrinklerArea/AddDetectArea'; * Initialization loop of Cookie Monster */ export default function InitializeCookieMonster() { - InitData(); - CacheStatsCookies(); - InitCache(); - - // Stored to check if we need to re-initiliaze data - LastModCount = Object.keys(Game.mods).length; - - // Creating visual elements - CreateCssArea(); - CreateBotBar(); - CreateTimerBar(); - CreateUpgradeBar(); - CreateWhiteScreen(); - CreateFavicon(); - for (const i of Object.keys(TooltipText)) { - CreateSimpleTooltip(TooltipText[i][0], TooltipText[i][1], TooltipText[i][2]); - } - CreateWrinklerButtons(); - UpdateBuildingUpgradeStyle(); - - ReplaceTooltips(); - AddWrinklerAreaDetect(); - - // Replace native functions - ReplaceNative(); - ReplaceNativeGrimoire(); - Game.CalculateGains(); - - LoadConfig(); // Must be after all things are created! - CMLastAscendState = Game.OnAscend; - - if (Game.prefs.popups) Game.Popup(`Cookie Monster version ${VersionMajor}.${VersionMinor} loaded!`); - else Game.Notify(`Cookie Monster version ${VersionMajor}.${VersionMinor} loaded!`, '', '', 1, 1); - - Game.Win('Third-party'); + InitData(); + CacheStatsCookies(); + InitCache(); + + // Stored to check if we need to re-initiliaze data + LastModCount = Object.keys(Game.mods).length; + + // Creating visual elements + CreateCssArea(); + CreateBotBar(); + CreateTimerBar(); + CreateUpgradeBar(); + CreateWhiteScreen(); + CreateFavicon(); + for (const i of Object.keys(TooltipText)) { + CreateSimpleTooltip( + TooltipText[i][0], + TooltipText[i][1], + TooltipText[i][2], + ); + } + CreateWrinklerButtons(); + UpdateBuildingUpgradeStyle(); + + ReplaceTooltips(); + AddWrinklerAreaDetect(); + + // Replace native functions + ReplaceNative(); + ReplaceNativeGrimoire(); + Game.CalculateGains(); + + LoadConfig(); // Must be after all things are created! + CMLastAscendState = Game.OnAscend; + + if (Game.prefs.popups) + Game.Popup( + `Cookie Monster version ${VersionMajor}.${VersionMinor} loaded!`, + ); + else + Game.Notify( + `Cookie Monster version ${VersionMajor}.${VersionMinor} loaded!`, + '', + '', + 1, + 1, + ); + + Game.Win('Third-party'); } diff --git a/src/Main/Loop.js b/src/Main/Loop.js index f731a86f..1718873d 100644 --- a/src/Main/Loop.js +++ b/src/Main/Loop.js @@ -3,13 +3,20 @@ import LoopCache from '../Cache/CacheLoop'; import CacheNoGoldSwitchCPS from '../Cache/CPS/NoGoldSwitchCPS'; import CacheSellAllForChoEgg from '../Cache/CPS/SellChoEgg'; import CacheDragonCost from '../Cache/Dragon/Dragon'; -import { CacheBuildingsPrices, CacheIncome } from '../Cache/PriceAndIncome/PriceAndIncome'; +import { + CacheBuildingsPrices, + CacheIncome, +} from '../Cache/PriceAndIncome/PriceAndIncome'; import { CacheChain } from '../Cache/Stats/ChainCookies'; import CacheAllMissingUpgrades from '../Cache/Stats/MissingUpgrades'; import CacheSeasonSpec from '../Cache/Stats/Reindeer'; -import { CacheGoldenAndWrathCookiesMults, CacheStatsCookies } from '../Cache/Stats/Stats'; import { - CacheDoRemakeBuildPrices, CacheHadBuildAura, + CacheGoldenAndWrathCookiesMults, + CacheStatsCookies, +} from '../Cache/Stats/Stats'; +import { + CacheDoRemakeBuildPrices, + CacheHadBuildAura, } from '../Cache/VariablesAndData'; import UpdateAscendState from '../Disp/HelperFunctions/UpdateAscendState'; import { LastAscendState } from '../Disp/VariablesAndData'; @@ -28,58 +35,58 @@ import { LastModCount } from './VariablesAndData'; * CM.init registers it to the "logic" hook provided by the modding api */ export default function CMLoop() { - if (LastAscendState !== Game.OnAscend) { - LastAscendState = Game.OnAscend; - UpdateAscendState(); - } - if (!Game.OnAscend && Game.AscendTimer === 0) { - // Check if any other mods have been loaded - if (LastModCount !== Object.keys(Game.mods).length) { - InitData(); - InitCache(); - LastModCount = Object.keys(Game.mods).length; - } + if (LastAscendState !== Game.OnAscend) { + LastAscendState = Game.OnAscend; + UpdateAscendState(); + } + if (!Game.OnAscend && Game.AscendTimer === 0) { + // Check if any other mods have been loaded + if (LastModCount !== Object.keys(Game.mods).length) { + InitData(); + InitCache(); + LastModCount = Object.keys(Game.mods).length; + } - // CM.Sim.DoSims is set whenever CPS has changed - if (SimDoSims) { - CacheIncome(); + // CM.Sim.DoSims is set whenever CPS has changed + if (SimDoSims) { + CacheIncome(); - CacheNoGoldSwitchCPS(); // Needed first - CacheGoldenAndWrathCookiesMults(); - CacheStatsCookies(); - CacheAllMissingUpgrades(); - CacheChain(); - CacheDragonCost(); + CacheNoGoldSwitchCPS(); // Needed first + CacheGoldenAndWrathCookiesMults(); + CacheStatsCookies(); + CacheAllMissingUpgrades(); + CacheChain(); + CacheDragonCost(); - CacheSeasonSpec(); - CacheSellAllForChoEgg(); + CacheSeasonSpec(); + CacheSellAllForChoEgg(); - SimDoSims = 0; - } + SimDoSims = 0; + } - // Check for aura change to recalculate buildings prices - const hasBuildAura = Game.auraMult('Fierce Hoarder') > 0; - if (!CacheHadBuildAura && hasBuildAura) { - CacheHadBuildAura = true; - CacheDoRemakeBuildPrices = 1; - } else if (CacheHadBuildAura && !hasBuildAura) { - CacheHadBuildAura = false; - CacheDoRemakeBuildPrices = 1; - } + // Check for aura change to recalculate buildings prices + const hasBuildAura = Game.auraMult('Fierce Hoarder') > 0; + if (!CacheHadBuildAura && hasBuildAura) { + CacheHadBuildAura = true; + CacheDoRemakeBuildPrices = 1; + } else if (CacheHadBuildAura && !hasBuildAura) { + CacheHadBuildAura = false; + CacheDoRemakeBuildPrices = 1; + } - if (CacheDoRemakeBuildPrices) { - CacheBuildingsPrices(); - CacheDoRemakeBuildPrices = 0; - } + if (CacheDoRemakeBuildPrices) { + CacheBuildingsPrices(); + CacheDoRemakeBuildPrices = 0; + } - LoopCache(); + LoopCache(); - // Check all changing minigames and game-states - CheckGoldenCookie(); - CheckTickerFortune(); - CheckSeasonPopup(); - CheckGardenTick(); - CheckMagicMeter(); - CheckWrinklerCount(); - } + // Check all changing minigames and game-states + CheckGoldenCookie(); + CheckTickerFortune(); + CheckSeasonPopup(); + CheckGardenTick(); + CheckMagicMeter(); + CheckWrinklerCount(); + } } diff --git a/src/Main/ReplaceGameElements/NativeGrimoire.js b/src/Main/ReplaceGameElements/NativeGrimoire.js index 298c55d5..1f5a9f43 100644 --- a/src/Main/ReplaceGameElements/NativeGrimoire.js +++ b/src/Main/ReplaceGameElements/NativeGrimoire.js @@ -4,7 +4,11 @@ import { FormatTime } from '../../Disp/BeautifyAndFormatting/BeautifyFormatting' import CalculateGrimoireRefillTime from '../../Disp/HelperFunctions/CalculateGrimoireRefillTime'; import { - BackupGrimoireDraw, BackupGrimoireLaunch, BackupGrimoireLaunchMod, HasReplaceNativeGrimoireDraw, HasReplaceNativeGrimoireLaunch, + BackupGrimoireDraw, + BackupGrimoireLaunch, + BackupGrimoireLaunchMod, + HasReplaceNativeGrimoireDraw, + HasReplaceNativeGrimoireLaunch, } from '../VariablesAndData'; import ReplaceTooltipGrimoire from './TooltipGrimoire'; @@ -12,42 +16,59 @@ import ReplaceTooltipGrimoire from './TooltipGrimoire'; * This function fixes replaces the .draw function of the Grimoire */ function ReplaceNativeGrimoireDraw() { - if (!HasReplaceNativeGrimoireDraw && Game.Objects['Wizard tower'].minigameLoaded) { - const minigame = Game.Objects['Wizard tower'].minigame; - BackupGrimoireDraw = minigame.draw; - Game.Objects['Wizard tower'].minigame.draw = function () { - BackupGrimoireDraw(); - if (CMOptions.GrimoireBar === 1 && minigame.magic < minigame.magicM) { - minigame.magicBarTextL.innerHTML += ` (${FormatTime(CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, minigame.magicM))})`; - } - }; - HasReplaceNativeGrimoireDraw = true; - } + if ( + !HasReplaceNativeGrimoireDraw && + Game.Objects['Wizard tower'].minigameLoaded + ) { + const minigame = Game.Objects['Wizard tower'].minigame; + BackupGrimoireDraw = minigame.draw; + Game.Objects['Wizard tower'].minigame.draw = function () { + BackupGrimoireDraw(); + if (CMOptions.GrimoireBar === 1 && minigame.magic < minigame.magicM) { + minigame.magicBarTextL.innerHTML += ` (${FormatTime( + CalculateGrimoireRefillTime( + minigame.magic, + minigame.magicM, + minigame.magicM, + ), + )})`; + } + }; + HasReplaceNativeGrimoireDraw = true; + } } /** * This function fixes replaces the .launch function of the Grimoire */ function ReplaceNativeGrimoireLaunch() { - if (!HasReplaceNativeGrimoireLaunch && Game.Objects['Wizard tower'].minigameLoaded) { - const minigame = Game.Objects['Wizard tower'].minigame; - BackupGrimoireLaunch = minigame.launch; - BackupGrimoireLaunchMod = new Function(`return ${minigame.launch.toString().split('=this').join('= Game.Objects[\'Wizard tower\'].minigame')}`); - Game.Objects['Wizard tower'].minigame.launch = function () { - BackupGrimoireLaunchMod(); - ReplaceTooltipGrimoire(); - HasReplaceNativeGrimoireDraw = false; - ReplaceNativeGrimoireDraw(); + if ( + !HasReplaceNativeGrimoireLaunch && + Game.Objects['Wizard tower'].minigameLoaded + ) { + const minigame = Game.Objects['Wizard tower'].minigame; + BackupGrimoireLaunch = minigame.launch; + BackupGrimoireLaunchMod = new Function( + `return ${minigame.launch + .toString() + .split('=this') + .join("= Game.Objects['Wizard tower'].minigame")}`, + ); + Game.Objects['Wizard tower'].minigame.launch = function () { + BackupGrimoireLaunchMod(); + ReplaceTooltipGrimoire(); + HasReplaceNativeGrimoireDraw = false; + ReplaceNativeGrimoireDraw(); - HasReplaceNativeGrimoireLaunch = true; - }; - } + HasReplaceNativeGrimoireLaunch = true; + }; + } } /** * This function fixes replaces the Launch and Draw functions of the Grimoire */ export default function ReplaceNativeGrimoire() { - ReplaceNativeGrimoireLaunch(); - ReplaceNativeGrimoireDraw(); + ReplaceNativeGrimoireLaunch(); + ReplaceNativeGrimoireDraw(); } diff --git a/src/Main/ReplaceGameElements/TooltipGrimoire.js b/src/Main/ReplaceGameElements/TooltipGrimoire.js index 9f52f49a..ac45ece2 100644 --- a/src/Main/ReplaceGameElements/TooltipGrimoire.js +++ b/src/Main/ReplaceGameElements/TooltipGrimoire.js @@ -5,16 +5,22 @@ import { TooltipGrimoireBackup } from '../VariablesAndData'; * This function replaces the original .onmouseover functions of the Grimoire minigame */ export default function ReplaceTooltipGrimoire() { - if (Game.Objects['Wizard tower'].minigameLoaded) { - for (const i in Game.Objects['Wizard tower'].minigame.spellsById) { - if (l(`grimoireSpell${i}`).onmouseover !== null) { - TooltipGrimoireBackup[i] = l(`grimoireSpell${i}`).onmouseover; - l(`grimoireSpell${i}`).onmouseover = function () { - Game.tooltip.dynamic = 1; - Game.tooltip.draw(this, function () { return CreateTooltip('g', `${i}`); }, 'this'); - Game.tooltip.wobble(); - }; - } - } - } + if (Game.Objects['Wizard tower'].minigameLoaded) { + for (const i in Game.Objects['Wizard tower'].minigame.spellsById) { + if (l(`grimoireSpell${i}`).onmouseover !== null) { + TooltipGrimoireBackup[i] = l(`grimoireSpell${i}`).onmouseover; + l(`grimoireSpell${i}`).onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('g', `${i}`); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + } + } + } } diff --git a/src/Main/ReplaceGameElements/TooltipUpgrades.js b/src/Main/ReplaceGameElements/TooltipUpgrades.js index 99de0a11..c349dae1 100644 --- a/src/Main/ReplaceGameElements/TooltipUpgrades.js +++ b/src/Main/ReplaceGameElements/TooltipUpgrades.js @@ -7,20 +7,24 @@ import { TooltipUpgradeBackup } from '../VariablesAndData'; * It is called by Game.RebuildUpgrades() through CM.Main.ReplaceNative() and is therefore not permanent like the other ReplaceTooltip functions */ export default function ReplaceTooltipUpgrade() { - TooltipUpgradeBackup = []; - for (const i of Object.keys(Game.UpgradesInStore)) { - if (l(`upgrade${i}`).onmouseover !== null) { - TooltipUpgradeBackup[i] = l(`upgrade${i}`).onmouseover; - l(`upgrade${i}`).onmouseover = function () { - if (!Game.mouseDown) { - Game.setOnCrate(this); - Game.tooltip.dynamic = 1; - Game.tooltip.draw(this, function () { - return CreateTooltip('u', `${i}`); - }, 'store'); - Game.tooltip.wobble(); - } - }; - } - } + TooltipUpgradeBackup = []; + for (const i of Object.keys(Game.UpgradesInStore)) { + if (l(`upgrade${i}`).onmouseover !== null) { + TooltipUpgradeBackup[i] = l(`upgrade${i}`).onmouseover; + l(`upgrade${i}`).onmouseover = function () { + if (!Game.mouseDown) { + Game.setOnCrate(this); + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('u', `${i}`); + }, + 'store', + ); + Game.tooltip.wobble(); + } + }; + } + } } diff --git a/src/Main/ReplaceGameElements/Tooltips.js b/src/Main/ReplaceGameElements/Tooltips.js index 64d9740e..d9f764d7 100644 --- a/src/Main/ReplaceGameElements/Tooltips.js +++ b/src/Main/ReplaceGameElements/Tooltips.js @@ -3,7 +3,9 @@ import { CreateTooltip } from '../../Disp/Tooltips/Tooltip'; import { - LoadMinigames, TooltipBuildBackup, TooltipLumpBackup, + LoadMinigames, + TooltipBuildBackup, + TooltipLumpBackup, } from '../VariablesAndData'; import ReplaceNativeGrimoire from './NativeGrimoire'; import ReplaceTooltipGrimoire from './TooltipGrimoire'; @@ -12,65 +14,93 @@ import ReplaceTooltipGrimoire from './TooltipGrimoire'; * This function replaces the original .onmouseover functions of buildings */ function ReplaceTooltipBuild() { - for (const i of Object.keys(Game.Objects)) { - const me = Game.Objects[i]; - if (l(`product${me.id}`).onmouseover !== null) { - TooltipBuildBackup[i] = l(`product${me.id}`).onmouseover; - l(`product${me.id}`).onmouseover = function () { - Game.tooltip.dynamic = 1; - Game.tooltip.draw(this, function () { return CreateTooltip('b', `${i}`); }, 'store'); - Game.tooltip.wobble(); - }; - } - } + for (const i of Object.keys(Game.Objects)) { + const me = Game.Objects[i]; + if (l(`product${me.id}`).onmouseover !== null) { + TooltipBuildBackup[i] = l(`product${me.id}`).onmouseover; + l(`product${me.id}`).onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('b', `${i}`); + }, + 'store', + ); + Game.tooltip.wobble(); + }; + } + } } /** * This function replaces the original .onmouseover functions of sugar lumps */ function ReplaceTooltipLump() { - if (Game.canLumps()) { - TooltipLumpBackup = l('lumps').onmouseover; - l('lumps').onmouseover = function () { - Game.tooltip.dynamic = 1; - Game.tooltip.draw(this, function () { return CreateTooltip('s', 'Lump'); }, 'this'); - Game.tooltip.wobble(); - }; - } + if (Game.canLumps()) { + TooltipLumpBackup = l('lumps').onmouseover; + l('lumps').onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('s', 'Lump'); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + } } /** * This function replaces the original .onmouseover functions of all garden plants */ function ReplaceTooltipGarden() { - if (Game.Objects.Farm.minigameLoaded) { - l('gardenTool-1').onmouseover = function () { Game.tooltip.dynamic = 1; Game.tooltip.draw(this, function () { return CreateTooltip('ha', 'HarvestAllButton'); }, 'this'); Game.tooltip.wobble(); }; - Array.from(l('gardenPlot').children).forEach((child) => { - const coords = child.id.slice(-3); - child.onmouseover = function () { - Game.tooltip.dynamic = 1; - Game.tooltip.draw(this, function () { return CreateTooltip('p', [`${coords[0]}`, `${coords[2]}`]); }, 'this'); - Game.tooltip.wobble(); - }; - }); - } + if (Game.Objects.Farm.minigameLoaded) { + l('gardenTool-1').onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('ha', 'HarvestAllButton'); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + Array.from(l('gardenPlot').children).forEach((child) => { + const coords = child.id.slice(-3); + child.onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('p', [`${coords[0]}`, `${coords[2]}`]); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + }); + } } /** * This function call all functions that replace Game-tooltips with Cookie Monster enhanced tooltips */ export default function ReplaceTooltips() { - ReplaceTooltipBuild(); - ReplaceTooltipLump(); + ReplaceTooltipBuild(); + ReplaceTooltipLump(); - // Replace Tooltips of Minigames. Nesting it in LoadMinigames makes sure to replace them even if - // they were not loaded initially - LoadMinigames = Game.LoadMinigames; - Game.LoadMinigames = function () { - LoadMinigames(); - ReplaceTooltipGarden(); - ReplaceTooltipGrimoire(); - ReplaceNativeGrimoire(); - }; - Game.LoadMinigames(); + // Replace Tooltips of Minigames. Nesting it in LoadMinigames makes sure to replace them even if + // they were not loaded initially + LoadMinigames = Game.LoadMinigames; + Game.LoadMinigames = function () { + LoadMinigames(); + ReplaceTooltipGarden(); + ReplaceTooltipGrimoire(); + ReplaceNativeGrimoire(); + }; + Game.LoadMinigames(); } diff --git a/src/Main/ReplaceGameFunctions/FixMouse.js b/src/Main/ReplaceGameFunctions/FixMouse.js index 938b0950..acf9529d 100644 --- a/src/Main/ReplaceGameFunctions/FixMouse.js +++ b/src/Main/ReplaceGameFunctions/FixMouse.js @@ -6,12 +6,12 @@ import { CMOptions } from '../../Config/VariablesAndData'; * before execution of their actual function */ export default function FixMouseY(target) { - if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) { - const timerBarHeight = parseInt(l('CMTimerBar').style.height, 10); - Game.mouseY -= timerBarHeight; - target(); - Game.mouseY += timerBarHeight; - } else { - target(); - } + if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) { + const timerBarHeight = parseInt(l('CMTimerBar').style.height, 10); + Game.mouseY -= timerBarHeight; + target(); + Game.mouseY += timerBarHeight; + } else { + target(); + } } diff --git a/src/Main/ReplaceGameFunctions/ReplaceNative.js b/src/Main/ReplaceGameFunctions/ReplaceNative.js index b8f158b0..bed5ef16 100644 --- a/src/Main/ReplaceGameFunctions/ReplaceNative.js +++ b/src/Main/ReplaceGameFunctions/ReplaceNative.js @@ -1,14 +1,21 @@ /* eslint-disable no-unused-vars */ import jscolor from '@eastdesire/jscolor'; import { CMOptions } from '../../Config/VariablesAndData'; -import { Beautify as CMBeautify, FormatTime } from '../../Disp/BeautifyAndFormatting/BeautifyFormatting'; +import { + Beautify as CMBeautify, + FormatTime, +} from '../../Disp/BeautifyAndFormatting/BeautifyFormatting'; import { AddAuraInfo, AddDragonLevelUpTooltip } from '../../Disp/Dragon/Dragon'; import AddMenu from '../../Disp/MenuSections/AddMenus'; import UpdateTitle from '../../Disp/TabTitle/TabTitle'; import ReplaceAscendTooltip from '../../Disp/Tooltips/AscendButton'; import UpdateTooltipLocation from '../../Disp/Tooltips/PositionLocation'; import { CMSayTime, Title } from '../../Disp/VariablesAndData'; -import { SimDateAges, SimDateCentury, SimDoSims } from '../../Sim/VariablesAndData'; +import { + SimDateAges, + SimDateCentury, + SimDoSims, +} from '../../Sim/VariablesAndData'; import ReplaceTooltipUpgrade from '../ReplaceGameElements/TooltipUpgrades'; import { BackupFunctions } from '../VariablesAndData'; import FixMouseY from './FixMouse'; @@ -17,110 +24,133 @@ import FixMouseY from './FixMouse'; * This function replaces certain native (from the base-game) functions */ export default function ReplaceNative() { - // eslint-disable-next-line no-undef - BackupFunctions.Beautify = Beautify; - // eslint-disable-next-line no-undef - Beautify = CMBeautify; - - BackupFunctions.CalculateGains = Game.CalculateGains; - Game.CalculateGains = function () { - BackupFunctions.CalculateGains(); - SimDoSims = 1; - SimDateAges = Date.now(); - SimDateCentury = Date.now(); - }; - - BackupFunctions.tooltip = {}; - BackupFunctions.tooltip.draw = Game.tooltip.draw; - BackupFunctions.tooltip.drawMod = new Function(`return ${Game.tooltip.draw.toString().split('this').join('Game.tooltip')}`)(); - Game.tooltip.draw = function (from, text, origin) { - BackupFunctions.tooltip.drawMod(from, text, origin); - }; - - BackupFunctions.tooltip.update = Game.tooltip.update; - BackupFunctions.tooltip.updateMod = new Function(`return ${Game.tooltip.update.toString().split('this.').join('Game.tooltip.')}`)(); - Game.tooltip.update = function () { - BackupFunctions.tooltip.updateMod(); - UpdateTooltipLocation(); - }; - - BackupFunctions.UpdateWrinklers = Game.UpdateWrinklers; - Game.UpdateWrinklers = function () { - FixMouseY(BackupFunctions.UpdateWrinklers); - }; - - BackupFunctions.UpdateSpecial = Game.UpdateSpecial; - Game.UpdateSpecial = function () { - FixMouseY(BackupFunctions.UpdateSpecial); - }; - - // Assumes newer browsers - l('bigCookie').removeEventListener('click', Game.ClickCookie, false); - l('bigCookie').addEventListener('click', function () { FixMouseY(Game.ClickCookie); }, false); - - BackupFunctions.RebuildUpgrades = Game.RebuildUpgrades; - Game.RebuildUpgrades = function () { - BackupFunctions.RebuildUpgrades(); - ReplaceTooltipUpgrade(); - Game.CalculateGains(); - }; - - BackupFunctions.ClickProduct = Game.ClickProduct; - /** - * This function adds a check to the purchase of a building to allow BulkBuyBlock to work. - * If the options is 1 (on) bulkPrice is under cookies you can't buy the building. - */ - Game.ClickProduct = function (what) { - if (!CMOptions.BulkBuyBlock || (Game.ObjectsById[what].bulkPrice < Game.cookies || Game.buyMode === -1)) { - BackupFunctions.ClickProduct(what); - } - }; - - BackupFunctions.DescribeDragonAura = Game.DescribeDragonAura; - /** - * This function adds the function CM.Disp.AddAuraInfo() to Game.DescribeDragonAura() - * This adds information about CPS differences and costs to the aura choosing interface - * @param {number} aura The number of the aura currently selected by the mouse/user - */ - Game.DescribeDragonAura = function (aura) { - BackupFunctions.DescribeDragonAura(aura); - AddAuraInfo(aura); - }; - - BackupFunctions.ToggleSpecialMenu = Game.ToggleSpecialMenu; - /** - * This function adds the code to display the tooltips for the levelUp button of the dragon - */ - Game.ToggleSpecialMenu = function (on) { - BackupFunctions.ToggleSpecialMenu(on); - AddDragonLevelUpTooltip(); - }; - - BackupFunctions.UpdateMenu = Game.UpdateMenu; - Game.UpdateMenu = function () { - if (typeof jscolor.picker === 'undefined' || typeof jscolor.picker.owner === 'undefined') { - BackupFunctions.UpdateMenu(); - AddMenu(); - } - }; - - BackupFunctions.sayTime = Game.sayTime; - CMSayTime = function (time, detail) { - if (Number.isNaN(time) || time <= 0) return BackupFunctions.sayTime(time, detail); - return FormatTime(time / Game.fps, 1); - }; - - BackupFunctions.Logic = Game.Logic; - Game.Logic = function () { - BackupFunctions.Logic(); - - // Update tab title - let title = 'Cookie Clicker'; - if (Game.season === 'fools') title = 'Cookie Baker'; - Title = `${(Game.OnAscend ? 'Ascending! ' : '')}${CMBeautify(Game.cookies)} ${(Game.cookies === 1 ? 'cookie' : 'cookies')} - ${title}`; - UpdateTitle(); - - // Since the Ascend Tooltip is not actually a tooltip we need to add our additional info here... - ReplaceAscendTooltip(); - }; + // eslint-disable-next-line no-undef + BackupFunctions.Beautify = Beautify; + // eslint-disable-next-line no-undef + Beautify = CMBeautify; + + BackupFunctions.CalculateGains = Game.CalculateGains; + Game.CalculateGains = function () { + BackupFunctions.CalculateGains(); + SimDoSims = 1; + SimDateAges = Date.now(); + SimDateCentury = Date.now(); + }; + + BackupFunctions.tooltip = {}; + BackupFunctions.tooltip.draw = Game.tooltip.draw; + BackupFunctions.tooltip.drawMod = new Function( + `return ${Game.tooltip.draw.toString().split('this').join('Game.tooltip')}`, + )(); + Game.tooltip.draw = function (from, text, origin) { + BackupFunctions.tooltip.drawMod(from, text, origin); + }; + + BackupFunctions.tooltip.update = Game.tooltip.update; + BackupFunctions.tooltip.updateMod = new Function( + `return ${Game.tooltip.update + .toString() + .split('this.') + .join('Game.tooltip.')}`, + )(); + Game.tooltip.update = function () { + BackupFunctions.tooltip.updateMod(); + UpdateTooltipLocation(); + }; + + BackupFunctions.UpdateWrinklers = Game.UpdateWrinklers; + Game.UpdateWrinklers = function () { + FixMouseY(BackupFunctions.UpdateWrinklers); + }; + + BackupFunctions.UpdateSpecial = Game.UpdateSpecial; + Game.UpdateSpecial = function () { + FixMouseY(BackupFunctions.UpdateSpecial); + }; + + // Assumes newer browsers + l('bigCookie').removeEventListener('click', Game.ClickCookie, false); + l('bigCookie').addEventListener( + 'click', + function () { + FixMouseY(Game.ClickCookie); + }, + false, + ); + + BackupFunctions.RebuildUpgrades = Game.RebuildUpgrades; + Game.RebuildUpgrades = function () { + BackupFunctions.RebuildUpgrades(); + ReplaceTooltipUpgrade(); + Game.CalculateGains(); + }; + + BackupFunctions.ClickProduct = Game.ClickProduct; + /** + * This function adds a check to the purchase of a building to allow BulkBuyBlock to work. + * If the options is 1 (on) bulkPrice is under cookies you can't buy the building. + */ + Game.ClickProduct = function (what) { + if ( + !CMOptions.BulkBuyBlock || + Game.ObjectsById[what].bulkPrice < Game.cookies || + Game.buyMode === -1 + ) { + BackupFunctions.ClickProduct(what); + } + }; + + BackupFunctions.DescribeDragonAura = Game.DescribeDragonAura; + /** + * This function adds the function CM.Disp.AddAuraInfo() to Game.DescribeDragonAura() + * This adds information about CPS differences and costs to the aura choosing interface + * @param {number} aura The number of the aura currently selected by the mouse/user + */ + Game.DescribeDragonAura = function (aura) { + BackupFunctions.DescribeDragonAura(aura); + AddAuraInfo(aura); + }; + + BackupFunctions.ToggleSpecialMenu = Game.ToggleSpecialMenu; + /** + * This function adds the code to display the tooltips for the levelUp button of the dragon + */ + Game.ToggleSpecialMenu = function (on) { + BackupFunctions.ToggleSpecialMenu(on); + AddDragonLevelUpTooltip(); + }; + + BackupFunctions.UpdateMenu = Game.UpdateMenu; + Game.UpdateMenu = function () { + if ( + typeof jscolor.picker === 'undefined' || + typeof jscolor.picker.owner === 'undefined' + ) { + BackupFunctions.UpdateMenu(); + AddMenu(); + } + }; + + BackupFunctions.sayTime = Game.sayTime; + CMSayTime = function (time, detail) { + if (Number.isNaN(time) || time <= 0) + return BackupFunctions.sayTime(time, detail); + return FormatTime(time / Game.fps, 1); + }; + + BackupFunctions.Logic = Game.Logic; + Game.Logic = function () { + BackupFunctions.Logic(); + + // Update tab title + let title = 'Cookie Clicker'; + if (Game.season === 'fools') title = 'Cookie Baker'; + Title = `${Game.OnAscend ? 'Ascending! ' : ''}${CMBeautify(Game.cookies)} ${ + Game.cookies === 1 ? 'cookie' : 'cookies' + } - ${title}`; + UpdateTitle(); + + // Since the Ascend Tooltip is not actually a tooltip we need to add our additional info here... + ReplaceAscendTooltip(); + }; } diff --git a/src/Main/WrinklerArea/AddDetectArea.js b/src/Main/WrinklerArea/AddDetectArea.js index b075e16c..c44f2ed4 100644 --- a/src/Main/WrinklerArea/AddDetectArea.js +++ b/src/Main/WrinklerArea/AddDetectArea.js @@ -1,17 +1,22 @@ /* eslint-disable no-unused-vars */ -import { TooltipWrinklerArea, TooltipWrinklerBeingShown } from '../../Disp/VariablesAndData'; +import { + TooltipWrinklerArea, + TooltipWrinklerBeingShown, +} from '../../Disp/VariablesAndData'; /** * This function creates .onmouseover/out events that determine if the mouse is hovering-over a Wrinkler * As wrinklers are not appended to the DOM we us a different system than for other tooltips */ export default function AddWrinklerAreaDetect() { - l('backgroundLeftCanvas').onmouseover = function () { TooltipWrinklerArea = 1; }; - l('backgroundLeftCanvas').onmouseout = function () { - TooltipWrinklerArea = 0; - Game.tooltip.hide(); - for (const i of Object.keys(Game.wrinklers)) { - TooltipWrinklerBeingShown[i] = 0; - } - }; + l('backgroundLeftCanvas').onmouseover = function () { + TooltipWrinklerArea = 1; + }; + l('backgroundLeftCanvas').onmouseout = function () { + TooltipWrinklerArea = 0; + Game.tooltip.hide(); + for (const i of Object.keys(Game.wrinklers)) { + TooltipWrinklerBeingShown[i] = 0; + } + }; } diff --git a/src/Sim/Calculations/CalculateGains.js b/src/Sim/Calculations/CalculateGains.js index 8f5b2645..70ed3fe7 100644 --- a/src/Sim/Calculations/CalculateGains.js +++ b/src/Sim/Calculations/CalculateGains.js @@ -8,7 +8,16 @@ import SimHas from '../ReplacedGameFunctions/SimHas'; import SimHasGod from '../ReplacedGameFunctions/SimHasGod'; import SimWin from '../SimulationData/SimWin'; import { - SimAchievementsOwned, SimCookiesPs, SimCookiesPsRaw, SimDateAges, SimDateCentury, SimEffs, SimHeavenlyPower, SimObjects, SimPrestige, SimUpgrades, + SimAchievementsOwned, + SimCookiesPs, + SimCookiesPsRaw, + SimDateAges, + SimDateCentury, + SimEffs, + SimHeavenlyPower, + SimObjects, + SimPrestige, + SimUpgrades, } from '../VariablesAndData'; /** @@ -18,201 +27,232 @@ import { * @global {number} CM.Sim.cookiesPs The CPS of the current sim data */ export default function CalculateGains() { - SimCookiesPs = 0; - let mult = 1; - // Include minigame effects - const effs = {}; - for (const i of Object.keys(Game.Objects)) { - if (Game.Objects[i].minigameLoaded && Game.Objects[i].minigame.effs) { - const myEffs = Game.Objects[i].minigame.effs; - for (const ii in myEffs) { - if (effs[ii]) effs[ii] *= myEffs[ii]; - else effs[ii] = myEffs[ii]; - } - } - } - SimEffs = effs; - - if (Game.ascensionMode !== 1) mult += parseFloat(SimPrestige) * 0.01 * SimHeavenlyPower * SimGetHeavenlyMultiplier(); - - mult *= SimEff('cps'); - - if (SimHas('Heralds') && Game.ascensionMode !== 1) mult *= 1 + 0.01 * Game.heralds; - - for (const i of Object.keys(Game.cookieUpgrades)) { - const me = Game.cookieUpgrades[i]; - if (SimHas(me.name)) { - // Some upgrades have a functio as .power (notably the valentine cookies) - // CM.Sim.InitialBuildingData has changed to use CM.Sim.Has instead of Game.Has etc. - // Therefore this call is to the .power of the Sim.Object - if (typeof (me.power) === 'function') { - mult *= 1 + (SimUpgrades[me.name].power(SimUpgrades[me.name]) * 0.01); - } else mult *= 1 + (me.power * 0.01); - } - } - - if (SimHas('Specialized chocolate chips')) mult *= 1.01; - if (SimHas('Designer cocoa beans')) mult *= 1.02; - if (SimHas('Underworld ovens')) mult *= 1.03; - if (SimHas('Exotic nuts')) mult *= 1.04; - if (SimHas('Arcane sugar')) mult *= 1.05; - - if (SimHas('Increased merriness')) mult *= 1.15; - if (SimHas('Improved jolliness')) mult *= 1.15; - if (SimHas('A lump of coal')) mult *= 1.01; - if (SimHas('An itchy sweater')) mult *= 1.01; - if (SimHas('Santa\'s dominion')) mult *= 1.2; - - if (SimHas('Fortune #100')) mult *= 1.01; - if (SimHas('Fortune #101')) mult *= 1.07; - - if (SimHas('Dragon scale')) mult *= 1.03; - - // Check effect of chosen Gods - let buildMult = 1; - if (SimHasGod) { - let godLvl = SimHasGod('asceticism'); - if (godLvl === 1) mult *= 1.15; - else if (godLvl === 2) mult *= 1.1; - else if (godLvl === 3) mult *= 1.05; - - godLvl = SimHasGod('ages'); - if (godLvl === 1) mult *= 1 + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2); - else if (godLvl === 2) mult *= 1 + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 12)) * Math.PI * 2); - else if (godLvl === 3) mult *= 1 + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 24)) * Math.PI * 2); - - godLvl = SimHasGod('decadence'); - if (godLvl === 1) buildMult *= 0.93; - else if (godLvl === 2) buildMult *= 0.95; - else if (godLvl === 3) buildMult *= 0.98; - - godLvl = SimHasGod('industry'); - if (godLvl === 1) buildMult *= 1.1; - else if (godLvl === 2) buildMult *= 1.06; - else if (godLvl === 3) buildMult *= 1.03; - - godLvl = SimHasGod('labor'); - if (godLvl === 1) buildMult *= 0.97; - else if (godLvl === 2) buildMult *= 0.98; - else if (godLvl === 3) buildMult *= 0.99; - } - - if (SimHas('Santa\'s legacy')) mult *= 1 + (Game.santaLevel + 1) * 0.03; - - const milkProgress = SimAchievementsOwned / 25; - let milkMult = 1; - if (SimHas('Santa\'s milk and cookies')) milkMult *= 1.05; - // if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05; - milkMult *= 1 + SimAuraMult('Breath of Milk') * 0.05; - if (SimHasGod) { - const godLvl = SimHasGod('mother'); - if (godLvl === 1) milkMult *= 1.1; - else if (godLvl === 2) milkMult *= 1.05; - else if (godLvl === 3) milkMult *= 1.03; - } - milkMult *= SimEff('milk'); - - let catMult = 1; - - if (SimHas('Kitten helpers')) catMult *= (1 + milkProgress * 0.1 * milkMult); - if (SimHas('Kitten workers')) catMult *= (1 + milkProgress * 0.125 * milkMult); - if (SimHas('Kitten engineers')) catMult *= (1 + milkProgress * 0.15 * milkMult); - if (SimHas('Kitten overseers')) catMult *= (1 + milkProgress * 0.175 * milkMult); - if (SimHas('Kitten managers')) catMult *= (1 + milkProgress * 0.2 * milkMult); - if (SimHas('Kitten accountants')) catMult *= (1 + milkProgress * 0.2 * milkMult); - if (SimHas('Kitten specialists')) catMult *= (1 + milkProgress * 0.2 * milkMult); - if (SimHas('Kitten experts')) catMult *= (1 + milkProgress * 0.2 * milkMult); - if (SimHas('Kitten consultants')) catMult *= (1 + milkProgress * 0.2 * milkMult); - if (SimHas('Kitten assistants to the regional manager')) catMult *= (1 + milkProgress * 0.175 * milkMult); - if (SimHas('Kitten marketeers')) catMult *= (1 + milkProgress * 0.15 * milkMult); - if (SimHas('Kitten analysts')) catMult *= (1 + milkProgress * 0.125 * milkMult); - if (SimHas('Kitten executives')) catMult *= (1 + milkProgress * 0.115 * milkMult); - if (SimHas('Kitten angels')) catMult *= (1 + milkProgress * 0.1 * milkMult); - if (SimHas('Fortune #103')) catMult *= (1 + milkProgress * 0.05 * milkMult); - - for (const i of Object.keys(SimObjects)) { - const me = SimObjects[i]; - let storedCps = me.cps(me); - if (Game.ascensionMode !== 1) storedCps *= (1 + me.level * 0.01) * buildMult; - if (me.name === 'Grandma' && SimHas('Milkhelp® lactose intolerance relief tablets')) storedCps *= 1 + 0.05 * milkProgress * milkMult; - SimCookiesPs += me.amount * storedCps; - } - - if (SimHas('"egg"')) SimCookiesPs += 9;// "egg" - - mult *= catMult; - - let eggMult = 1; - if (SimHas('Chicken egg')) eggMult *= 1.01; - if (SimHas('Duck egg')) eggMult *= 1.01; - if (SimHas('Turkey egg')) eggMult *= 1.01; - if (SimHas('Quail egg')) eggMult *= 1.01; - if (SimHas('Robin egg')) eggMult *= 1.01; - if (SimHas('Ostrich egg')) eggMult *= 1.01; - if (SimHas('Cassowary egg')) eggMult *= 1.01; - if (SimHas('Salmon roe')) eggMult *= 1.01; - if (SimHas('Frogspawn')) eggMult *= 1.01; - if (SimHas('Shark egg')) eggMult *= 1.01; - if (SimHas('Turtle egg')) eggMult *= 1.01; - if (SimHas('Ant larva')) eggMult *= 1.01; - if (SimHas('Century egg')) { - // The boost increases a little every day, with diminishing returns up to +10% on the 100th day - let day = Math.floor((SimDateCentury - Game.startDate) / 1000 / 10) * 10 / 60 / 60 / 24; - day = Math.min(day, 100); - // Sets a Cache value to be displayed in the Stats page, could be moved... - CacheCentEgg = 1 + (1 - (1 - day / 100) ** 3) * 0.1; - eggMult *= CacheCentEgg; - } - mult *= eggMult; - - if (SimHas('Sugar baking')) mult *= (1 + Math.min(100, Game.lumps) * 0.01); - - // if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2; - mult *= 1 + SimAuraMult('Radiant Appetite'); - - const rawCookiesPs = SimCookiesPs * mult; - for (const i of Object.keys(Game.CpsAchievements)) { - if (rawCookiesPs >= Game.CpsAchievements[i].threshold) SimWin(Game.CpsAchievements[i].name); - } - - SimCookiesPsRaw = rawCookiesPs; - - const n = Game.shimmerTypes.golden.n; - const auraMult = SimAuraMult('Dragon\'s Fortune'); - for (let i = 0; i < n; i++) { - mult *= 1 + auraMult * 1.23; - } - - const name = Game.bakeryName.toLowerCase(); - if (name === 'orteil') mult *= 0.99; - else if (name === 'ortiel') mult *= 0.98; - - if (SimHas('Elder Covenant')) mult *= 0.95; - - if (SimHas('Golden switch [off]')) { - let goldenSwitchMult = 1.5; - if (SimHas('Residual luck')) { - const upgrades = Game.goldenCookieUpgrades; - for (const i of Object.keys(upgrades)) { - if (SimHas(upgrades[i])) goldenSwitchMult += 0.1; - } - } - mult *= goldenSwitchMult; - } - if (SimHas('Shimmering veil [off]')) { - let veilMult = 0.5; - if (SimHas('Reinforced membrane')) veilMult += 0.1; - mult *= 1 + veilMult; - } - - if (SimHas('Magic shenanigans')) mult *= 1000; - if (SimHas('Occult obstruction')) mult *= 0; - - SimCookiesPs = Game.runModHookOnValue('cps', SimCookiesPs); - - mult *= GetCPSBuffMult(); - - SimCookiesPs *= mult; - - // if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; + SimCookiesPs = 0; + let mult = 1; + // Include minigame effects + const effs = {}; + for (const i of Object.keys(Game.Objects)) { + if (Game.Objects[i].minigameLoaded && Game.Objects[i].minigame.effs) { + const myEffs = Game.Objects[i].minigame.effs; + for (const ii in myEffs) { + if (effs[ii]) effs[ii] *= myEffs[ii]; + else effs[ii] = myEffs[ii]; + } + } + } + SimEffs = effs; + + if (Game.ascensionMode !== 1) + mult += + parseFloat(SimPrestige) * + 0.01 * + SimHeavenlyPower * + SimGetHeavenlyMultiplier(); + + mult *= SimEff('cps'); + + if (SimHas('Heralds') && Game.ascensionMode !== 1) + mult *= 1 + 0.01 * Game.heralds; + + for (const i of Object.keys(Game.cookieUpgrades)) { + const me = Game.cookieUpgrades[i]; + if (SimHas(me.name)) { + // Some upgrades have a functio as .power (notably the valentine cookies) + // CM.Sim.InitialBuildingData has changed to use CM.Sim.Has instead of Game.Has etc. + // Therefore this call is to the .power of the Sim.Object + if (typeof me.power === 'function') { + mult *= 1 + SimUpgrades[me.name].power(SimUpgrades[me.name]) * 0.01; + } else mult *= 1 + me.power * 0.01; + } + } + + if (SimHas('Specialized chocolate chips')) mult *= 1.01; + if (SimHas('Designer cocoa beans')) mult *= 1.02; + if (SimHas('Underworld ovens')) mult *= 1.03; + if (SimHas('Exotic nuts')) mult *= 1.04; + if (SimHas('Arcane sugar')) mult *= 1.05; + + if (SimHas('Increased merriness')) mult *= 1.15; + if (SimHas('Improved jolliness')) mult *= 1.15; + if (SimHas('A lump of coal')) mult *= 1.01; + if (SimHas('An itchy sweater')) mult *= 1.01; + if (SimHas("Santa's dominion")) mult *= 1.2; + + if (SimHas('Fortune #100')) mult *= 1.01; + if (SimHas('Fortune #101')) mult *= 1.07; + + if (SimHas('Dragon scale')) mult *= 1.03; + + // Check effect of chosen Gods + let buildMult = 1; + if (SimHasGod) { + let godLvl = SimHasGod('asceticism'); + if (godLvl === 1) mult *= 1.15; + else if (godLvl === 2) mult *= 1.1; + else if (godLvl === 3) mult *= 1.05; + + godLvl = SimHasGod('ages'); + if (godLvl === 1) + mult *= + 1 + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2); + else if (godLvl === 2) + mult *= + 1 + + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 12)) * Math.PI * 2); + else if (godLvl === 3) + mult *= + 1 + + 0.15 * Math.sin((SimDateAges / 1000 / (60 * 60 * 24)) * Math.PI * 2); + + godLvl = SimHasGod('decadence'); + if (godLvl === 1) buildMult *= 0.93; + else if (godLvl === 2) buildMult *= 0.95; + else if (godLvl === 3) buildMult *= 0.98; + + godLvl = SimHasGod('industry'); + if (godLvl === 1) buildMult *= 1.1; + else if (godLvl === 2) buildMult *= 1.06; + else if (godLvl === 3) buildMult *= 1.03; + + godLvl = SimHasGod('labor'); + if (godLvl === 1) buildMult *= 0.97; + else if (godLvl === 2) buildMult *= 0.98; + else if (godLvl === 3) buildMult *= 0.99; + } + + if (SimHas("Santa's legacy")) mult *= 1 + (Game.santaLevel + 1) * 0.03; + + const milkProgress = SimAchievementsOwned / 25; + let milkMult = 1; + if (SimHas("Santa's milk and cookies")) milkMult *= 1.05; + // if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05; + milkMult *= 1 + SimAuraMult('Breath of Milk') * 0.05; + if (SimHasGod) { + const godLvl = SimHasGod('mother'); + if (godLvl === 1) milkMult *= 1.1; + else if (godLvl === 2) milkMult *= 1.05; + else if (godLvl === 3) milkMult *= 1.03; + } + milkMult *= SimEff('milk'); + + let catMult = 1; + + if (SimHas('Kitten helpers')) catMult *= 1 + milkProgress * 0.1 * milkMult; + if (SimHas('Kitten workers')) catMult *= 1 + milkProgress * 0.125 * milkMult; + if (SimHas('Kitten engineers')) catMult *= 1 + milkProgress * 0.15 * milkMult; + if (SimHas('Kitten overseers')) + catMult *= 1 + milkProgress * 0.175 * milkMult; + if (SimHas('Kitten managers')) catMult *= 1 + milkProgress * 0.2 * milkMult; + if (SimHas('Kitten accountants')) + catMult *= 1 + milkProgress * 0.2 * milkMult; + if (SimHas('Kitten specialists')) + catMult *= 1 + milkProgress * 0.2 * milkMult; + if (SimHas('Kitten experts')) catMult *= 1 + milkProgress * 0.2 * milkMult; + if (SimHas('Kitten consultants')) + catMult *= 1 + milkProgress * 0.2 * milkMult; + if (SimHas('Kitten assistants to the regional manager')) + catMult *= 1 + milkProgress * 0.175 * milkMult; + if (SimHas('Kitten marketeers')) + catMult *= 1 + milkProgress * 0.15 * milkMult; + if (SimHas('Kitten analysts')) catMult *= 1 + milkProgress * 0.125 * milkMult; + if (SimHas('Kitten executives')) + catMult *= 1 + milkProgress * 0.115 * milkMult; + if (SimHas('Kitten angels')) catMult *= 1 + milkProgress * 0.1 * milkMult; + if (SimHas('Fortune #103')) catMult *= 1 + milkProgress * 0.05 * milkMult; + + for (const i of Object.keys(SimObjects)) { + const me = SimObjects[i]; + let storedCps = me.cps(me); + if (Game.ascensionMode !== 1) + storedCps *= (1 + me.level * 0.01) * buildMult; + if ( + me.name === 'Grandma' && + SimHas('Milkhelp® lactose intolerance relief tablets') + ) + storedCps *= 1 + 0.05 * milkProgress * milkMult; + SimCookiesPs += me.amount * storedCps; + } + + if (SimHas('"egg"')) SimCookiesPs += 9; // "egg" + + mult *= catMult; + + let eggMult = 1; + if (SimHas('Chicken egg')) eggMult *= 1.01; + if (SimHas('Duck egg')) eggMult *= 1.01; + if (SimHas('Turkey egg')) eggMult *= 1.01; + if (SimHas('Quail egg')) eggMult *= 1.01; + if (SimHas('Robin egg')) eggMult *= 1.01; + if (SimHas('Ostrich egg')) eggMult *= 1.01; + if (SimHas('Cassowary egg')) eggMult *= 1.01; + if (SimHas('Salmon roe')) eggMult *= 1.01; + if (SimHas('Frogspawn')) eggMult *= 1.01; + if (SimHas('Shark egg')) eggMult *= 1.01; + if (SimHas('Turtle egg')) eggMult *= 1.01; + if (SimHas('Ant larva')) eggMult *= 1.01; + if (SimHas('Century egg')) { + // The boost increases a little every day, with diminishing returns up to +10% on the 100th day + let day = + (Math.floor((SimDateCentury - Game.startDate) / 1000 / 10) * 10) / + 60 / + 60 / + 24; + day = Math.min(day, 100); + // Sets a Cache value to be displayed in the Stats page, could be moved... + CacheCentEgg = 1 + (1 - (1 - day / 100) ** 3) * 0.1; + eggMult *= CacheCentEgg; + } + mult *= eggMult; + + if (SimHas('Sugar baking')) mult *= 1 + Math.min(100, Game.lumps) * 0.01; + + // if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2; + mult *= 1 + SimAuraMult('Radiant Appetite'); + + const rawCookiesPs = SimCookiesPs * mult; + for (const i of Object.keys(Game.CpsAchievements)) { + if (rawCookiesPs >= Game.CpsAchievements[i].threshold) + SimWin(Game.CpsAchievements[i].name); + } + + SimCookiesPsRaw = rawCookiesPs; + + const n = Game.shimmerTypes.golden.n; + const auraMult = SimAuraMult("Dragon's Fortune"); + for (let i = 0; i < n; i++) { + mult *= 1 + auraMult * 1.23; + } + + const name = Game.bakeryName.toLowerCase(); + if (name === 'orteil') mult *= 0.99; + else if (name === 'ortiel') mult *= 0.98; + + if (SimHas('Elder Covenant')) mult *= 0.95; + + if (SimHas('Golden switch [off]')) { + let goldenSwitchMult = 1.5; + if (SimHas('Residual luck')) { + const upgrades = Game.goldenCookieUpgrades; + for (const i of Object.keys(upgrades)) { + if (SimHas(upgrades[i])) goldenSwitchMult += 0.1; + } + } + mult *= goldenSwitchMult; + } + if (SimHas('Shimmering veil [off]')) { + let veilMult = 0.5; + if (SimHas('Reinforced membrane')) veilMult += 0.1; + mult *= 1 + veilMult; + } + + if (SimHas('Magic shenanigans')) mult *= 1000; + if (SimHas('Occult obstruction')) mult *= 0; + + SimCookiesPs = Game.runModHookOnValue('cps', SimCookiesPs); + + mult *= GetCPSBuffMult(); + + SimCookiesPs *= mult; + + // if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; } diff --git a/src/Sim/Calculations/CheckOtherAchiev.js b/src/Sim/Calculations/CheckOtherAchiev.js index b3c1a216..300ae6d4 100644 --- a/src/Sim/Calculations/CheckOtherAchiev.js +++ b/src/Sim/Calculations/CheckOtherAchiev.js @@ -10,79 +10,89 @@ import { SimObjects, SimUpgradesOwned } from '../VariablesAndData'; * It is called at the end of any functions that simulates certain behaviour */ export default function CheckOtherAchiev() { - let grandmas = 0; - for (const i of Object.keys(Game.GrandmaSynergies)) { - if (SimHas(Game.GrandmaSynergies[i])) grandmas++; - } - if (!SimHasAchiev('Elder') && grandmas >= 7) SimWin('Elder'); - if (!SimHasAchiev('Veteran') && grandmas >= 14) SimWin('Veteran'); + let grandmas = 0; + for (const i of Object.keys(Game.GrandmaSynergies)) { + if (SimHas(Game.GrandmaSynergies[i])) grandmas++; + } + if (!SimHasAchiev('Elder') && grandmas >= 7) SimWin('Elder'); + if (!SimHasAchiev('Veteran') && grandmas >= 14) SimWin('Veteran'); - let buildingsOwned = 0; - let mathematician = 1; - let base10 = 1; - let minAmount = 100000; - for (const i of Object.keys(SimObjects)) { - buildingsOwned += SimObjects[i].amount; - minAmount = Math.min(SimObjects[i].amount, minAmount); - if (!SimHasAchiev('Mathematician')) { - if (SimObjects[i].amount < Math.min(128, 2 ** ((Game.ObjectsById.length - Game.Objects[i].id) - 1))) mathematician = 0; - } - if (!SimHasAchiev('Base 10')) { - if (SimObjects[i].amount < (Game.ObjectsById.length - Game.Objects[i].id) * 10) base10 = 0; - } - } - if (minAmount >= 1) SimWin('One with everything'); - if (mathematician === 1) SimWin('Mathematician'); - if (base10 === 1) SimWin('Base 10'); - if (minAmount >= 100) SimWin('Centennial'); - if (minAmount >= 150) SimWin('Centennial and a half'); - if (minAmount >= 200) SimWin('Bicentennial'); - if (minAmount >= 250) SimWin('Bicentennial and a half'); - if (minAmount >= 300) SimWin('Tricentennial'); - if (minAmount >= 350) SimWin('Tricentennial and a half'); - if (minAmount >= 400) SimWin('Quadricentennial'); - if (minAmount >= 450) SimWin('Quadricentennial and a half'); - if (minAmount >= 500) SimWin('Quincentennial'); - if (minAmount >= 550) SimWin('Quincentennial and a half'); - if (minAmount >= 600) SimWin('Sexcentennial'); + let buildingsOwned = 0; + let mathematician = 1; + let base10 = 1; + let minAmount = 100000; + for (const i of Object.keys(SimObjects)) { + buildingsOwned += SimObjects[i].amount; + minAmount = Math.min(SimObjects[i].amount, minAmount); + if (!SimHasAchiev('Mathematician')) { + if ( + SimObjects[i].amount < + Math.min(128, 2 ** (Game.ObjectsById.length - Game.Objects[i].id - 1)) + ) + mathematician = 0; + } + if (!SimHasAchiev('Base 10')) { + if ( + SimObjects[i].amount < + (Game.ObjectsById.length - Game.Objects[i].id) * 10 + ) + base10 = 0; + } + } + if (minAmount >= 1) SimWin('One with everything'); + if (mathematician === 1) SimWin('Mathematician'); + if (base10 === 1) SimWin('Base 10'); + if (minAmount >= 100) SimWin('Centennial'); + if (minAmount >= 150) SimWin('Centennial and a half'); + if (minAmount >= 200) SimWin('Bicentennial'); + if (minAmount >= 250) SimWin('Bicentennial and a half'); + if (minAmount >= 300) SimWin('Tricentennial'); + if (minAmount >= 350) SimWin('Tricentennial and a half'); + if (minAmount >= 400) SimWin('Quadricentennial'); + if (minAmount >= 450) SimWin('Quadricentennial and a half'); + if (minAmount >= 500) SimWin('Quincentennial'); + if (minAmount >= 550) SimWin('Quincentennial and a half'); + if (minAmount >= 600) SimWin('Sexcentennial'); - if (buildingsOwned >= 100) SimWin('Builder'); - if (buildingsOwned >= 500) SimWin('Architect'); - if (buildingsOwned >= 1000) SimWin('Engineer'); - if (buildingsOwned >= 2000) SimWin('Lord of Constructs'); - if (buildingsOwned >= 4000) SimWin('Grand design'); - if (buildingsOwned >= 8000) SimWin('Ecumenopolis'); + if (buildingsOwned >= 100) SimWin('Builder'); + if (buildingsOwned >= 500) SimWin('Architect'); + if (buildingsOwned >= 1000) SimWin('Engineer'); + if (buildingsOwned >= 2000) SimWin('Lord of Constructs'); + if (buildingsOwned >= 4000) SimWin('Grand design'); + if (buildingsOwned >= 8000) SimWin('Ecumenopolis'); - if (SimUpgradesOwned >= 20) SimWin('Enhancer'); - if (SimUpgradesOwned >= 50) SimWin('Augmenter'); - if (SimUpgradesOwned >= 100) SimWin('Upgrader'); - if (SimUpgradesOwned >= 200) SimWin('Lord of Progress'); - if (SimUpgradesOwned >= 300) SimWin('The full picture'); - if (SimUpgradesOwned >= 400) SimWin('When there\'s nothing left to add'); + if (SimUpgradesOwned >= 20) SimWin('Enhancer'); + if (SimUpgradesOwned >= 50) SimWin('Augmenter'); + if (SimUpgradesOwned >= 100) SimWin('Upgrader'); + if (SimUpgradesOwned >= 200) SimWin('Lord of Progress'); + if (SimUpgradesOwned >= 300) SimWin('The full picture'); + if (SimUpgradesOwned >= 400) SimWin("When there's nothing left to add"); - if (buildingsOwned >= 4000 && SimUpgradesOwned >= 300) SimWin('Polymath'); - if (buildingsOwned >= 8000 && SimUpgradesOwned >= 400) SimWin('Renaissance baker'); + if (buildingsOwned >= 4000 && SimUpgradesOwned >= 300) SimWin('Polymath'); + if (buildingsOwned >= 8000 && SimUpgradesOwned >= 400) + SimWin('Renaissance baker'); - if (SimObjects.Cursor.amount + SimObjects.Grandma.amount >= 777) SimWin('The elder scrolls'); + if (SimObjects.Cursor.amount + SimObjects.Grandma.amount >= 777) + SimWin('The elder scrolls'); - let hasAllHalloCook = true; - for (const i of Object.keys(HalloCookies)) { - if (!SimHas(HalloCookies[i])) hasAllHalloCook = false; - } - if (hasAllHalloCook) SimWin('Spooky cookies'); + let hasAllHalloCook = true; + for (const i of Object.keys(HalloCookies)) { + if (!SimHas(HalloCookies[i])) hasAllHalloCook = false; + } + if (hasAllHalloCook) SimWin('Spooky cookies'); - let hasAllChristCook = true; - for (const i of Object.keys(ChristCookies)) { - if (!SimHas(ChristCookies[i])) hasAllChristCook = false; - } - if (hasAllChristCook) SimWin('Let it snow'); + let hasAllChristCook = true; + for (const i of Object.keys(ChristCookies)) { + if (!SimHas(ChristCookies[i])) hasAllChristCook = false; + } + if (hasAllChristCook) SimWin('Let it snow'); - if (SimHas('Fortune cookies')) { - const list = Game.Tiers.fortune.upgrades; - let fortunes = 0; - for (const i of Object.keys(list)) { - if (SimHas(list[i].name)) fortunes++; - } - if (fortunes >= list.length) SimWin('O Fortuna'); - } + if (SimHas('Fortune cookies')) { + const list = Game.Tiers.fortune.upgrades; + let fortunes = 0; + for (const i of Object.keys(list)) { + if (SimHas(list[i].name)) fortunes++; + } + if (fortunes >= list.length) SimWin('O Fortuna'); + } } diff --git a/src/Sim/Calculations/NoGoldenSwitchCalc.js b/src/Sim/Calculations/NoGoldenSwitchCalc.js index 586d5d53..b92ebade 100644 --- a/src/Sim/Calculations/NoGoldenSwitchCalc.js +++ b/src/Sim/Calculations/NoGoldenSwitchCalc.js @@ -7,8 +7,8 @@ import CalculateGains from './CalculateGains'; * It is called by CM.Cache.NoGoldSwitchCPS() */ export default function CalcNoGoldSwitchCPS() { - CopyData(); - SimUpgrades['Golden switch [off]'].bought = 0; - CalculateGains(); - return SimCookiesPs; + CopyData(); + SimUpgrades['Golden switch [off]'].bought = 0; + CalculateGains(); + return SimCookiesPs; } diff --git a/src/Sim/InitializeData/InitAchievement.js b/src/Sim/InitializeData/InitAchievement.js index ef53db49..c3805a82 100644 --- a/src/Sim/InitializeData/InitAchievement.js +++ b/src/Sim/InitializeData/InitAchievement.js @@ -4,8 +4,8 @@ * @returns {Object} you The static object */ export default function InitAchievement(achievementName) { - const me = Game.Achievements[achievementName]; - const you = {}; - you.name = me.name; - return you; + const me = Game.Achievements[achievementName]; + const you = {}; + you.name = me.name; + return you; } diff --git a/src/Sim/InitializeData/InitData.js b/src/Sim/InitializeData/InitData.js index d3c4e5e7..6a1f1ec0 100644 --- a/src/Sim/InitializeData/InitData.js +++ b/src/Sim/InitializeData/InitData.js @@ -10,22 +10,22 @@ import InitUpgrade from './InitUpgrade'; * This function creates static objects for Buildings, Upgrades and Achievements */ export default function InitData() { - // Buildings - SimObjects = []; - for (const i of Object.keys(Game.Objects)) { - SimObjects[i] = InitialBuildingData(i); - } + // Buildings + SimObjects = []; + for (const i of Object.keys(Game.Objects)) { + SimObjects[i] = InitialBuildingData(i); + } - // Upgrades - SimUpgrades = []; - for (const i of Object.keys(Game.Upgrades)) { - SimUpgrades[i] = InitUpgrade(i); - } + // Upgrades + SimUpgrades = []; + for (const i of Object.keys(Game.Upgrades)) { + SimUpgrades[i] = InitUpgrade(i); + } - // Achievements - SimAchievements = []; - for (const i of Object.keys(Game.Achievements)) { - SimAchievements[i] = InitAchievement(i); - } - CopyData(); + // Achievements + SimAchievements = []; + for (const i of Object.keys(Game.Achievements)) { + SimAchievements[i] = InitAchievement(i); + } + CopyData(); } diff --git a/src/Sim/InitializeData/InitUpgrade.js b/src/Sim/InitializeData/InitUpgrade.js index 640f2965..0d8184ab 100644 --- a/src/Sim/InitializeData/InitUpgrade.js +++ b/src/Sim/InitializeData/InitUpgrade.js @@ -8,33 +8,33 @@ import { SimObjects } from '../VariablesAndData'; * @returns {Object} you The static object */ export default function InitUpgrade(upgradeName) { - const me = Game.Upgrades[upgradeName]; - const you = {}; - // Some upgrades have a function for .power (notably the valentine cookies) - you.power = me.power; - if (typeof (me.power) === 'function') { - if (me.name === 'Sugar crystal cookies') { - me.power = function () { - let n = 5; - for (const i in SimObjects) { - if (SimObjects[i].level >= 10) n += 1; - } - return n; - }; - } - me.power = function () { - let pow = 2; - if (SimHas('Starlove')) pow = 3; - if (Game.hasGod) { - const godLvl = SimHasGod('seasons'); - if (godLvl === 1) pow *= 1.3; - else if (godLvl === 2) pow *= 1.2; - else if (godLvl === 3) pow *= 1.1; - } - return pow; - }; - } - you.pool = me.pool; - you.name = me.name; - return you; + const me = Game.Upgrades[upgradeName]; + const you = {}; + // Some upgrades have a function for .power (notably the valentine cookies) + you.power = me.power; + if (typeof me.power === 'function') { + if (me.name === 'Sugar crystal cookies') { + me.power = function () { + let n = 5; + for (const i in SimObjects) { + if (SimObjects[i].level >= 10) n += 1; + } + return n; + }; + } + me.power = function () { + let pow = 2; + if (SimHas('Starlove')) pow = 3; + if (Game.hasGod) { + const godLvl = SimHasGod('seasons'); + if (godLvl === 1) pow *= 1.3; + else if (godLvl === 2) pow *= 1.2; + else if (godLvl === 3) pow *= 1.1; + } + return pow; + }; + } + you.pool = me.pool; + you.name = me.name; + return you; } diff --git a/src/Sim/InitializeData/InitialBuildingData.js b/src/Sim/InitializeData/InitialBuildingData.js index 010ba403..aee003e6 100644 --- a/src/Sim/InitializeData/InitialBuildingData.js +++ b/src/Sim/InitializeData/InitialBuildingData.js @@ -12,84 +12,97 @@ import { SimObjects } from '../VariablesAndData'; * @returns {Object} you The static object */ export default function InitialBuildingData(buildingName) { - const me = Game.Objects[buildingName]; - const you = {}; - if (me.name === 'Cursor') { - you.cps = function (it) { - let add = 0; - if (SimHas('Thousand fingers')) add += 0.1; - if (SimHas('Million fingers')) add *= 5; - if (SimHas('Billion fingers')) add *= 10; - if (SimHas('Trillion fingers')) add *= 20; - if (SimHas('Quadrillion fingers')) add *= 20; - if (SimHas('Quintillion fingers')) add *= 20; - if (SimHas('Sextillion fingers')) add *= 20; - if (SimHas('Septillion fingers')) add *= 20; - if (SimHas('Octillion fingers')) add *= 20; - if (SimHas('Nonillion fingers')) add *= 20; - let mult = 1; - let num = 0; - for (const i in SimObjects) { if (SimObjects[i].name !== 'Cursor') num += SimObjects[i].amount; } - add *= num; - mult *= SimGetTieredCpsMult(it); - mult *= Game.magicCpS('Cursor'); - mult *= SimEff('cursorCps'); - return Game.ComputeCps(0.1, SimHas('Reinforced index finger') + SimHas('Carpal tunnel prevention cream') + SimHas('Ambidextrous'), add) * mult; - }; - } else if (me.name === 'Grandma') { - you.cps = function (it) { - let mult = 1; - for (const i in Game.GrandmaSynergies) { - if (SimHas(Game.GrandmaSynergies[i])) mult *= 2; - } - if (SimHas('Bingo center/Research facility')) mult *= 4; - if (SimHas('Ritual rolling pins')) mult *= 2; - if (SimHas('Naughty list')) mult *= 2; + const me = Game.Objects[buildingName]; + const you = {}; + if (me.name === 'Cursor') { + you.cps = function (it) { + let add = 0; + if (SimHas('Thousand fingers')) add += 0.1; + if (SimHas('Million fingers')) add *= 5; + if (SimHas('Billion fingers')) add *= 10; + if (SimHas('Trillion fingers')) add *= 20; + if (SimHas('Quadrillion fingers')) add *= 20; + if (SimHas('Quintillion fingers')) add *= 20; + if (SimHas('Sextillion fingers')) add *= 20; + if (SimHas('Septillion fingers')) add *= 20; + if (SimHas('Octillion fingers')) add *= 20; + if (SimHas('Nonillion fingers')) add *= 20; + let mult = 1; + let num = 0; + for (const i in SimObjects) { + if (SimObjects[i].name !== 'Cursor') num += SimObjects[i].amount; + } + add *= num; + mult *= SimGetTieredCpsMult(it); + mult *= Game.magicCpS('Cursor'); + mult *= SimEff('cursorCps'); + return ( + Game.ComputeCps( + 0.1, + SimHas('Reinforced index finger') + + SimHas('Carpal tunnel prevention cream') + + SimHas('Ambidextrous'), + add, + ) * mult + ); + }; + } else if (me.name === 'Grandma') { + you.cps = function (it) { + let mult = 1; + for (const i in Game.GrandmaSynergies) { + if (SimHas(Game.GrandmaSynergies[i])) mult *= 2; + } + if (SimHas('Bingo center/Research facility')) mult *= 4; + if (SimHas('Ritual rolling pins')) mult *= 2; + if (SimHas('Naughty list')) mult *= 2; - if (SimHas('Elderwort biscuits')) mult *= 1.02; + if (SimHas('Elderwort biscuits')) mult *= 1.02; - mult *= SimEff('grandmaCps'); + mult *= SimEff('grandmaCps'); - if (SimHas('Cat ladies')) { - for (let i = 0; i < Game.UpgradesByPool.kitten.length; i++) { - if (SimHas(Game.UpgradesByPool.kitten[i].name)) mult *= 1.29; - } - } + if (SimHas('Cat ladies')) { + for (let i = 0; i < Game.UpgradesByPool.kitten.length; i++) { + if (SimHas(Game.UpgradesByPool.kitten[i].name)) mult *= 1.29; + } + } - mult *= SimGetTieredCpsMult(it); + mult *= SimGetTieredCpsMult(it); - let add = 0; - if (SimHas('One mind')) add += SimObjects.Grandma.amount * 0.02; - if (SimHas('Communal brainsweep')) add += SimObjects.Grandma.amount * 0.02; - if (SimHas('Elder Pact')) add += SimObjects.Portal.amount * 0.05; + let add = 0; + if (SimHas('One mind')) add += SimObjects.Grandma.amount * 0.02; + if (SimHas('Communal brainsweep')) + add += SimObjects.Grandma.amount * 0.02; + if (SimHas('Elder Pact')) add += SimObjects.Portal.amount * 0.05; - let num = 0; - for (const i in SimObjects) { if (SimObjects[i].name !== 'Grandma') num += SimObjects[i].amount; } - // if (Game.hasAura('Elder Battalion')) mult*=1+0.01*num; - mult *= 1 + SimAuraMult('Elder Battalion') * 0.01 * num; + let num = 0; + for (const i in SimObjects) { + if (SimObjects[i].name !== 'Grandma') num += SimObjects[i].amount; + } + // if (Game.hasAura('Elder Battalion')) mult*=1+0.01*num; + mult *= 1 + SimAuraMult('Elder Battalion') * 0.01 * num; - mult *= Game.magicCpS(me.name); + mult *= Game.magicCpS(me.name); - return (me.baseCps + add) * mult; - }; - } else { - you.cps = function (it) { - let mult = 1; - mult *= SimGetTieredCpsMult(it); - mult *= Game.magicCpS(it.name); - return it.baseCPS * mult; - }; - } + return (me.baseCps + add) * mult; + }; + } else { + you.cps = function (it) { + let mult = 1; + mult *= SimGetTieredCpsMult(it); + mult *= Game.magicCpS(it.name); + return it.baseCPS * mult; + }; + } - // Below is needed for above eval, specifically for the GetTieredCpsMult function - you.baseCps = me.baseCps; - you.name = me.name; - you.tieredUpgrades = me.tieredUpgrades; - you.synergies = me.synergies; - you.fortune = me.fortune; - you.grandma = me.grandma; - you.baseCPS = me.baseCps; - you.id = me.id; - you.vanilla = me.vanilla; - return you; + // Below is needed for above eval, specifically for the GetTieredCpsMult function + you.baseCps = me.baseCps; + you.name = me.name; + you.tieredUpgrades = me.tieredUpgrades; + you.synergies = me.synergies; + you.fortune = me.fortune; + you.grandma = me.grandma; + you.baseCPS = me.baseCps; + you.id = me.id; + you.vanilla = me.vanilla; + return you; } diff --git a/src/Sim/ReplacedGameFunctions/SimAuraMult.js b/src/Sim/ReplacedGameFunctions/SimAuraMult.js index 7b1f7137..9917804d 100644 --- a/src/Sim/ReplacedGameFunctions/SimAuraMult.js +++ b/src/Sim/ReplacedGameFunctions/SimAuraMult.js @@ -4,8 +4,16 @@ import { SimDragonAura, SimDragonAura2 } from '../VariablesAndData'; * This functions creates functions similarly to Game.auraMult but checks Sim Data instead of Game Data */ export default function SimAuraMult(what) { - let n = 0; - if (Game.dragonAuras[SimDragonAura].name === what || Game.dragonAuras[SimDragonAura2].name === what) n = 1; - if (Game.dragonAuras[SimDragonAura].name === 'Reality Bending' || Game.dragonAuras[SimDragonAura2].name === 'Reality Bending') n += 0.1; - return n; + let n = 0; + if ( + Game.dragonAuras[SimDragonAura].name === what || + Game.dragonAuras[SimDragonAura2].name === what + ) + n = 1; + if ( + Game.dragonAuras[SimDragonAura].name === 'Reality Bending' || + Game.dragonAuras[SimDragonAura2].name === 'Reality Bending' + ) + n += 0.1; + return n; } diff --git a/src/Sim/ReplacedGameFunctions/SimEff.js b/src/Sim/ReplacedGameFunctions/SimEff.js index 6e8c7d38..6e856baf 100644 --- a/src/Sim/ReplacedGameFunctions/SimEff.js +++ b/src/Sim/ReplacedGameFunctions/SimEff.js @@ -4,7 +4,8 @@ import { SimEffs } from '../VariablesAndData'; * This functions creates functions similarly to Game.Eff but checks Sim Data instead of Game Data */ export default function SimEff(name, def) { - if (typeof SimEffs[name] === 'undefined') { - return (typeof def === 'undefined' ? 1 : def); - } return SimEffs[name]; + if (typeof SimEffs[name] === 'undefined') { + return typeof def === 'undefined' ? 1 : def; + } + return SimEffs[name]; } diff --git a/src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js b/src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js index 74517b67..6b1fae67 100644 --- a/src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js +++ b/src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js @@ -6,22 +6,22 @@ import SimHasGod from './SimHasGod'; * This functions creates functions similarly to Game.GetHeavenlyMultiplier but checks Sim Data instead of Game Data */ export default function SimGetHeavenlyMultiplier() { - let heavenlyMult = 0; - if (SimHas('Heavenly chip secret')) heavenlyMult += 0.05; - if (SimHas('Heavenly cookie stand')) heavenlyMult += 0.20; - if (SimHas('Heavenly bakery')) heavenlyMult += 0.25; - if (SimHas('Heavenly confectionery')) heavenlyMult += 0.25; - if (SimHas('Heavenly key')) heavenlyMult += 0.25; - // if (SimHasAura('Dragon God')) heavenlyMult*=1.05; - heavenlyMult *= 1 + SimAuraMult('Dragon God') * 0.05; - if (SimHas('Lucky digit')) heavenlyMult *= 1.01; - if (SimHas('Lucky number')) heavenlyMult *= 1.01; - if (SimHas('Lucky payout')) heavenlyMult *= 1.01; - if (Game.hasGod) { - const godLvl = SimHasGod('creation'); - if (godLvl === 1) heavenlyMult *= 0.7; - else if (godLvl === 2) heavenlyMult *= 0.8; - else if (godLvl === 3) heavenlyMult *= 0.9; - } - return heavenlyMult; + let heavenlyMult = 0; + if (SimHas('Heavenly chip secret')) heavenlyMult += 0.05; + if (SimHas('Heavenly cookie stand')) heavenlyMult += 0.2; + if (SimHas('Heavenly bakery')) heavenlyMult += 0.25; + if (SimHas('Heavenly confectionery')) heavenlyMult += 0.25; + if (SimHas('Heavenly key')) heavenlyMult += 0.25; + // if (SimHasAura('Dragon God')) heavenlyMult*=1.05; + heavenlyMult *= 1 + SimAuraMult('Dragon God') * 0.05; + if (SimHas('Lucky digit')) heavenlyMult *= 1.01; + if (SimHas('Lucky number')) heavenlyMult *= 1.01; + if (SimHas('Lucky payout')) heavenlyMult *= 1.01; + if (Game.hasGod) { + const godLvl = SimHasGod('creation'); + if (godLvl === 1) heavenlyMult *= 0.7; + else if (godLvl === 2) heavenlyMult *= 0.8; + else if (godLvl === 3) heavenlyMult *= 0.9; + } + return heavenlyMult; } diff --git a/src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js b/src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js index 9c292f5e..b8309c13 100644 --- a/src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js +++ b/src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js @@ -6,7 +6,7 @@ import SimAuraMult from './SimAuraMult'; * @returns {number} giveBack The multiplier */ export default function SimGetSellMultiplier() { - let giveBack = 0.25; - giveBack *= 1 + SimAuraMult('Earth Shatterer'); - return giveBack; + let giveBack = 0.25; + giveBack *= 1 + SimAuraMult('Earth Shatterer'); + return giveBack; } diff --git a/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js b/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js index 3f00c961..bc5009d2 100644 --- a/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js +++ b/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js @@ -5,28 +5,43 @@ import SimHas from './SimHas'; * This functions creates functions similarly to Game.GetTieredCpsMult but checks Sim Data instead of Game Data */ export default function SimGetTieredCpsMult(me) { - let mult = 1; - for (const i in me.tieredUpgrades) { - if (!Game.Tiers[me.tieredUpgrades[i].tier].special && SimHas(me.tieredUpgrades[i].name)) mult *= 2; - } - for (const i in me.synergies) { - if (SimHas(me.synergies[i].name)) { - const syn = me.synergies[i]; - if (syn.buildingTie1.name === me.name) mult *= (1 + 0.05 * syn.buildingTie2.amount); - else if (syn.buildingTie2.name === me.name) mult *= (1 + 0.001 * syn.buildingTie1.amount); - } - } - if (me.fortune && SimHas(me.fortune.name)) mult *= 1.07; - if (me.grandma && SimHas(me.grandma.name)) mult *= (1 + SimObjects.Grandma.amount * 0.01 * (1 / (me.id - 1))); - if (typeof me.tieredUpgrades.misfortune === 'object') { - if (me.vanilla === 1 && SimHas(me.tieredUpgrades.misfortune.name)) { - switch (Game.elderWrath) { - default: mult *= 1; break; - case 1: mult *= 1.02; break; - case 2: mult *= 1.04; break; - case 3: mult *= 1.06; break; - } - } - } - return mult; + let mult = 1; + for (const i in me.tieredUpgrades) { + if ( + !Game.Tiers[me.tieredUpgrades[i].tier].special && + SimHas(me.tieredUpgrades[i].name) + ) + mult *= 2; + } + for (const i in me.synergies) { + if (SimHas(me.synergies[i].name)) { + const syn = me.synergies[i]; + if (syn.buildingTie1.name === me.name) + mult *= 1 + 0.05 * syn.buildingTie2.amount; + else if (syn.buildingTie2.name === me.name) + mult *= 1 + 0.001 * syn.buildingTie1.amount; + } + } + if (me.fortune && SimHas(me.fortune.name)) mult *= 1.07; + if (me.grandma && SimHas(me.grandma.name)) + mult *= 1 + SimObjects.Grandma.amount * 0.01 * (1 / (me.id - 1)); + if (typeof me.tieredUpgrades.misfortune === 'object') { + if (me.vanilla === 1 && SimHas(me.tieredUpgrades.misfortune.name)) { + switch (Game.elderWrath) { + default: + mult *= 1; + break; + case 1: + mult *= 1.02; + break; + case 2: + mult *= 1.04; + break; + case 3: + mult *= 1.06; + break; + } + } + } + return mult; } diff --git a/src/Sim/ReplacedGameFunctions/SimHas.js b/src/Sim/ReplacedGameFunctions/SimHas.js index 746ce9b2..50f8436c 100644 --- a/src/Sim/ReplacedGameFunctions/SimHas.js +++ b/src/Sim/ReplacedGameFunctions/SimHas.js @@ -4,7 +4,11 @@ import { SimUpgrades } from '../VariablesAndData'; * This functions creates functions similarly to Game.Has but checks Sim Data instead of Game Data */ export default function SimHas(what) { - const it = SimUpgrades[what]; - if (Game.ascensionMode === 1 && (it.pool === 'prestige' || it.tier === 'fortune')) return 0; - return (it ? it.bought : 0); + const it = SimUpgrades[what]; + if ( + Game.ascensionMode === 1 && + (it.pool === 'prestige' || it.tier === 'fortune') + ) + return 0; + return it ? it.bought : 0; } diff --git a/src/Sim/ReplacedGameFunctions/SimHasAchiev.js b/src/Sim/ReplacedGameFunctions/SimHasAchiev.js index e7542eac..d52450e5 100644 --- a/src/Sim/ReplacedGameFunctions/SimHasAchiev.js +++ b/src/Sim/ReplacedGameFunctions/SimHasAchiev.js @@ -4,5 +4,5 @@ import { SimAchievements } from '../VariablesAndData'; * This functions creates functions similarly to Game.HasAchiev but checks Sim Data instead of Game Data */ export default function SimHasAchiev(what) { - return (SimAchievements[what] ? SimAchievements[what].won : 0); + return SimAchievements[what] ? SimAchievements[what].won : 0; } diff --git a/src/Sim/ReplacedGameFunctions/SimHasAura.js b/src/Sim/ReplacedGameFunctions/SimHasAura.js index cb77bc04..87df5ee0 100644 --- a/src/Sim/ReplacedGameFunctions/SimHasAura.js +++ b/src/Sim/ReplacedGameFunctions/SimHasAura.js @@ -4,8 +4,11 @@ import { SimDragonAura, SimDragonAura2 } from '../VariablesAndData'; * This functions creates functions similarly to Game.hasAura but checks Sim Data instead of Game Data */ export default function SimHasAura(what) { - if (Game.dragonAuras[SimDragonAura].name === what || Game.dragonAuras[SimDragonAura2].name === what) { - return true; - } - return false; + if ( + Game.dragonAuras[SimDragonAura].name === what || + Game.dragonAuras[SimDragonAura2].name === what + ) { + return true; + } + return false; } diff --git a/src/Sim/ReplacedGameFunctions/SimHasGod.js b/src/Sim/ReplacedGameFunctions/SimHasGod.js index d6dcba94..c863875a 100644 --- a/src/Sim/ReplacedGameFunctions/SimHasGod.js +++ b/src/Sim/ReplacedGameFunctions/SimHasGod.js @@ -6,16 +6,16 @@ import { SimObjects } from '../VariablesAndData'; * @param {string} what Name of the achievement */ export default function SimHasGod(what) { - if (Game.hasGod) { - if (SimObjects.Temple.minigame === undefined) { - SimObjects.Temple.minigame = Game.Objects.Temple.minigame; - } - const god = SimObjects.Temple.minigame.gods[what]; - for (let i = 0; i < 3; i++) { - if (SimObjects.Temple.minigame.slot[i] === god.id) { - return i + 1; - } - } - } - return false; + if (Game.hasGod) { + if (SimObjects.Temple.minigame === undefined) { + SimObjects.Temple.minigame = Game.Objects.Temple.minigame; + } + const god = SimObjects.Temple.minigame.gods[what]; + for (let i = 0; i < 3; i++) { + if (SimObjects.Temple.minigame.slot[i] === god.id) { + return i + 1; + } + } + } + return false; } diff --git a/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js b/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js index 2efc09ca..bda3b83e 100644 --- a/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js +++ b/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js @@ -11,23 +11,23 @@ import SimHasGod from './SimHasGod'; * @returns {number} price The modified building price */ export default function SimModifyBuildingPrice(building, price) { - if (SimHas('Season savings')) price *= 0.99; - if (SimHas('Santa\'s dominion')) price *= 0.99; - if (SimHas('Faberge egg')) price *= 0.99; - if (SimHas('Divine discount')) price *= 0.99; - if (SimHas('Fortune #100')) price *= 0.99; - // if (SimHasAura('Fierce Hoarder')) price *= 0.98; - price *= 1 - SimAuraMult('Fierce Hoarder') * 0.02; - if (Game.hasBuff('Everything must go')) price *= 0.95; - if (Game.hasBuff('Crafty pixies')) price *= 0.98; - if (Game.hasBuff('Nasty goblins')) price *= 1.02; - if (building.fortune && SimHas(building.fortune.name)) price *= 0.93; - price *= SimEff('buildingCost'); - if (SimObjects.Temple.minigameLoaded) { - const godLvl = SimHasGod('creation'); - if (godLvl === 1) price *= 0.93; - else if (godLvl === 2) price *= 0.95; - else if (godLvl === 3) price *= 0.98; - } - return price; + if (SimHas('Season savings')) price *= 0.99; + if (SimHas("Santa's dominion")) price *= 0.99; + if (SimHas('Faberge egg')) price *= 0.99; + if (SimHas('Divine discount')) price *= 0.99; + if (SimHas('Fortune #100')) price *= 0.99; + // if (SimHasAura('Fierce Hoarder')) price *= 0.98; + price *= 1 - SimAuraMult('Fierce Hoarder') * 0.02; + if (Game.hasBuff('Everything must go')) price *= 0.95; + if (Game.hasBuff('Crafty pixies')) price *= 0.98; + if (Game.hasBuff('Nasty goblins')) price *= 1.02; + if (building.fortune && SimHas(building.fortune.name)) price *= 0.93; + price *= SimEff('buildingCost'); + if (SimObjects.Temple.minigameLoaded) { + const godLvl = SimHasGod('creation'); + if (godLvl === 1) price *= 0.93; + else if (godLvl === 2) price *= 0.95; + else if (godLvl === 3) price *= 0.98; + } + return price; } diff --git a/src/Sim/SimulationData/CopyData.js b/src/Sim/SimulationData/CopyData.js index 340492cb..3af0ea49 100644 --- a/src/Sim/SimulationData/CopyData.js +++ b/src/Sim/SimulationData/CopyData.js @@ -1,12 +1,24 @@ /* eslint-disable no-unused-vars */ import CacheDragonAuras from '../../Cache/Dragon/CacheDragonAuras'; -import { CacheDragonAura, CacheDragonAura2 } from '../../Cache/VariablesAndData'; +import { + CacheDragonAura, + CacheDragonAura2, +} from '../../Cache/VariablesAndData'; import { CreateBotBarBuildingColumn } from '../../Disp/InfoBars/CreateDOMElements'; import InitAchievement from '../InitializeData/InitAchievement'; import InitialBuildingData from '../InitializeData/InitialBuildingData'; import InitUpgrade from '../InitializeData/InitUpgrade'; import { - SimAchievements, SimAchievementsOwned, SimDragonAura, SimDragonAura2, SimHeavenlyPower, SimObjects, SimPledges, SimPrestige, SimUpgrades, SimUpgradesOwned, + SimAchievements, + SimAchievementsOwned, + SimDragonAura, + SimDragonAura2, + SimHeavenlyPower, + SimObjects, + SimPledges, + SimPrestige, + SimUpgrades, + SimUpgradesOwned, } from '../VariablesAndData'; /** @@ -14,60 +26,61 @@ import { * It is called at the start of any function that simulates certain behaviour or actions */ export default function CopyData() { - // Other variables - SimUpgradesOwned = Game.UpgradesOwned; - SimPledges = Game.pledges; - SimAchievementsOwned = Game.AchievementsOwned; - SimHeavenlyPower = Game.heavenlyPower; - SimPrestige = Game.prestige; + // Other variables + SimUpgradesOwned = Game.UpgradesOwned; + SimPledges = Game.pledges; + SimAchievementsOwned = Game.AchievementsOwned; + SimHeavenlyPower = Game.heavenlyPower; + SimPrestige = Game.prestige; - // Buildings - for (const i of Object.keys(Game.Objects)) { - const me = Game.Objects[i]; - let you = SimObjects[i]; - if (you === undefined) { // New building! - SimObjects[i] = InitialBuildingData(i); - you = SimObjects[i]; - CreateBotBarBuildingColumn(i); // Add new building to the bottom bar - } - you.amount = me.amount; - you.level = me.level; - you.totalCookies = me.totalCookies; - you.basePrice = me.basePrice; - you.free = me.free; - if (me.minigameLoaded) { - you.minigameLoaded = me.minigameLoaded; - you.minigame = me.minigame; - } - SimObjects[i] = you; - } + // Buildings + for (const i of Object.keys(Game.Objects)) { + const me = Game.Objects[i]; + let you = SimObjects[i]; + if (you === undefined) { + // New building! + SimObjects[i] = InitialBuildingData(i); + you = SimObjects[i]; + CreateBotBarBuildingColumn(i); // Add new building to the bottom bar + } + you.amount = me.amount; + you.level = me.level; + you.totalCookies = me.totalCookies; + you.basePrice = me.basePrice; + you.free = me.free; + if (me.minigameLoaded) { + you.minigameLoaded = me.minigameLoaded; + you.minigame = me.minigame; + } + SimObjects[i] = you; + } - // Upgrades - for (const i of Object.keys(Game.Upgrades)) { - const me = Game.Upgrades[i]; - let you = SimUpgrades[i]; - if (you === undefined) { - SimUpgrades[i] = InitUpgrade(i); - you = SimUpgrades[i]; - } - you.bought = me.bought; - SimUpgrades[i] = you; - } + // Upgrades + for (const i of Object.keys(Game.Upgrades)) { + const me = Game.Upgrades[i]; + let you = SimUpgrades[i]; + if (you === undefined) { + SimUpgrades[i] = InitUpgrade(i); + you = SimUpgrades[i]; + } + you.bought = me.bought; + SimUpgrades[i] = you; + } - // Achievements - for (const i of Object.keys(Game.Achievements)) { - const me = Game.Achievements[i]; - let you = SimAchievements[i]; - if (you === undefined) { - SimAchievements[i] = InitAchievement(i); - you = SimAchievements[i]; - } - you.won = me.won; - SimAchievements[i] = you; - } + // Achievements + for (const i of Object.keys(Game.Achievements)) { + const me = Game.Achievements[i]; + let you = SimAchievements[i]; + if (you === undefined) { + SimAchievements[i] = InitAchievement(i); + you = SimAchievements[i]; + } + you.won = me.won; + SimAchievements[i] = you; + } - // Auras - CacheDragonAuras(); - SimDragonAura = CacheDragonAura; - SimDragonAura2 = CacheDragonAura2; + // Auras + CacheDragonAuras(); + SimDragonAura = CacheDragonAura; + SimDragonAura2 = CacheDragonAura2; } diff --git a/src/Sim/SimulationData/SimWin.js b/src/Sim/SimulationData/SimWin.js index b982e36d..fa1b61b8 100644 --- a/src/Sim/SimulationData/SimWin.js +++ b/src/Sim/SimulationData/SimWin.js @@ -8,10 +8,10 @@ import { SimAchievements, SimAchievementsOwned } from '../VariablesAndData'; * @param {string} what Name of the achievement */ export default function SimWin(what) { - if (SimAchievements[what]) { - if (SimAchievements[what].won === 0) { - SimAchievements[what].won = 1; - if (Game.Achievements[what].pool !== 'shadow') SimAchievementsOwned++; - } - } + if (SimAchievements[what]) { + if (SimAchievements[what].won === 0) { + SimAchievements[what].won = 1; + if (Game.Achievements[what].pool !== 'shadow') SimAchievementsOwned++; + } + } } diff --git a/src/Sim/SimulationEvents/AuraChange.js b/src/Sim/SimulationEvents/AuraChange.js index e972240e..856b2653 100644 --- a/src/Sim/SimulationEvents/AuraChange.js +++ b/src/Sim/SimulationEvents/AuraChange.js @@ -1,10 +1,18 @@ /* eslint-disable no-unused-vars */ -import { CacheDragonAura, CacheDragonAura2 } from '../../Cache/VariablesAndData'; +import { + CacheDragonAura, + CacheDragonAura2, +} from '../../Cache/VariablesAndData'; import CalculateGains from '../Calculations/CalculateGains'; import CheckOtherAchiev from '../Calculations/CheckOtherAchiev'; import CopyData from '../SimulationData/CopyData'; import { - SimAchievementsOwned, SimBuildingsOwned, SimCookiesPs, SimDragonAura, SimDragonAura2, SimObjects, + SimAchievementsOwned, + SimBuildingsOwned, + SimCookiesPs, + SimDragonAura, + SimDragonAura2, + SimObjects, } from '../VariablesAndData'; /** @@ -14,35 +22,48 @@ import { * @returns {[number, number]} [CM.Sim.cookiesPs - Game.cookiesPs, price] The bonus cps and the price of the change */ export default function CalculateChangeAura(aura) { - CopyData(); + CopyData(); - // Check if aura being changed is first or second aura - const auraToBeChanged = l('promptContent').children[0].innerHTML.includes('secondary'); - if (auraToBeChanged) SimDragonAura2 = aura; - else SimDragonAura = aura; + // Check if aura being changed is first or second aura + const auraToBeChanged = l('promptContent').children[0].innerHTML.includes( + 'secondary', + ); + if (auraToBeChanged) SimDragonAura2 = aura; + else SimDragonAura = aura; - // Sell highest building but only if aura is different - let price = 0; - if (SimDragonAura !== CacheDragonAura || SimDragonAura2 !== CacheDragonAura2) { - for (let i = Game.ObjectsById.length - 1; i > -1; --i) { - if (Game.ObjectsById[i - 1].amount > 0) { - const highestBuilding = SimObjects[Game.ObjectsById[i].name].name; - SimObjects[highestBuilding].amount -= 1; - SimBuildingsOwned -= 1; - price = SimObjects[highestBuilding].basePrice * Game.priceIncrease ** Math.max(0, SimObjects[highestBuilding].amount - 1 - SimObjects[highestBuilding].free); - price = Game.modifyBuildingPrice(SimObjects[highestBuilding], price); - price = Math.ceil(price); - break; - } - } - } + // Sell highest building but only if aura is different + let price = 0; + if ( + SimDragonAura !== CacheDragonAura || + SimDragonAura2 !== CacheDragonAura2 + ) { + for (let i = Game.ObjectsById.length - 1; i > -1; --i) { + if (Game.ObjectsById[i - 1].amount > 0) { + const highestBuilding = SimObjects[Game.ObjectsById[i].name].name; + SimObjects[highestBuilding].amount -= 1; + SimBuildingsOwned -= 1; + price = + SimObjects[highestBuilding].basePrice * + Game.priceIncrease ** + Math.max( + 0, + SimObjects[highestBuilding].amount - + 1 - + SimObjects[highestBuilding].free, + ); + price = Game.modifyBuildingPrice(SimObjects[highestBuilding], price); + price = Math.ceil(price); + break; + } + } + } - const lastAchievementsOwned = SimAchievementsOwned; - CalculateGains(); + const lastAchievementsOwned = SimAchievementsOwned; + CalculateGains(); - CheckOtherAchiev(); - if (lastAchievementsOwned !== SimAchievementsOwned) { - CalculateGains(); - } - return [SimCookiesPs - Game.cookiesPs, price]; + CheckOtherAchiev(); + if (lastAchievementsOwned !== SimAchievementsOwned) { + CalculateGains(); + } + return [SimCookiesPs - Game.cookiesPs, price]; } diff --git a/src/Sim/SimulationEvents/BuyBuilding.js b/src/Sim/SimulationEvents/BuyBuilding.js index 2df91177..9609eaec 100644 --- a/src/Sim/SimulationEvents/BuyBuilding.js +++ b/src/Sim/SimulationEvents/BuyBuilding.js @@ -9,14 +9,20 @@ * @param {number} increase Increase of building * @returns {number} moni Total price */ -export default function BuildingGetPrice(build, basePrice, start, free, increase) { - let moni = 0; - for (let i = 0; i < increase; i++) { - let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); - price = Game.modifyBuildingPrice(build, price); - price = Math.ceil(price); - moni += price; - start++; - } - return moni; +export default function BuildingGetPrice( + build, + basePrice, + start, + free, + increase, +) { + let moni = 0; + for (let i = 0; i < increase; i++) { + let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); + price = Game.modifyBuildingPrice(build, price); + price = Math.ceil(price); + moni += price; + start++; + } + return moni; } diff --git a/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js b/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js index c4d38a65..0e8539e7 100644 --- a/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js +++ b/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js @@ -2,7 +2,11 @@ import CalculateGains from '../Calculations/CalculateGains'; import CheckOtherAchiev from '../Calculations/CheckOtherAchiev'; import CopyData from '../SimulationData/CopyData'; import SimWin from '../SimulationData/SimWin'; -import { SimAchievementsOwned, SimCookiesPs, SimObjects } from '../VariablesAndData'; +import { + SimAchievementsOwned, + SimCookiesPs, + SimObjects, +} from '../VariablesAndData'; /** * This function calculates the bonus income of buying a building @@ -12,39 +16,42 @@ import { SimAchievementsOwned, SimCookiesPs, SimObjects } from '../VariablesAndD * @returns {number} The bonus income of the building */ export default function BuyBuildingsBonusIncome(building, amount) { - CopyData(); - SimObjects[building].amount += amount; - const me = SimObjects[building]; + CopyData(); + SimObjects[building].amount += amount; + const me = SimObjects[building]; - if (building === 'Cursor') { - if (me.amount >= 1) SimWin('Click'); - if (me.amount >= 2) SimWin('Double-click'); - if (me.amount >= 50) SimWin('Mouse wheel'); - if (me.amount >= 100) SimWin('Of Mice and Men'); - if (me.amount >= 200) SimWin('The Digital'); - if (me.amount >= 300) SimWin('Extreme polydactyly'); - if (me.amount >= 400) SimWin('Dr. T'); - if (me.amount >= 500) SimWin('Thumbs, phalanges, metacarpals'); - if (me.amount >= 600) SimWin('With her finger and her thumb'); - if (me.amount >= 700) SimWin('Gotta hand it to you'); - if (me.amount >= 800) SimWin('The devil\'s workshop'); - } else { - for (const j in Game.Objects[me.name].tieredAchievs) { - if (me.amount >= Game.Tiers[Game.Objects[me.name].tieredAchievs[j].tier].achievUnlock) { - SimWin(Game.Objects[me.name].tieredAchievs[j].name); - } - } - } + if (building === 'Cursor') { + if (me.amount >= 1) SimWin('Click'); + if (me.amount >= 2) SimWin('Double-click'); + if (me.amount >= 50) SimWin('Mouse wheel'); + if (me.amount >= 100) SimWin('Of Mice and Men'); + if (me.amount >= 200) SimWin('The Digital'); + if (me.amount >= 300) SimWin('Extreme polydactyly'); + if (me.amount >= 400) SimWin('Dr. T'); + if (me.amount >= 500) SimWin('Thumbs, phalanges, metacarpals'); + if (me.amount >= 600) SimWin('With her finger and her thumb'); + if (me.amount >= 700) SimWin('Gotta hand it to you'); + if (me.amount >= 800) SimWin("The devil's workshop"); + } else { + for (const j in Game.Objects[me.name].tieredAchievs) { + if ( + me.amount >= + Game.Tiers[Game.Objects[me.name].tieredAchievs[j].tier].achievUnlock + ) { + SimWin(Game.Objects[me.name].tieredAchievs[j].name); + } + } + } - const lastAchievementsOwned = SimAchievementsOwned; + const lastAchievementsOwned = SimAchievementsOwned; - CalculateGains(); + CalculateGains(); - CheckOtherAchiev(); + CheckOtherAchiev(); - if (lastAchievementsOwned !== SimAchievementsOwned) { - CalculateGains(); - } + if (lastAchievementsOwned !== SimAchievementsOwned) { + CalculateGains(); + } - return SimCookiesPs - Game.cookiesPs; + return SimCookiesPs - Game.cookiesPs; } diff --git a/src/Sim/SimulationEvents/BuyUpgrades.js b/src/Sim/SimulationEvents/BuyUpgrades.js index 61731cdb..e5448bde 100644 --- a/src/Sim/SimulationEvents/BuyUpgrades.js +++ b/src/Sim/SimulationEvents/BuyUpgrades.js @@ -8,7 +8,12 @@ import SimHasGod from '../ReplacedGameFunctions/SimHasGod'; import CopyData from '../SimulationData/CopyData'; import SimWin from '../SimulationData/SimWin'; import { - SimAchievementsOwned, SimCookiesPs, SimObjects, SimPledges, SimUpgrades, SimUpgradesOwned, + SimAchievementsOwned, + SimCookiesPs, + SimObjects, + SimPledges, + SimUpgrades, + SimUpgradesOwned, } from '../VariablesAndData'; /** @@ -17,74 +22,91 @@ import { * @returns {number} out The clicking power */ function MouseCps() { - let add = 0; - if (SimHas('Thousand fingers')) add += 0.1; - if (SimHas('Million fingers')) add *= 5; - if (SimHas('Billion fingers')) add *= 10; - if (SimHas('Trillion fingers')) add *= 20; - if (SimHas('Quadrillion fingers')) add *= 20; - if (SimHas('Quintillion fingers')) add *= 20; - if (SimHas('Sextillion fingers')) add *= 20; - if (SimHas('Septillion fingers')) add *= 20; - if (SimHas('Octillion fingers')) add *= 20; - if (SimHas('Nonillion fingers')) add *= 20; - let num = 0; - for (const i of Object.keys(SimObjects)) { num += SimObjects[i].amount; } - num -= SimObjects.Cursor.amount; - add *= num; - - // Can use SimCookiesPs as function is always called after CM.Sim.CalculateGains() - if (SimHas('Plastic mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Iron mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Titanium mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Adamantium mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Unobtainium mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Eludium mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Wishalloy mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Fantasteel mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Nevercrack mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Armythril mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Technobsidian mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Plasmarble mouse')) add += SimCookiesPs * 0.01; - if (SimHas('Miraculite mouse')) add += SimCookiesPs * 0.01; - - if (SimHas('Fortune #104')) add += SimCookiesPs * 0.01; - - let mult = 1; - if (SimHas('Santa\'s helpers')) mult *= 1.1; - if (SimHas('Cookie egg')) mult *= 1.1; - if (SimHas('Halo gloves')) mult *= 1.1; - if (SimHas('Dragon claw')) mult *= 1.03; - - if (SimHas('Aura gloves')) { - mult *= 1 + 0.05 * Math.min(Game.Objects.Cursor.level, SimHas('Luminous gloves') ? 20 : 10); - } - - mult *= SimEff('click'); - if (SimObjects.Temple.minigameLoaded) { - if (SimHasGod) { - const godLvl = SimHasGod('labor'); - if (godLvl === 1) mult *= 1.15; - else if (godLvl === 2) mult *= 1.1; - else if (godLvl === 3) mult *= 1.05; - } - } - - for (const i of Object.keys(Game.buffs)) { - if (typeof Game.buffs[i].multClick !== 'undefined') mult *= Game.buffs[i].multClick; - } - - // if (CM.Sim.auraMult('Dragon Cursor')) mult*=1.05; - mult *= 1 + SimAuraMult('Dragon Cursor') * 0.05; - - // No need to make this function a CM function - let out = mult * Game.ComputeCps(1, SimHas('Reinforced index finger') + SimHas('Carpal tunnel prevention cream') + SimHas('Ambidextrous'), add); - - out = Game.runModHookOnValue('cookiesPerClick', out); - - if (Game.hasBuff('Cursed finger')) out = Game.buffs['Cursed finger'].power; - - return out; + let add = 0; + if (SimHas('Thousand fingers')) add += 0.1; + if (SimHas('Million fingers')) add *= 5; + if (SimHas('Billion fingers')) add *= 10; + if (SimHas('Trillion fingers')) add *= 20; + if (SimHas('Quadrillion fingers')) add *= 20; + if (SimHas('Quintillion fingers')) add *= 20; + if (SimHas('Sextillion fingers')) add *= 20; + if (SimHas('Septillion fingers')) add *= 20; + if (SimHas('Octillion fingers')) add *= 20; + if (SimHas('Nonillion fingers')) add *= 20; + let num = 0; + for (const i of Object.keys(SimObjects)) { + num += SimObjects[i].amount; + } + num -= SimObjects.Cursor.amount; + add *= num; + + // Can use SimCookiesPs as function is always called after CM.Sim.CalculateGains() + if (SimHas('Plastic mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Iron mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Titanium mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Adamantium mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Unobtainium mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Eludium mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Wishalloy mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Fantasteel mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Nevercrack mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Armythril mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Technobsidian mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Plasmarble mouse')) add += SimCookiesPs * 0.01; + if (SimHas('Miraculite mouse')) add += SimCookiesPs * 0.01; + + if (SimHas('Fortune #104')) add += SimCookiesPs * 0.01; + + let mult = 1; + if (SimHas("Santa's helpers")) mult *= 1.1; + if (SimHas('Cookie egg')) mult *= 1.1; + if (SimHas('Halo gloves')) mult *= 1.1; + if (SimHas('Dragon claw')) mult *= 1.03; + + if (SimHas('Aura gloves')) { + mult *= + 1 + + 0.05 * + Math.min( + Game.Objects.Cursor.level, + SimHas('Luminous gloves') ? 20 : 10, + ); + } + + mult *= SimEff('click'); + if (SimObjects.Temple.minigameLoaded) { + if (SimHasGod) { + const godLvl = SimHasGod('labor'); + if (godLvl === 1) mult *= 1.15; + else if (godLvl === 2) mult *= 1.1; + else if (godLvl === 3) mult *= 1.05; + } + } + + for (const i of Object.keys(Game.buffs)) { + if (typeof Game.buffs[i].multClick !== 'undefined') + mult *= Game.buffs[i].multClick; + } + + // if (CM.Sim.auraMult('Dragon Cursor')) mult*=1.05; + mult *= 1 + SimAuraMult('Dragon Cursor') * 0.05; + + // No need to make this function a CM function + let out = + mult * + Game.ComputeCps( + 1, + SimHas('Reinforced index finger') + + SimHas('Carpal tunnel prevention cream') + + SimHas('Ambidextrous'), + add, + ); + + out = Game.runModHookOnValue('cookiesPerClick', out); + + if (Game.hasBuff('Cursed finger')) out = Game.buffs['Cursed finger'].power; + + return out; } /** @@ -94,45 +116,51 @@ function MouseCps() { * @returns {[{number, number}]} The bonus income of the upgrade and the difference in MouseCPS */ export default function BuyUpgradesBonusIncome(upgrade) { - if (Game.Upgrades[upgrade].pool === 'toggle' || (Game.Upgrades[upgrade].bought === 0 && Game.Upgrades[upgrade].unlocked && Game.Upgrades[upgrade].pool !== 'prestige')) { - CopyData(); - if (SimUpgrades[upgrade].name === 'Shimmering veil [on]') { - SimUpgrades['Shimmering veil [off]'].bought = 0; - } else if (SimUpgrades[upgrade].name === 'Golden switch [on]') { - SimUpgrades['Golden switch [off]'].bought = 0; - } else { - SimUpgrades[upgrade].bought = (SimUpgrades[upgrade].bought + 1) % 2; - } - const me = SimUpgrades[upgrade]; - if (Game.CountsAsUpgradeOwned(Game.Upgrades[upgrade].pool)) SimUpgradesOwned++; - - if (upgrade === 'Elder Pledge') { - SimPledges++; - if (SimPledges > 0) SimWin('Elder nap'); - if (SimPledges >= 5) SimWin('Elder slumber'); - } else if (upgrade === 'Elder Covenant') { - SimWin('Elder calm'); - } else if (upgrade === 'Prism heart biscuits') { - SimWin('Lovely cookies'); - } else if (upgrade === 'Heavenly key') { - SimWin('Wholesome'); - } - - const lastAchievementsOwned = SimAchievementsOwned; - - CalculateGains(); - - CheckOtherAchiev(); - - if (lastAchievementsOwned !== SimAchievementsOwned) { - CalculateGains(); - } - - const diffMouseCPS = MouseCps() - Game.computedMouseCps; - if (diffMouseCPS) { - return [SimCookiesPs - Game.cookiesPs, diffMouseCPS]; - } - return [SimCookiesPs - Game.cookiesPs]; - } - return []; + if ( + Game.Upgrades[upgrade].pool === 'toggle' || + (Game.Upgrades[upgrade].bought === 0 && + Game.Upgrades[upgrade].unlocked && + Game.Upgrades[upgrade].pool !== 'prestige') + ) { + CopyData(); + if (SimUpgrades[upgrade].name === 'Shimmering veil [on]') { + SimUpgrades['Shimmering veil [off]'].bought = 0; + } else if (SimUpgrades[upgrade].name === 'Golden switch [on]') { + SimUpgrades['Golden switch [off]'].bought = 0; + } else { + SimUpgrades[upgrade].bought = (SimUpgrades[upgrade].bought + 1) % 2; + } + const me = SimUpgrades[upgrade]; + if (Game.CountsAsUpgradeOwned(Game.Upgrades[upgrade].pool)) + SimUpgradesOwned++; + + if (upgrade === 'Elder Pledge') { + SimPledges++; + if (SimPledges > 0) SimWin('Elder nap'); + if (SimPledges >= 5) SimWin('Elder slumber'); + } else if (upgrade === 'Elder Covenant') { + SimWin('Elder calm'); + } else if (upgrade === 'Prism heart biscuits') { + SimWin('Lovely cookies'); + } else if (upgrade === 'Heavenly key') { + SimWin('Wholesome'); + } + + const lastAchievementsOwned = SimAchievementsOwned; + + CalculateGains(); + + CheckOtherAchiev(); + + if (lastAchievementsOwned !== SimAchievementsOwned) { + CalculateGains(); + } + + const diffMouseCPS = MouseCps() - Game.computedMouseCps; + if (diffMouseCPS) { + return [SimCookiesPs - Game.cookiesPs, diffMouseCPS]; + } + return [SimCookiesPs - Game.cookiesPs]; + } + return []; } diff --git a/src/Sim/SimulationEvents/ResetAscension.js b/src/Sim/SimulationEvents/ResetAscension.js index 8525e67c..86be1388 100644 --- a/src/Sim/SimulationEvents/ResetAscension.js +++ b/src/Sim/SimulationEvents/ResetAscension.js @@ -5,7 +5,10 @@ import CheckOtherAchiev from '../Calculations/CheckOtherAchiev'; import CopyData from '../SimulationData/CopyData'; import SimWin from '../SimulationData/SimWin'; import { - SimAchievementsOwned, SimCookiesPs, SimPrestige, SimUpgrades, + SimAchievementsOwned, + SimCookiesPs, + SimPrestige, + SimUpgrades, } from '../VariablesAndData'; /** @@ -15,65 +18,85 @@ import { * @returns {number} ResetCPS The CPS difference after reset */ export default function ResetBonus(newHeavenlyChips) { - // Calculate CPS with all Heavenly upgrades - let curCPS = Game.cookiesPs; - - CopyData(); - - if (SimUpgrades['Heavenly key'].bought === 0) { - SimUpgrades['Heavenly chip secret'].bought = 1; - SimUpgrades['Heavenly cookie stand'].bought = 1; - SimUpgrades['Heavenly bakery'].bought = 1; - SimUpgrades['Heavenly confectionery'].bought = 1; - SimUpgrades['Heavenly key'].bought = 1; - - CalculateGains(); - - curCPS = SimCookiesPs; - - CopyData(); - } - - if (CacheRealCookiesEarned >= 1000000) SimWin('Sacrifice'); - if (CacheRealCookiesEarned >= 1000000000) SimWin('Oblivion'); - if (CacheRealCookiesEarned >= 1000000000000) SimWin('From scratch'); - if (CacheRealCookiesEarned >= 1000000000000000) SimWin('Nihilism'); - if (CacheRealCookiesEarned >= 1000000000000000000) SimWin('Dematerialize'); - if (CacheRealCookiesEarned >= 1000000000000000000000) SimWin('Nil zero zilch'); - if (CacheRealCookiesEarned >= 1000000000000000000000000) SimWin('Transcendence'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000) SimWin('Obliterate'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000) SimWin('Negative void'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000) SimWin('To crumbs, you say?'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000) SimWin('You get nothing'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000) SimWin('Humble rebeginnings'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000) SimWin('The end of the world'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000) SimWin('Oh, you\'re back'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000000) SimWin('Lazarus'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000000000) SimWin('Smurf account'); - if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000000000000) SimWin('If at first you don\'t succeed'); - - SimUpgrades['Heavenly chip secret'].bought = 1; - SimUpgrades['Heavenly cookie stand'].bought = 1; - SimUpgrades['Heavenly bakery'].bought = 1; - SimUpgrades['Heavenly confectionery'].bought = 1; - SimUpgrades['Heavenly key'].bought = 1; - - SimPrestige = newHeavenlyChips; - - const lastAchievementsOwned = SimAchievementsOwned; - - CalculateGains(); - - CheckOtherAchiev(); - - if (lastAchievementsOwned !== SimAchievementsOwned) { - CalculateGains(); - } - - const ResetCPS = SimCookiesPs - curCPS; - - // Reset Pretige level after calculation as it is used in CM.Sim.CalculateGains() so can't be local - SimPrestige = Game.prestige; - - return ResetCPS; + // Calculate CPS with all Heavenly upgrades + let curCPS = Game.cookiesPs; + + CopyData(); + + if (SimUpgrades['Heavenly key'].bought === 0) { + SimUpgrades['Heavenly chip secret'].bought = 1; + SimUpgrades['Heavenly cookie stand'].bought = 1; + SimUpgrades['Heavenly bakery'].bought = 1; + SimUpgrades['Heavenly confectionery'].bought = 1; + SimUpgrades['Heavenly key'].bought = 1; + + CalculateGains(); + + curCPS = SimCookiesPs; + + CopyData(); + } + + if (CacheRealCookiesEarned >= 1000000) SimWin('Sacrifice'); + if (CacheRealCookiesEarned >= 1000000000) SimWin('Oblivion'); + if (CacheRealCookiesEarned >= 1000000000000) SimWin('From scratch'); + if (CacheRealCookiesEarned >= 1000000000000000) SimWin('Nihilism'); + if (CacheRealCookiesEarned >= 1000000000000000000) SimWin('Dematerialize'); + if (CacheRealCookiesEarned >= 1000000000000000000000) + SimWin('Nil zero zilch'); + if (CacheRealCookiesEarned >= 1000000000000000000000000) + SimWin('Transcendence'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000) + SimWin('Obliterate'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000) + SimWin('Negative void'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000000) + SimWin('To crumbs, you say?'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000) + SimWin('You get nothing'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000) + SimWin('Humble rebeginnings'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000) + SimWin('The end of the world'); + if (CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000) + SimWin("Oh, you're back"); + if ( + CacheRealCookiesEarned >= 1000000000000000000000000000000000000000000000000 + ) + SimWin('Lazarus'); + if ( + CacheRealCookiesEarned >= + 1000000000000000000000000000000000000000000000000000 + ) + SimWin('Smurf account'); + if ( + CacheRealCookiesEarned >= + 1000000000000000000000000000000000000000000000000000000 + ) + SimWin("If at first you don't succeed"); + + SimUpgrades['Heavenly chip secret'].bought = 1; + SimUpgrades['Heavenly cookie stand'].bought = 1; + SimUpgrades['Heavenly bakery'].bought = 1; + SimUpgrades['Heavenly confectionery'].bought = 1; + SimUpgrades['Heavenly key'].bought = 1; + + SimPrestige = newHeavenlyChips; + + const lastAchievementsOwned = SimAchievementsOwned; + + CalculateGains(); + + CheckOtherAchiev(); + + if (lastAchievementsOwned !== SimAchievementsOwned) { + CalculateGains(); + } + + const ResetCPS = SimCookiesPs - curCPS; + + // Reset Pretige level after calculation as it is used in CM.Sim.CalculateGains() so can't be local + SimPrestige = Game.prestige; + + return ResetCPS; } diff --git a/src/Sim/SimulationEvents/SellBuilding.js b/src/Sim/SimulationEvents/SellBuilding.js index 92d9fce0..81e01e7b 100644 --- a/src/Sim/SimulationEvents/SellBuilding.js +++ b/src/Sim/SimulationEvents/SellBuilding.js @@ -12,23 +12,32 @@ import SimModifyBuildingPrice from '../ReplacedGameFunctions/SimModifyBuidlingPr * @param {number} noSim 1 of 0 depending on if function is called from CM.Sim * @returns {number} moni Total price gained */ -export default function BuildingSell(build, basePrice, start, free, amount, noSim) { - // Calculate money gains from selling buildings - // If noSim is set, use Game methods to compute price instead of Sim ones. - noSim = typeof noSim === 'undefined' ? 0 : noSim; - let moni = 0; - if (amount === -1) amount = start; - if (!amount) amount = Game.buyBulk; - for (let i = 0; i < amount; i++) { - let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); - price = noSim ? Game.modifyBuildingPrice(build, price) : SimModifyBuildingPrice(build, price); - price = Math.ceil(price); - const giveBack = noSim ? build.getSellMultiplier() : SimGetSellMultiplier(); - price = Math.floor(price * giveBack); - if (start > 0) { - moni += price; - start--; - } - } - return moni; +export default function BuildingSell( + build, + basePrice, + start, + free, + amount, + noSim, +) { + // Calculate money gains from selling buildings + // If noSim is set, use Game methods to compute price instead of Sim ones. + noSim = typeof noSim === 'undefined' ? 0 : noSim; + let moni = 0; + if (amount === -1) amount = start; + if (!amount) amount = Game.buyBulk; + for (let i = 0; i < amount; i++) { + let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); + price = noSim + ? Game.modifyBuildingPrice(build, price) + : SimModifyBuildingPrice(build, price); + price = Math.ceil(price); + const giveBack = noSim ? build.getSellMultiplier() : SimGetSellMultiplier(); + price = Math.floor(price * giveBack); + if (start > 0) { + moni += price; + start--; + } + } + return moni; } diff --git a/src/Sim/SimulationEvents/SellBuildingForChoEgg.js b/src/Sim/SimulationEvents/SellBuildingForChoEgg.js index 014be125..8f0e5b30 100644 --- a/src/Sim/SimulationEvents/SellBuildingForChoEgg.js +++ b/src/Sim/SimulationEvents/SellBuildingForChoEgg.js @@ -1,7 +1,10 @@ /* eslint-disable no-unused-vars */ import CopyData from '../SimulationData/CopyData'; import { - SimBuildingsOwned, SimDragonAura, SimDragonAura2, SimObjects, + SimBuildingsOwned, + SimDragonAura, + SimDragonAura2, + SimObjects, } from '../VariablesAndData'; import BuildingSell from './SellBuilding'; @@ -11,38 +14,44 @@ import BuildingSell from './SellBuilding'; * @returns {number} sellTotal The maximum cookies to be earned */ export default function SellBuildingsForChoEgg() { - let sellTotal = 0; + let sellTotal = 0; - CopyData(); + CopyData(); - // Change auras to Earth Shatterer + Reality bending to optimize money made by selling - let buildingsToSacrifice = 2; - if (SimDragonAura === 5 || SimDragonAura === 18) { - --buildingsToSacrifice; - } - if (SimDragonAura2 === 5 || SimDragonAura2 === 18) { - --buildingsToSacrifice; - } - SimDragonAura = 5; - SimDragonAura2 = 18; + // Change auras to Earth Shatterer + Reality bending to optimize money made by selling + let buildingsToSacrifice = 2; + if (SimDragonAura === 5 || SimDragonAura === 18) { + --buildingsToSacrifice; + } + if (SimDragonAura2 === 5 || SimDragonAura2 === 18) { + --buildingsToSacrifice; + } + SimDragonAura = 5; + SimDragonAura2 = 18; - // Sacrifice highest buildings for the aura switch - for (let i = 0; i < buildingsToSacrifice; ++i) { - let highestBuilding = 'Cursor'; - for (const j in SimObjects) { - if (SimObjects[j].amount > 0) { - highestBuilding = j; - } - } - SimObjects[highestBuilding].amount--; - SimBuildingsOwned--; - } + // Sacrifice highest buildings for the aura switch + for (let i = 0; i < buildingsToSacrifice; ++i) { + let highestBuilding = 'Cursor'; + for (const j in SimObjects) { + if (SimObjects[j].amount > 0) { + highestBuilding = j; + } + } + SimObjects[highestBuilding].amount--; + SimBuildingsOwned--; + } - // Get money made by selling all remaining buildings - for (const i of Object.keys(SimObjects)) { - const me = SimObjects[i]; - sellTotal += BuildingSell(Game.Objects[me.name], Game.Objects[i].basePrice, me.amount, Game.Objects[i].free, me.amount); - } + // Get money made by selling all remaining buildings + for (const i of Object.keys(SimObjects)) { + const me = SimObjects[i]; + sellTotal += BuildingSell( + Game.Objects[me.name], + Game.Objects[i].basePrice, + me.amount, + Game.Objects[i].free, + me.amount, + ); + } - return sellTotal; + return sellTotal; } From 9e9158ce81cc2631d5a543db719c7b200fc85dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Mon, 15 Mar 2021 12:51:25 +0100 Subject: [PATCH 03/25] Create tooltip for wrinkler buttons #628 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Disp/Draw.js | 2 +- .../Initialization/CreateWrinklerButton.js | 29 ++++++++ src/Disp/Tooltips/Tooltip.js | 42 ++--------- src/Disp/Tooltips/UpdateTooltips.js | 72 ++++++++++++++++--- 7 files changed, 103 insertions(+), 48 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 8cff7eb3..31b2849a 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function xo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=vo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=wo(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=ko(e),o=Xt[e]),o.won=t.won,Xt[e]=o}bo(),Le=He,Ae=$e}function To(e,t,o,n,i){let a=0;for(let r=0;rt.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Po(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Fo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Oo(e[t],e[t].price)}function Wo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Oo(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Oo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Lo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Lo("Elder"),!$o("Veteran")&&e>=14&&Lo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),$o("Mathematician")||Vt[e].amount=1&&Lo("One with everything"),1===o&&Lo("Mathematician"),1===n&&Lo("Base 10"),i>=100&&Lo("Centennial"),i>=150&&Lo("Centennial and a half"),i>=200&&Lo("Bicentennial"),i>=250&&Lo("Bicentennial and a half"),i>=300&&Lo("Tricentennial"),i>=350&&Lo("Tricentennial and a half"),i>=400&&Lo("Quadricentennial"),i>=450&&Lo("Quadricentennial and a half"),i>=500&&Lo("Quincentennial"),i>=550&&Lo("Quincentennial and a half"),i>=600&&Lo("Sexcentennial"),t>=100&&Lo("Builder"),t>=500&&Lo("Architect"),t>=1e3&&Lo("Engineer"),t>=2e3&&Lo("Lord of Constructs"),t>=4e3&&Lo("Grand design"),t>=8e3&&Lo("Ecumenopolis"),Ee>=20&&Lo("Enhancer"),Ee>=50&&Lo("Augmenter"),Ee>=100&&Lo("Upgrader"),Ee>=200&&Lo("Lord of Progress"),Ee>=300&&Lo("The full picture"),Ee>=400&&Lo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Lo("Polymath"),t>=8e3&&Ee>=400&&Lo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Lo("The elder scrolls");let a=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(a=!1);a&&Lo("Spooky cookies");let r=!0;for(const e of Object.keys(Do))Zt(Do[e])||(r=!1);if(r&&Lo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Lo("O Fortuna")}}function zo(e,t){xo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Lo("Click"),o.amount>=2&&Lo("Double-click"),o.amount>=50&&Lo("Mouse wheel"),o.amount>=100&&Lo("Of Mice and Men"),o.amount>=200&&Lo("The Digital"),o.amount>=300&&Lo("Extreme polydactyly"),o.amount>=400&&Lo("Dr. T"),o.amount>=500&&Lo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Lo("With her finger and her thumb"),o.amount>=700&&Lo("Gotta hand it to you"),o.amount>=800&&Lo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Lo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Ao(),Io(),n!==Oe&&Ao(),De-Game.cookiesPs}function Vo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){xo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Lo("Elder nap"),Ne>=5&&Lo("Elder slumber")):"Elder Covenant"===e?Lo("Elder calm"):"Prism heart biscuits"===e?Lo("Lovely cookies"):"Heavenly key"===e&&Lo("Wholesome");const t=Oe;Ao(),Io(),t!==Oe&&Ao();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function _o(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=zo(t,e),1!==e&&(Se=1);return o}function Xo(){for(const e of Object.keys(Game.Objects))ct[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Qo(){ct=_o(1),dt=_o(10),pt=_o(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Vo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Zo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function on(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function nn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function an(){bo(),nn(),tn(),on(),Yo(),Zo(),en(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Ko(),No(),Qo(),Xo(),Wo()}const rn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},ln=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function sn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function dn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class un{constructor(e,t){this.type=e,this.group=t}}class mn extends un{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class hn extends un{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class fn extends un{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new mn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){sn()})),TimerBar:new mn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new mn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new mn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new mn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new mn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new mn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new mn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new mn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends un{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){dn()})),UpgradeBarFixedPos:new mn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new mn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new mn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new mn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new mn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new mn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Wo()})),PPExcludeTop:new mn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new fn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new mn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new mn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new mn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new mn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new mn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){ln(e.GCNotification)})),GCFlash:new mn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new mn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new hn("vol","NotificationGC",[],"Volume"),GCSoundURL:new mn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new mn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){ln(e.FortuneNotification)})),FortuneFlash:new mn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new mn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new hn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new mn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new mn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){ln(e.SeaNotification)})),SeaFlash:new mn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new mn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new hn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new mn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new mn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new mn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new hn("vol","NotificationGard",[],"Volume"),GardSoundURL:new mn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new mn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){ln(e.MagicNotification)})),MagicFlash:new mn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new mn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new hn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new mn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new mn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){ln(e.WrinklerNotification)})),WrinklerFlash:new mn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new mn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new hn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new mn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new mn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){ln(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new mn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new mn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new hn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new mn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new mn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new mn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new mn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new mn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new mn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new mn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new mn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new fn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new mn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new mn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new mn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new mn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new mn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new mn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new mn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new mn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new mn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new mn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new mn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new mn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new mn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new fn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new mn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new mn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){cn()})),ScaleDecimals:new mn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){cn()})),ScaleSeparator:new mn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){cn()})),ScaleCutoff:new fn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new mn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new mn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){pn()})),WrinklerButtons:new mn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new mn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function Cn(){return JSON.stringify({settings:e,version:"2.031.5"})}function yn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){nn(),Wo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?xn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):xn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Mn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${Cn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Sn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in rn)if(void 0===e[t])o=!0,e[t]=rn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=rn[t][n]);else for(const n in rn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=rn[t][n]);o&&Mn(),Tn();for(const e in rn)"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}else Sn(rn)}function Bn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Mn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;xo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Ao(),t=De,xo()),Wt>=1e6&&Lo("Sacrifice"),Wt>=1e9&&Lo("Oblivion"),Wt>=1e12&&Lo("From scratch"),Wt>=1e15&&Lo("Nihilism"),Wt>=1e18&&Lo("Dematerialize"),Wt>=1e21&&Lo("Nil zero zilch"),Wt>=1e24&&Lo("Transcendence"),Wt>=1e27&&Lo("Obliterate"),Wt>=1e30&&Lo("Negative void"),Wt>=1e33&&Lo("To crumbs, you say?"),Wt>=1e36&&Lo("You get nothing"),Wt>=1e39&&Lo("Humble rebeginnings"),Wt>=1e42&&Lo("The end of the world"),Wt>=1e45&&Lo("Oh, you're back"),Wt>=1e48&&Lo("Lazarus"),Wt>=1e51&&Lo("Smurf account"),Wt>=1e54&&Lo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Ao(),Io(),o!==Oe&&Ao();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Bn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(i.push(Uo[e]),n=!0);const a=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(a.push(Do[e]),n=!0);const r=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(r.push(Ro[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ho))Game.HasUnlocked(Ho[e])||(d.push(Ho[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(jo))Game.Has(jo[t])||e.push(jo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Mn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Mn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Mn(),cn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Ao(),Io(),o!==Oe&&Ao(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in gn)gn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(gn))gn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Sn(rn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),tn(),an(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Mo(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Bn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Sn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",Tn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Sn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Cn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=bo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=ko(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=Co(e),o=Xt[e]),o.won=t.won,Xt[e]=o}go(),Le=He,Ae=$e}function vo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),To(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class So{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Bo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Eo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Po(e[t],e[t].price)}function No(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Po(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Po(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Fo("Elder"),!Ro("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ro("Mathematician")||Vt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),Ee>=20&&Fo("Enhancer"),Ee>=50&&Fo("Augmenter"),Ee>=100&&Fo("Upgrader"),Ee>=200&&Fo("Lord of Progress"),Ee>=300&&Fo("The full picture"),Ee>=400&&Fo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Fo("Polymath"),t>=8e3&&Ee>=400&&Fo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;for(const e of Object.keys(Ao))Zt(Ao[e])||(a=!1);a&&Fo("Spooky cookies");let r=!0;for(const e of Object.keys(jo))Zt(jo[e])||(r=!1);if(r&&Fo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Fo("O Fortuna")}}function $o(e,t){Go(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Wo(),Ho(),n!==Oe&&Wo(),De-Game.cookiesPs}function Io(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Fo("Elder nap"),Ne>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=Oe;Wo(),Ho(),t!==Oe&&Wo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function zo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=$o(t,e),1!==e&&(Se=1);return o}function Vo(){for(const e of Object.keys(Game.Objects))ct[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function _o(){ct=zo(1),dt=zo(10),pt=zo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Io(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Xo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Xo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Xo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Xo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Xo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function qo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Ko(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function en(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function on(){go(),tn(),Zo(),en(),Qo(),Ko(),Jo(),ce=new So(Q[Q.length-1]),de=new So(Q[Q.length-1]),pe=new So(Q[Q.length-1]),ue=new So(Q[Q.length-1]),me=new So(q[q.length-1]),he=new So(5),qo(),Bo(),_o(),Vo(),No()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function sn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new pn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new pn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){No()})),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function gn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Vo(),Se=0),function(){tn(),No(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Bo(),qo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?bn(3,"WrinklerMaxFlash"):bn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?kn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):kn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in nn)if(void 0===e[t])o=!0,e[t]=nn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n]);else for(const n in nn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n]);o&&xn(),wn();for(const e in nn)"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}else Tn(nn)}function Mn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Sn(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Oo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t&&(l("tooltip").innerHTML="");if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,To(),l("tooltip").innerHTML}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Wo(),t=De,Go()),Wt>=1e6&&Fo("Sacrifice"),Wt>=1e9&&Fo("Oblivion"),Wt>=1e12&&Fo("From scratch"),Wt>=1e15&&Fo("Nihilism"),Wt>=1e18&&Fo("Dematerialize"),Wt>=1e21&&Fo("Nil zero zilch"),Wt>=1e24&&Fo("Transcendence"),Wt>=1e27&&Fo("Obliterate"),Wt>=1e30&&Fo("Negative void"),Wt>=1e33&&Fo("To crumbs, you say?"),Wt>=1e36&&Fo("You get nothing"),Wt>=1e39&&Fo("Humble rebeginnings"),Wt>=1e42&&Fo("The end of the world"),Wt>=1e45&&Fo("Oh, you're back"),Wt>=1e48&&Fo("Lazarus"),Wt>=1e51&&Fo("Smurf account"),Wt>=1e54&&Fo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Wo(),Ho(),o!==Oe&&Wo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ao))Game.Has(Ao[e])||(i.push(Ao[e]),n=!0);const a=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(a.push(jo[e]),n=!0);const r=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(r.push(Uo[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Do))Game.HasUnlocked(Do[e])||(d.push(Do[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Lo))Game.Has(Lo[t])||e.push(Lo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Wn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Wo(),Ho(),o!==Oe&&Wo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in hn)hn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(hn))hn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){Cn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Sn(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){yn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Mo),Game.registerHook("logic",wn),yn=!1)},load:function(e){const t=JSON.parse(e);Cn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 8cff7eb3..31b2849a 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function xo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=vo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=wo(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=ko(e),o=Xt[e]),o.won=t.won,Xt[e]=o}bo(),Le=He,Ae=$e}function To(e,t,o,n,i){let a=0;for(let r=0;rt.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Po(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Fo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Oo(e[t],e[t].price)}function Wo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Oo(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Oo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Lo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Lo("Elder"),!$o("Veteran")&&e>=14&&Lo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),$o("Mathematician")||Vt[e].amount=1&&Lo("One with everything"),1===o&&Lo("Mathematician"),1===n&&Lo("Base 10"),i>=100&&Lo("Centennial"),i>=150&&Lo("Centennial and a half"),i>=200&&Lo("Bicentennial"),i>=250&&Lo("Bicentennial and a half"),i>=300&&Lo("Tricentennial"),i>=350&&Lo("Tricentennial and a half"),i>=400&&Lo("Quadricentennial"),i>=450&&Lo("Quadricentennial and a half"),i>=500&&Lo("Quincentennial"),i>=550&&Lo("Quincentennial and a half"),i>=600&&Lo("Sexcentennial"),t>=100&&Lo("Builder"),t>=500&&Lo("Architect"),t>=1e3&&Lo("Engineer"),t>=2e3&&Lo("Lord of Constructs"),t>=4e3&&Lo("Grand design"),t>=8e3&&Lo("Ecumenopolis"),Ee>=20&&Lo("Enhancer"),Ee>=50&&Lo("Augmenter"),Ee>=100&&Lo("Upgrader"),Ee>=200&&Lo("Lord of Progress"),Ee>=300&&Lo("The full picture"),Ee>=400&&Lo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Lo("Polymath"),t>=8e3&&Ee>=400&&Lo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Lo("The elder scrolls");let a=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(a=!1);a&&Lo("Spooky cookies");let r=!0;for(const e of Object.keys(Do))Zt(Do[e])||(r=!1);if(r&&Lo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Lo("O Fortuna")}}function zo(e,t){xo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Lo("Click"),o.amount>=2&&Lo("Double-click"),o.amount>=50&&Lo("Mouse wheel"),o.amount>=100&&Lo("Of Mice and Men"),o.amount>=200&&Lo("The Digital"),o.amount>=300&&Lo("Extreme polydactyly"),o.amount>=400&&Lo("Dr. T"),o.amount>=500&&Lo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Lo("With her finger and her thumb"),o.amount>=700&&Lo("Gotta hand it to you"),o.amount>=800&&Lo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Lo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Ao(),Io(),n!==Oe&&Ao(),De-Game.cookiesPs}function Vo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){xo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Lo("Elder nap"),Ne>=5&&Lo("Elder slumber")):"Elder Covenant"===e?Lo("Elder calm"):"Prism heart biscuits"===e?Lo("Lovely cookies"):"Heavenly key"===e&&Lo("Wholesome");const t=Oe;Ao(),Io(),t!==Oe&&Ao();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function _o(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=zo(t,e),1!==e&&(Se=1);return o}function Xo(){for(const e of Object.keys(Game.Objects))ct[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Qo(){ct=_o(1),dt=_o(10),pt=_o(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Vo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Zo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function on(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function nn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function an(){bo(),nn(),tn(),on(),Yo(),Zo(),en(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Ko(),No(),Qo(),Xo(),Wo()}const rn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},ln=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function sn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function dn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class un{constructor(e,t){this.type=e,this.group=t}}class mn extends un{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class hn extends un{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class fn extends un{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new mn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){sn()})),TimerBar:new mn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new mn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new mn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new mn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new mn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new mn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new mn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new mn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends un{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){dn()})),UpgradeBarFixedPos:new mn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new mn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new mn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new mn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new mn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new mn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Wo()})),PPExcludeTop:new mn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new fn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new mn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new mn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new mn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new mn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new mn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){ln(e.GCNotification)})),GCFlash:new mn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new mn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new hn("vol","NotificationGC",[],"Volume"),GCSoundURL:new mn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new mn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){ln(e.FortuneNotification)})),FortuneFlash:new mn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new mn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new hn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new mn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new mn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){ln(e.SeaNotification)})),SeaFlash:new mn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new mn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new hn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new mn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new mn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new mn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new hn("vol","NotificationGard",[],"Volume"),GardSoundURL:new mn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new mn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){ln(e.MagicNotification)})),MagicFlash:new mn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new mn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new hn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new mn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new mn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){ln(e.WrinklerNotification)})),WrinklerFlash:new mn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new mn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new hn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new mn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new mn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){ln(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new mn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new mn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new hn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new mn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new mn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new mn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new mn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new mn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new mn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new mn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new mn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new fn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new mn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new mn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new mn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new mn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new mn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new mn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new mn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new mn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new mn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new mn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new mn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new mn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new mn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new fn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new mn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new mn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){cn()})),ScaleDecimals:new mn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){cn()})),ScaleSeparator:new mn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){cn()})),ScaleCutoff:new fn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new mn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new mn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){pn()})),WrinklerButtons:new mn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new mn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function Cn(){return JSON.stringify({settings:e,version:"2.031.5"})}function yn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){nn(),Wo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?xn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):xn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Mn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${Cn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Sn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in rn)if(void 0===e[t])o=!0,e[t]=rn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=rn[t][n]);else for(const n in rn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=rn[t][n]);o&&Mn(),Tn();for(const e in rn)"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}else Sn(rn)}function Bn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Mn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;xo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Ao(),t=De,xo()),Wt>=1e6&&Lo("Sacrifice"),Wt>=1e9&&Lo("Oblivion"),Wt>=1e12&&Lo("From scratch"),Wt>=1e15&&Lo("Nihilism"),Wt>=1e18&&Lo("Dematerialize"),Wt>=1e21&&Lo("Nil zero zilch"),Wt>=1e24&&Lo("Transcendence"),Wt>=1e27&&Lo("Obliterate"),Wt>=1e30&&Lo("Negative void"),Wt>=1e33&&Lo("To crumbs, you say?"),Wt>=1e36&&Lo("You get nothing"),Wt>=1e39&&Lo("Humble rebeginnings"),Wt>=1e42&&Lo("The end of the world"),Wt>=1e45&&Lo("Oh, you're back"),Wt>=1e48&&Lo("Lazarus"),Wt>=1e51&&Lo("Smurf account"),Wt>=1e54&&Lo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Ao(),Io(),o!==Oe&&Ao();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Bn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(i.push(Uo[e]),n=!0);const a=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(a.push(Do[e]),n=!0);const r=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(r.push(Ro[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ho))Game.HasUnlocked(Ho[e])||(d.push(Ho[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(jo))Game.Has(jo[t])||e.push(jo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Mn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Mn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Mn(),cn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Ao(),Io(),o!==Oe&&Ao(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in gn)gn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(gn))gn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Sn(rn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),tn(),an(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Mo(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Bn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Sn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",Tn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Sn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Cn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=bo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=ko(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=Co(e),o=Xt[e]),o.won=t.won,Xt[e]=o}go(),Le=He,Ae=$e}function vo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),To(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class So{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Bo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Eo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Po(e[t],e[t].price)}function No(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Po(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Po(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Fo("Elder"),!Ro("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ro("Mathematician")||Vt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),Ee>=20&&Fo("Enhancer"),Ee>=50&&Fo("Augmenter"),Ee>=100&&Fo("Upgrader"),Ee>=200&&Fo("Lord of Progress"),Ee>=300&&Fo("The full picture"),Ee>=400&&Fo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Fo("Polymath"),t>=8e3&&Ee>=400&&Fo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;for(const e of Object.keys(Ao))Zt(Ao[e])||(a=!1);a&&Fo("Spooky cookies");let r=!0;for(const e of Object.keys(jo))Zt(jo[e])||(r=!1);if(r&&Fo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Fo("O Fortuna")}}function $o(e,t){Go(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Wo(),Ho(),n!==Oe&&Wo(),De-Game.cookiesPs}function Io(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Fo("Elder nap"),Ne>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=Oe;Wo(),Ho(),t!==Oe&&Wo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function zo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=$o(t,e),1!==e&&(Se=1);return o}function Vo(){for(const e of Object.keys(Game.Objects))ct[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function _o(){ct=zo(1),dt=zo(10),pt=zo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Io(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Xo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Xo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Xo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Xo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Xo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function qo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Ko(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function en(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function on(){go(),tn(),Zo(),en(),Qo(),Ko(),Jo(),ce=new So(Q[Q.length-1]),de=new So(Q[Q.length-1]),pe=new So(Q[Q.length-1]),ue=new So(Q[Q.length-1]),me=new So(q[q.length-1]),he=new So(5),qo(),Bo(),_o(),Vo(),No()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function sn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new pn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new pn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){No()})),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function gn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Vo(),Se=0),function(){tn(),No(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Bo(),qo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?bn(3,"WrinklerMaxFlash"):bn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?kn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):kn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in nn)if(void 0===e[t])o=!0,e[t]=nn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n]);else for(const n in nn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n]);o&&xn(),wn();for(const e in nn)"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}else Tn(nn)}function Mn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Sn(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Oo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t&&(l("tooltip").innerHTML="");if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,To(),l("tooltip").innerHTML}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Wo(),t=De,Go()),Wt>=1e6&&Fo("Sacrifice"),Wt>=1e9&&Fo("Oblivion"),Wt>=1e12&&Fo("From scratch"),Wt>=1e15&&Fo("Nihilism"),Wt>=1e18&&Fo("Dematerialize"),Wt>=1e21&&Fo("Nil zero zilch"),Wt>=1e24&&Fo("Transcendence"),Wt>=1e27&&Fo("Obliterate"),Wt>=1e30&&Fo("Negative void"),Wt>=1e33&&Fo("To crumbs, you say?"),Wt>=1e36&&Fo("You get nothing"),Wt>=1e39&&Fo("Humble rebeginnings"),Wt>=1e42&&Fo("The end of the world"),Wt>=1e45&&Fo("Oh, you're back"),Wt>=1e48&&Fo("Lazarus"),Wt>=1e51&&Fo("Smurf account"),Wt>=1e54&&Fo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Wo(),Ho(),o!==Oe&&Wo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ao))Game.Has(Ao[e])||(i.push(Ao[e]),n=!0);const a=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(a.push(jo[e]),n=!0);const r=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(r.push(Uo[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Do))Game.HasUnlocked(Do[e])||(d.push(Do[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Lo))Game.Has(Lo[t])||e.push(Lo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Wn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Wo(),Ho(),o!==Oe&&Wo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in hn)hn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(hn))hn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){Cn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Sn(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){yn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Mo),Game.registerHook("logic",wn),yn=!1)},load:function(e){const t=JSON.parse(e);Cn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 0420e568..d5f4ddea 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","BuildingGetPrice","increase","CreateSimpleTooltip","placeholder","minWidth","Tooltip","desc","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CreateTooltip","TooltipAmor","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","ObjectsById","tileTooltip","toolTooltip","area","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","wrinkler","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOACA,SAEF,CACE,4BACA,2CACA,UAQJ,IAUIC,EACAC,EAXAC,EAAsB,EACtBC,GAAmB,EAOnBC,EAA4B,GAQ5BC,EAAmB,EACnBC,EAAsB,EACtBC,EAA4B,EAMhC,MAAMC,EAAc,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAC9CC,EAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IAK5BC,EAAa,CACjBC,OAAQpB,EACRqB,iBAAkBf,EAClBgB,eAAgBvB,EAChBwB,KAAMrB,EACNsB,eAAgB1B,EAChB2B,aAAcpB,GAMhB,IAOIqB,EACAC,EACAC,EACAC,GACAC,GAEAC,GACAC,GAdAC,GAAW,GAKXC,GAAQ,GA0BZ,SAASC,GAA4BC,EAAKC,EAAQC,GAChD,MAAMC,EAAWpE,EAAUqE,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBjE,EAAUuE,MACZ,OAAO/C,EAAgBgD,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,IAAIU,EAAS,GACb,GAAY,IAARV,EACF,OAAOA,EAAIjhB,WAEb,GAAIihB,EAAM,MAASA,EAAMjE,EAAU4E,YAGjC,OAF8BD,EAA1B3E,EAAU6E,eAAyBZ,EAAIa,eAAe,MAC5Cb,EAAIa,eAAe,MAC1BH,EAET,GAAyB,IAApB3E,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAExCQ,EAASV,EAAIc,cAAcX,GAAUphB,WAAW7B,QAAQ,IAAK,SACxD,CACL,MAAM6jB,EAAcf,EAAIc,gBAAgB/hB,WAClCiiB,EAAwBniB,KAAKkE,MACjCge,EAAY1G,MAAM0G,EAAYvnB,QAAQ,KAAO,GAAK,GAEpDknB,GAAUV,EAAMQ,OAAO,KAA6B,EAAxBQ,IAA8BC,QACxDd,GAGuB,IAApBpE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAEpCF,GAAO,KAAQA,EAAMQ,OAAO,KAAqB,EAAhBxE,EAAOzlB,QAC1CmqB,GAAU,IAAI1E,EAAOgF,KAChBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAE3CF,GAAO,KAAQA,EAAMQ,OAAO,KAAyB,EAApBvE,EAAW1lB,QAC9CmqB,GAAU,IAAIzE,EAAW+E,KACpBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAG7CF,GAAO,KACPA,EAAMQ,OAAO,KAAoC,EAA/BtE,EAAsB3lB,QAExCmqB,GAAU,IAAIxE,EAAsB8E,KAC/BN,EAASX,GAA4BC,EAAK,EAAG,IACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,KAE/CQ,GAAU,IAA4B,EAAxBM,GAUlB,MAPe,KAAXN,IACFvpB,QAAQ+pB,IACN,2DAA2DlB,KAE7DU,EAASnD,EAAgBgD,SAASP,EAAKC,IAErClE,EAAU6E,iBAAgBF,EAASA,EAAOxjB,QAAQ,IAAK,MACpDwjB,EAGT,OADAvpB,QAAQ+pB,IAAI,2DAA2DlB,KAChEzC,EAAgBgD,SAASP,EAAKC,GASvC,SAASkB,GAAWC,EAAMC,GACxB,GAAID,IAASf,IAAU,OAAOe,EAC9BA,EAAOviB,KAAKoL,KAAKmX,GACjB,MAAM3gB,EAAI5B,KAAKkE,MAAMqe,EAAO,UACtB1F,EAAI7c,KAAKkE,MAAOqe,EAAO,SAAY,OACnCze,EAAI9D,KAAKkE,MAAOqe,EAAO,MAAS,MAChC3qB,EAAIoI,KAAKkE,MAAOqe,EAAO,KAAQ,IAC/Bve,EAAIhE,KAAKkE,MAAMqe,EAAO,IAC5B,IAAI1pB,EAAM,GACV,GAAIqkB,EAAUuF,WAAY,CACxB,GAAIF,EAAO,SAAY,MAAO,iBAC9B1pB,IAAW+I,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACP/I,IAAWgkB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPhkB,IAAWiL,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPjL,IAAWjB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPiB,IAAQmL,EAAI,GAAK,IAAM,IAAMA,MACxB,CACL,GAAIue,EAAO,OAAW,OAAOC,EAAa,kBAAoB,SAC9D3pB,GACE+I,EAAI,EACGA,GAAK4gB,EAAoB,IAAN5gB,EAAU,QAAU,SAAY,KAAtD,KACA,GACN/I,GACEgkB,EAAI,EAAOA,GAAK2F,EAAoB,IAAN3F,EAAU,OAAS,QAAW,KAApD,KAA+D,IACrEhkB,EAAInB,OAAS,GAAKoM,EAAI,KACxBjL,GAAUiL,GAAK0e,EAAoB,IAAN1e,EAAU,QAAU,SAAY,KAAtD,OACLjL,EAAInB,OAAS,GAAKE,EAAI,KACxBiB,GAAUjB,GAAK4qB,EAAoB,IAAN5qB,EAAU,UAAY,WAAc,KAA1D,MACTiB,GAAOmL,GAAKwe,EAAoB,IAANxe,EAAU,UAAY,WAAc,KAEhE,OAAOnL,EAQT,SAAS6pB,GAAaH,GACpB,IAAIld,EACAsd,EAWJ,OAVIJ,GAAQ,GACgBI,EAAtBzF,EAAUuF,WAAmB,iBACrB,QACZpd,EAAQyZ,IAER6D,EAAOL,GAAWC,GACFld,EAAZkd,EAAO,IAAatD,EACfsD,EAAO,GAAYvD,EACfD,GAER,CAAE4D,OAAMtd,SAMjB,IA0EIud,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GAEAC,GAEAC,GASAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAGAC,GACAC,GAxHAC,GAAkB,EAClBC,GAAmB,EACnBC,GAAuB,EACvBC,GAAyB,EACzBC,GAAa,EACbC,GAAmB,EACnBC,GAAwB,EACxBC,GAAmB,EACnBC,GAAyB,EACzBC,GAA8B,EAC9BC,GAAe,EACfC,GAAqB,EACrBC,GAAe,EACfC,GAAuB,EACvBC,GAA6B,EAC7BC,GAAoC,EACpCC,GAAyB,EACzBC,GAAwB,EAExBC,GAAmB,EAEnBC,GAAe,EACfC,GAAe,EACfC,GAAkB,EAElBC,GAAgB,GAChBC,GAAiB,GACjBC,GAAkB,GAElBC,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAE5BC,GAA2B,EAC3BC,GAAyB,EAEzBC,GAAgB,GAEhBC,GAAqB,GAErBC,GAAuB,GACvBC,GAA+B,GAC/BC,GAA8B,GAE9BC,GAAqB,EACrBC,GAAyB,EACzBC,GAAsB,GACtBC,GAA0B,EAC1BC,GAA8B,EAC9BC,GAA2B,GAC3BC,GAA2B,EAC3BC,GAA+B,EAC/BC,GAA4B,GAC5BC,GAAgC,EAChCC,GAAoC,EACpCC,GAAiC,GAEjCC,GAAyB,EACzBC,GAAwB,EAExBC,GAA4B,GAC5BC,GAAwB,GAExBC,GAA4B,EAE5BC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAkB,GAElBC,GAA0B,GAE1BC,GAAqB,EAgCrBC,GAAa,GACbC,GAAc,GACdC,GAAkB,GAWlBC,GAAiBC,KAAKC,UACtBC,GAAcF,KAAKC,UAUvB,SAASE,GAAYC,GACnB,IAAIpuB,EAAI,EAWR,OATEguB,KAAKK,YAAYzE,IAAetoB,OAAS8sB,GACzCJ,KAAKK,YAAYxE,IAAgBvoB,OAAS8sB,IAE1CpuB,EAAI,GAEqC,oBAAzCguB,KAAKK,YAAYzE,IAAetoB,MACU,oBAA1C0sB,KAAKK,YAAYxE,IAAgBvoB,OAEjCtB,GAAK,IACAA,EAWT,SAASsuB,KACP,IAAIC,EAAW,IAEf,OADAA,GAAY,EAAIJ,GAAY,mBACrBI,EAST,SAASC,GAAOltB,EAAMmtB,GACpB,YAA6B,IAAlB1E,GAAQzoB,QACK,IAARmtB,EAAsB,EAAIA,EAEnC1E,GAAQzoB,GASjB,SAASotB,GAAON,GACd,MAAMO,EAAKd,GAAYO,GACvB,OACyB,IAAvBJ,KAAKY,eACQ,aAAZD,EAAGE,MAAmC,YAAZF,EAAGG,OAGzBH,EAAKA,EAAGI,OADN,EAYX,SAASC,GAAUZ,GACjB,GAAIJ,KAAKiB,OAAQ,MACoB9xB,IAA/BywB,GAAWsB,OAAOC,WACpBvB,GAAWsB,OAAOC,SAAWnB,KAAKoB,QAAQF,OAAOC,UAEnD,MAAME,EAAMzB,GAAWsB,OAAOC,SAASG,KAAKlB,GAC5C,IAAK,IAAIrxB,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAI6wB,GAAWsB,OAAOC,SAASI,KAAKxyB,KAAOsyB,EAAIG,GAC7C,OAAOzyB,EAAI,EAIjB,OAAO,EAgBT,SAAS0yB,GAAuBC,EAAUC,GAaxC,GAZIjB,GAAO,oBAAmBiB,GAAS,KACnCjB,GAAO,sBAAqBiB,GAAS,KACrCjB,GAAO,iBAAgBiB,GAAS,KAChCjB,GAAO,qBAAoBiB,GAAS,KACpCjB,GAAO,kBAAiBiB,GAAS,KAErCA,GAAS,EAAoC,IAAhCxB,GAAY,kBACrBH,KAAK4B,QAAQ,wBAAuBD,GAAS,KAC7C3B,KAAK4B,QAAQ,mBAAkBD,GAAS,KACxC3B,KAAK4B,QAAQ,mBAAkBD,GAAS,MACxCD,EAASG,SAAWnB,GAAOgB,EAASG,QAAQvuB,QAAOquB,GAAS,KAChEA,GAASnB,GAAO,gBACZZ,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAASf,GAAU,YACV,IAAXe,EAAcJ,GAAS,IACP,IAAXI,EAAcJ,GAAS,IACZ,IAAXI,IAAcJ,GAAS,KAElC,OAAOA,EAkBT,SAASK,GACPC,EACAC,EACA3jB,EACA4jB,EACAC,EACAC,GAIAA,OAAyB,IAAVA,EAAwB,EAAIA,EAC3C,IAAIC,EAAO,GACK,IAAZF,IAAeA,EAAS7jB,GACvB6jB,IAAQA,EAASpC,KAAKuC,SAC3B,IAAK,IAAIxzB,EAAI,EAAGA,EAAIqzB,EAAQrzB,IAAK,CAC/B,IAAI4yB,EAAQO,EAAYlC,KAAKwC,eAAiBlrB,KAAK6D,IAAI,EAAGoD,EAAQ4jB,GAClER,EAAQU,EACJrC,KAAKyC,oBAAoBR,EAAON,GAChCF,GAAuBQ,EAAON,GAClCA,EAAQrqB,KAAKoL,KAAKif,GAClB,MAAMpB,EAAW8B,EAAQJ,EAAMS,oBAAsBpC,KACrDqB,EAAQrqB,KAAKkE,MAAMmmB,EAAQpB,GACvBhiB,EAAQ,IACV+jB,GAAQX,EACRpjB,KAGJ,OAAO+jB,EAmBT,SAASK,KACP,IAAIvuB,EAAS4rB,KAAKuC,QAUlB,GATqB,IAAjBvC,KAAK4C,QACPxL,EAAsBhjB,EAEtBA,EAASgjB,EAEI,IAAXhjB,EAAcA,EAASopB,GACP,KAAXppB,EAAeA,EAASqpB,GACb,MAAXrpB,IAAgBA,EAASspB,IAEb,IAAjBsC,KAAK4C,QACP,GAA6B,IAAzBpO,EAAUqO,WACZ,IAAK,MAAM9zB,KAAKwD,OAAO6C,KAAKhB,GAC1B+L,EAAE,eAAe6f,KAAKoB,QAAQryB,GAAGyyB,MAAMxqB,MAAM2F,MAC3C6X,EAAUoC,OAAOxiB,EAAOrF,GAAG4N,YAG/B,IAAK,MAAM5N,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/BjhB,EAAE,eAAe6f,KAAKoB,QAAQryB,GAAGyyB,MAAMxqB,MAAM8rB,eAAe,cAG3D,IAAsB,IAAlB9C,KAAK4C,QACd,IAAK,MAAM7zB,KAAKwD,OAAO6C,KAAKooB,IAAgB,CAC1C,MAAMlJ,EAAI0L,KAAKoB,QAAQryB,GACvBoR,EAAE,eAAemU,EAAEkN,MAAMxqB,MAAM2F,MAAQ,GASvCwD,EAAE,eAAemU,EAAEkN,MAAMjV,UAAYiM,GACnCwJ,GAAa1N,EAAGA,EAAE4N,UAAW5N,EAAE8N,OAAQ9N,EAAE6N,KAAMnC,KAAKuC,QAAS,IAQnE,GAAqB,IAAjBvC,KAAK4C,SAAiBpO,EAAUuO,cAAe,CACjD,MAAMC,EAAMzwB,OAAO6C,KAAKhB,GAAQlB,KAAK+vB,IACnC,MAAM3O,EAAIlgB,EAAO6uB,GAGjB,OAFA3O,EAAEhhB,KAAO2vB,EACT3O,EAAEkN,GAAKxB,KAAKoB,QAAQ6B,GAAGzB,GAChBlN,KAGT0O,EAAIE,MAAK,SAAUtrB,EAAGP,GACpB,OAAOuf,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,OAC9C,EACAia,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,KAGN,IAAK,IAAIpH,EAAI,EAAGA,EAAI+pB,EAAIh0B,OAAQiK,IAC9B+mB,KAAKoB,QAAQ4B,EAAI/pB,GAAG3F,MAAM6M,EAAEnJ,MAAMmsB,QAAU,GAAGlqB,EAAI,KAAKA,EAAI,QAEzD,CACL,MAAM+pB,EAAMzwB,OAAO6C,KAAKooB,IAAetqB,KAAK+vB,IAC1C,MAAM3O,EAAIkJ,GAAcyF,GAGxB,OAFA3O,EAAEhhB,KAAO2vB,EACT3O,EAAEkN,GAAKxB,KAAKoB,QAAQ6B,GAAGzB,GAChBlN,KAET0O,EAAIE,MAAK,CAACtrB,EAAGP,IAAMO,EAAE4pB,GAAKnqB,EAAEmqB,KAC5B,IAAK,IAAIvoB,EAAI,EAAGA,EAAI+pB,EAAIh0B,OAAQiK,IAC9B+mB,KAAKoB,QAAQ4B,EAAI/pB,GAAG3F,MAAM6M,EAAEnJ,MAAMmsB,QAAU,GAAGlqB,EAAI,KAAKA,EAAI,KAgBlE,SAASmqB,KAEP,GAAI5O,EAAU6O,WAAa,EAAG,CAC5B,IAAIC,EAAO,EACPC,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTC,EAAM,EACNC,EAAS,EACTC,EAAO,EAEX,IAAK,MAAM70B,KAAKwD,OAAO6C,KAAK4qB,KAAK6D,iBAAkB,CACjD,MAAMC,EAAK9D,KAAK6D,gBAAgB90B,GAChC,IAAIg1B,GAAa,EACjB,IAAK,IAAIC,EAAI,EAAGA,EAAI7jB,EAAE,UAAUpR,KAAKk1B,WAAWj1B,OAAQg1B,IACtD,IACsE,IAApE7jB,EAAE,UAAUpR,KAAKk1B,WAAWD,GAAGx0B,UAAUyC,QAAQikB,GACjD,CACA/V,EAAE,UAAUpR,KAAKk1B,WAAWD,GAAGx0B,UAC7B0mB,EAAe8H,GAAc8F,EAAGxwB,MAAMqJ,MACxConB,GAAa,EACb,MAGJ,IAAKA,EAAY,CACf,MAAMG,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMkG,MAAQ,OAClBgnB,EAAIltB,MAAMmG,OAAS,OACnB+mB,EAAI10B,UAAY0mB,EAAe8H,GAAc8F,EAAGxwB,MAAMqJ,MACtDwD,EAAE,UAAUpR,KAAK4b,YAAYuZ,GAE3BlG,GAAc8F,EAAGxwB,MAAMqJ,QAAUwZ,EAAWmN,IACvCtF,GAAc8F,EAAGxwB,MAAMqJ,QAAUyZ,EAAYmN,IAC7CvF,GAAc8F,EAAGxwB,MAAMqJ,QAAU0Z,EAAamN,IAC9CxF,GAAc8F,EAAGxwB,MAAMqJ,QAAU2Z,EAAamN,IAC9CzF,GAAc8F,EAAGxwB,MAAMqJ,QAAU4Z,EAAUmN,IAC3C1F,GAAc8F,EAAGxwB,MAAMqJ,QAAU6Z,EAAamN,IAC9C3F,GAAc8F,EAAGxwB,MAAMqJ,QAAU8Z,GAAWmN,IAGvDzjB,EAAE,oBAAoB/N,YAAckxB,EACpCnjB,EAAE,qBAAqB/N,YAAcmxB,EACrCpjB,EAAE,sBAAsB/N,YAAcoxB,EACtCrjB,EAAE,sBAAsB/N,YAAcqxB,EACtCtjB,EAAE,mBAAmB/N,YAAcsxB,EACnCvjB,EAAE,sBAAsB/N,YAAcuxB,EACtCxjB,EAAE,oBAAoB/N,YAAcwxB,EAGtC,MAAMZ,EAAM,GAGZ,IAAK,IAAI/pB,EAAI,EAAGA,EAAI+mB,KAAK6D,gBAAgB70B,OAAQiK,IAAK,CACpD,MAAMqb,EAAI,GACVA,EAAEhhB,KAAO0sB,KAAK6D,gBAAgB5qB,GAAG3F,KACjCghB,EAAEqN,MAAQ3B,KAAK6D,gBAAgB5qB,GAAGipB,UAClC5N,EAAEjU,GAAK2d,GAAc1J,EAAEhhB,MAAM+M,GAC7B2iB,EAAInyB,KAAKyjB,GAGPE,EAAU2P,aACZnB,EAAIE,MAAK,SAAUtrB,EAAGP,GACpB,OAAOuf,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,OAC9C,EACAia,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,KAGN2iB,EAAIE,MAAK,CAACtrB,EAAGP,IAAMO,EAAE+pB,MAAQtqB,EAAEsqB,QAGjC,MAAMyC,EAAc,SAAUC,EAAMC,GAClC,OAAOD,EAAKE,WAAWr0B,GAAMA,EAAEoD,OAASgxB,EAAQhxB,QAElD,IAAK,IAAI2F,EAAI,EAAGA,EAAI+mB,KAAK6D,gBAAgB70B,OAAQiK,IAC/CkH,EAAE,UAAUlH,KAAKjC,MAAMwtB,MACrBJ,EAAYpB,EAAKhD,KAAK6D,gBAAgB5qB,IAAM,EAYlD,SAASwrB,KACP,OAAIjQ,EAAUkQ,QACLzJ,GAEmB,IAAxBzG,EAAUmQ,UACL3E,KAAK4E,WAAa,EAAI5E,KAAK6E,WAER,IAAxBrQ,EAAUmQ,UAEV3E,KAAK4E,WACJ9G,IAA4B,EAA6B,IAAzBC,KAIX,IAAxBvJ,EAAUmQ,WACwC,IAAlD3E,KAAK8E,UAAUjH,GAAsB,IAAIzuB,KAGvC4wB,KAAK4E,WACwB,EAA3B9G,GAAgCC,IAC/B,EAA6B,IAAzBA,KAITiC,KAAK4E,WACJ9G,GAA2BC,IACzB,EAA6B,IAAzBA,KAaX,SAASgH,KACP,OAA4B,IAAxBvQ,EAAUmQ,UACLhH,GAEmB,IAAxBnJ,EAAUmQ,UACL9G,GAAsB,GAExB,EAcT,SAASmH,GAAYxD,EAAIluB,EAAM2xB,GAC7B,MAAMC,EAAW73B,SAAS4D,cAAc,OACxCi0B,EAAS1D,GAAKA,EACd0D,EAASluB,MAAMmG,OAAS,OACxB+nB,EAASluB,MAAMmuB,OAAS,WACxBD,EAASluB,MAAMgI,SAAW,WAE1B,MAAMklB,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMkG,MAAQ,OAClBgnB,EAAIltB,MAAMmG,OAAS,OACnB+mB,EAAIltB,MAAMmuB,OAAS,OACnBjB,EAAIltB,MAAMgI,SAAW,WACrBklB,EAAIltB,MAAMqC,KAAO,MACjB6qB,EAAIltB,MAAMsC,IAAM,MAChB4qB,EAAIltB,MAAMkI,MAAQ,MAClBglB,EAAIltB,MAAMkW,OAAS,MAEnB,MAAM9d,EAAO/B,SAAS4D,cAAc,QACpC7B,EAAK4H,MAAMqV,QAAU,eACrBjd,EAAK4H,MAAMuW,UAAY,QACvBne,EAAK4H,MAAMouB,SAAW,OACtBh2B,EAAK4H,MAAMkG,MAAQ,QACnB9N,EAAK4H,MAAMquB,YAAc,MACzBj2B,EAAK4H,MAAMsuB,cAAgB,WAC3Bl2B,EAAKgD,YAAckB,EACnB4wB,EAAIvZ,YAAYvb,GAEhB,IAAK,IAAIL,EAAI,EAAGA,EAAIk2B,EAAKj2B,OAAQD,IAAK,CACpC,MAAMw2B,EAAWl4B,SAAS4D,cAAc,QACxCs0B,EAAS/D,GAAKyD,EAAKl2B,GAAGyyB,GACtB+D,EAASvuB,MAAMqV,QAAU,eACzBkZ,EAASvuB,MAAMmG,OAAS,OACxBooB,EAASvuB,MAAMsuB,cAAgB,WAC/BC,EAASvuB,MAAMuW,UAAY,SACvB0X,EAAKj2B,OAAS,IAAMD,IACtBw2B,EAASvuB,MAAMwuB,qBAAuB,OACtCD,EAASvuB,MAAMyuB,wBAA0B,aAEd,IAAlBR,EAAKl2B,GAAG4N,QACjB4oB,EAAS/1B,UAAY0mB,EAAe+O,EAAKl2B,GAAG4N,OAE9CunB,EAAIvZ,YAAY4a,GAGlB,MAAMG,EAAQr4B,SAAS4D,cAAc,QAQrC,OAPAy0B,EAAMlE,GAAK,GAAGA,QACdkE,EAAM1uB,MAAM2uB,WAAa,MACzBD,EAAM1uB,MAAMsuB,cAAgB,WAC5BpB,EAAIvZ,YAAY+a,GAEhBR,EAASva,YAAYuZ,GAEdgB,EAOT,SAASU,GAA2BC,GAClC,GAAsB,OAAlB1lB,EAAE,YAAsB,CAC1B,MAAM/Q,EAAO+Q,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GACtD6B,EAAQ3lB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GACvD5jB,EAAKF,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GACpDpK,EAAO1Z,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAEtDl1B,EAAI82B,EACJE,EAAS32B,EAAKub,YAAYtd,SAAS4D,cAAc,OACvD80B,EAAOpb,YACLtd,SAASqgB,eACP,IAAuB,IAApB3e,EAAEkD,QAAQ,KAAclD,EAAEi3B,UAAU,EAAGj3B,EAAEkD,QAAQ,MAAQlD,QAInDg3B,EAAOpb,YAAYtd,SAAS4D,cAAc,SAClDzB,UAAYymB,aAEjB8P,EAAOpb,YAAYtd,SAASqgB,eAAe,MAC3CoY,EAAMnb,YAAYtd,SAAS4D,cAAc,OACzCoP,EAAGsK,YAAYtd,SAAS4D,cAAc,OACtC4oB,EAAKlP,YAAYtd,SAAS4D,cAAc,QAkE5C,SAASg1B,KACP,GAAyB,IAArBzR,EAAU0R,QAAgB1I,IAAkC,IAAjBwC,KAAK4C,QAAe,CACjE,IAAIuD,EAAQ,EACZ,IAAK,MAAMp3B,KAAKwD,OAAO6C,KAAKooB,IAAgB,CAC1C,IAAIppB,EAAS4rB,KAAKuC,QACG,IAAjBvC,KAAK4C,QACPzL,EAAmB/iB,EAEnBA,EAAS+iB,EAEI,IAAX/iB,IAAcA,EAASopB,IACZ,KAAXppB,IAAeA,EAASqpB,IACb,MAAXrpB,IAAgBA,EAASspB,IAC7ByI,IACAhmB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACAlC,WAAW,GAAG7xB,YAAc4tB,KAAKoB,QAAQryB,GAAGqzB,OAC9CjiB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA/zB,YAAcomB,GAA4BpkB,EAAOrF,GAAG+2B,MAAO,GAC7D3lB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA32B,UAAYymB,EAAe7hB,EAAOrF,GAAG4N,MACvCwD,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA/zB,YAAcomB,GAA4BpkB,EAAOrF,GAAGsR,GAAI,GAC1D,MAAM+lB,EAAYpM,IACfgG,KAAKoB,QAAQryB,GAAGs3B,WAAarG,KAAKsG,QAAUvB,OAC3CN,MAEJtkB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA32B,UAAYymB,EAAemQ,EAAUzpB,MAElB,UAAnBypB,EAAUnM,MACV+F,KAAKsG,QAAUtG,KAAKoB,QAAQryB,GAAGs3B,UAE/BlmB,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA/zB,YAAc,GAAGg0B,EAAUnM,oBAE7B9Z,EAAE,YAAYvO,WAAWA,WAAWqyB,WAAW,GAAGA,WAChDkC,GACA/zB,YAAcg0B,EAAUnM,OAWlC,SAASsM,KACPvG,KAAKwG,WAAWzpB,OAAOG,MAAQ8iB,KAAKwG,WAAWzpB,OAAOmR,WAAWxU,YACjEsmB,KAAKwG,WAAWzpB,OAAOI,OACrB6iB,KAAKwG,WAAWzpB,OAAOmR,WAAWvU,aACpCqmB,KAAKyG,eAAe1pB,OAAOG,MACzB8iB,KAAKyG,eAAe1pB,OAAOmR,WAAWxU,YACxCsmB,KAAKyG,eAAe1pB,OAAOI,OACzB6iB,KAAKyG,eAAe1pB,OAAOmR,WAAWvU,aAY1C,SAAS+sB,KAEgB,IAArBlS,EAAU0R,QACa,IAAvB1R,EAAUmS,UACgB,IAA1BnS,EAAUoS,aAEVzmB,EAAE,YAAYnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OACnDgD,EAAE,QAAQnJ,MAAMkW,OAAS,GACvB+L,OAAO9Y,EAAE,cAAcnJ,MAAMmG,OAAOxH,QAAQ,KAAM,KAAO,QAE7B,IAArB6e,EAAU0R,QACnB/lB,EAAE,YAAYnJ,MAAMkW,OAAS,MAC7B/M,EAAE,QAAQnJ,MAAMkW,OAAS,QACO,IAAvBsH,EAAUmS,UAA4C,IAA1BnS,EAAUoS,YAC/CzmB,EAAE,QAAQnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OAG/CgD,EAAE,QAAQnJ,MAAMkW,OAAS,MAGA,IAAvBsH,EAAUmS,UAA4C,IAA1BnS,EAAUoS,YACxCzmB,EAAE,eAAenJ,MAAMsC,IAAM6G,EAAE,cAAcnJ,MAAMmG,OAEnDgD,EAAE,eAAenJ,MAAMsC,IAAM,GAG/BitB,KAMF,SAASM,KACoB,IAAvBrS,EAAUmS,SAAgBxmB,EAAE,cAAcnJ,MAAMqV,QAAU,GACzDlM,EAAE,cAAcnJ,MAAMqV,QAAU,OACrCqa,KAkPF,SAASI,KACP,IAAIC,EAAO,EACX,IAAK,MAAMh4B,KAAKwD,OAAO6C,KAAK4qB,KAAKgH,YACM,IAA1BhH,KAAKgH,MAAMj4B,GAAGk4B,UACvBF,GAAQ/G,KAAKgH,MAAMj4B,GAAGk4B,SAE1B,OAAOF,EAWT,SAASG,KACiC,OAApC/mB,EAAE,gCAC0B,IAA1BqU,EAAU2S,aACZhnB,EAAE,8BAA8BnJ,MAAMsC,IAAM,OAC5C6G,EAAE,8BAA8BnJ,MAAMmuB,OAAS,WAC/ChlB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAEhDrB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,OAC9CiB,EAAE,8BAA8BnJ,MAAMmuB,OAAS,MAC/ChlB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAatD,SAAS4lB,GACPC,EACAC,EACAC,GAEA,IAAIpB,EAAQ,EACZ,KAAOkB,EAAeE,GACpBF,GACqE,KAAnE/vB,KAAK6D,IAAI,MAAQksB,EAAe/vB,KAAK6D,IAAImsB,EAAU,OAAS,IAC9DnB,IAEF,OAAOA,EAAQnG,KAAKwH,IAyDtB,SAASC,GAAoBxN,GAC3B,MAAMiK,EAAM72B,SAAS4D,cAAc,OAKnC,OAJAizB,EAAIltB,MAAM0wB,WAAa,OACvBxD,EAAI1C,GAAK,GAAGvH,SACZiK,EAAI10B,UAAYymB,aAChBiO,EAAI9xB,YAAc6nB,EACXiK,EAmHT,SAASyD,GAAgCC,GACvCA,EAAQjd,YAAY8c,GAAoB,iBACxC,MAAMI,EAASx6B,SAAS4D,cAAc,OACtC42B,EAAO7wB,MAAM8wB,aAAe,MAC5BD,EAAO7wB,MAAM2F,MAAQ,QACrBkrB,EAAOrG,GAAK,kBACZoG,EAAQjd,YAAYkd,GAEpBD,EAAQjd,YAAY8c,GAAoB,4BACxCG,EAAQG,UAAU/wB,MAAMqV,QAAU,OAClC,MAAM2b,EAAQ36B,SAAS4D,cAAc,OACrC+2B,EAAMhxB,MAAM8wB,aAAe,MAC3BE,EAAMhxB,MAAM2F,MAAQ,QACpBqrB,EAAMhxB,MAAMqV,QAAU,OACtB2b,EAAMxG,GAAK,0BACXoG,EAAQjd,YAAYqd,GAEpBJ,EAAQjd,YAAY8c,GAAoB,mBACxC,MAAMpnB,EAAKhT,SAAS4D,cAAc,OAClCoP,EAAGrJ,MAAM8wB,aAAe,MACxBznB,EAAGmhB,GAAK,cACRoG,EAAQjd,YAAYtK,GAEpBunB,EAAQjd,YAAY8c,GAAoB,cACxC,MAAM5N,EAAOxsB,SAAS4D,cAAc,OAIpC,GAHA4oB,EAAK2H,GAAK,gBACVoG,EAAQjd,YAAYkP,GAEA,MAAhB5B,EAAqB,CACvB2P,EAAQjd,YACN8c,GAAoB,0CAEtBG,EAAQG,UAAUvG,GAAK,4BACvB,MAAMyG,EAAa56B,SAAS4D,cAAc,OAC1Cg3B,EAAWzG,GAAK,sBAChBoG,EAAQjd,YAAYsd,IA+fxB,SAASC,KACPhM,GAAkB8D,KAAKmI,WACvBhM,GAAmB6D,KAAKoI,YAS1B,SAASC,GAAgBC,GACvB,MAAMxE,EAAK9D,KAAKuI,aAAaD,GACvBE,EAAM,GAEZ,OADAA,EAAIl1B,KAAOwwB,EAAGxwB,KACPk1B,EAUT,SAASC,GAAoB3E,GAC3B,IAAIiD,EAAO,EACX,IAAK,MAAMh4B,KAAK+0B,EAAG4E,gBAEd1I,KAAK2I,MAAM7E,EAAG4E,eAAe35B,GAAG+xB,MAAM8H,SACvClI,GAAOoD,EAAG4E,eAAe35B,GAAGuE,QAE5ByzB,GAAQ,GAEZ,IAAK,MAAMh4B,KAAK+0B,EAAG+E,UACjB,GAAInI,GAAOoD,EAAG+E,UAAU95B,GAAGuE,MAAO,CAChC,MAAMw1B,EAAMhF,EAAG+E,UAAU95B,GACrB+5B,EAAIC,aAAaz1B,OAASwwB,EAAGxwB,KAC/ByzB,GAAQ,EAAI,IAAO+B,EAAIE,aAAa5G,OAC7B0G,EAAIE,aAAa11B,OAASwwB,EAAGxwB,OACpCyzB,GAAQ,EAAI,KAAQ+B,EAAIC,aAAa3G,QAM3C,GAHI0B,EAAGjC,SAAWnB,GAAOoD,EAAGjC,QAAQvuB,QAAOyzB,GAAQ,MAC/CjD,EAAGmF,SAAWvI,GAAOoD,EAAGmF,QAAQ31B,QAClCyzB,GAAQ,EAAgC,IAA5BnH,GAAWsJ,QAAQ9G,QAAiB,GAAK0B,EAAGtC,GAAK,KACnB,iBAAjCsC,EAAG4E,eAAeS,YACR,IAAfrF,EAAGsF,SAAiB1I,GAAOoD,EAAG4E,eAAeS,WAAW71B,MAC1D,OAAQ0sB,KAAKqJ,YACX,QACEtC,GAAQ,EACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KAKhB,OAAOA,EAiBT,SAASuC,GAAoBzD,GAC3B,MAAM/B,EAAK9D,KAAKoB,QAAQyE,GAClB2C,EAAM,GA2FZ,MA1FgB,WAAZ1E,EAAGxwB,KACLk1B,EAAIe,IAAM,SAAU5I,GAClB,IAAIzqB,EAAM,EACNwqB,GAAO,sBAAqBxqB,GAAO,IACnCwqB,GAAO,qBAAoBxqB,GAAO,GAClCwqB,GAAO,qBAAoBxqB,GAAO,IAClCwqB,GAAO,sBAAqBxqB,GAAO,IACnCwqB,GAAO,yBAAwBxqB,GAAO,IACtCwqB,GAAO,yBAAwBxqB,GAAO,IACtCwqB,GAAO,wBAAuBxqB,GAAO,IACrCwqB,GAAO,wBAAuBxqB,GAAO,IACrCwqB,GAAO,uBAAsBxqB,GAAO,IACpCwqB,GAAO,uBAAsBxqB,GAAO,IACxC,IAAI6wB,EAAO,EACPtO,EAAM,EACV,IAAK,MAAM1pB,KAAK6wB,GACa,WAAvBA,GAAW7wB,GAAGuE,OAAmBmlB,GAAOmH,GAAW7wB,GAAGqzB,QAM5D,OAJAlsB,GAAOuiB,EACPsO,GAAQ0B,GAAoB9H,GAC5BoG,GAAQ/G,KAAKwJ,SAAS,UACtBzC,GAAQvG,GAAO,aAEbR,KAAKyJ,WACH,GACA/I,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTxqB,GACE6wB,GAGa,YAAZjD,EAAGxwB,KACZk1B,EAAIe,IAAM,SAAU5I,GAClB,IAAIoG,EAAO,EACX,IAAK,MAAMh4B,KAAKixB,KAAK0J,iBACfhJ,GAAOV,KAAK0J,iBAAiB36B,MAAKg4B,GAAQ,GAUhD,GARIrG,GAAO,oCAAmCqG,GAAQ,GAClDrG,GAAO,yBAAwBqG,GAAQ,GACvCrG,GAAO,kBAAiBqG,GAAQ,GAEhCrG,GAAO,wBAAuBqG,GAAQ,MAE1CA,GAAQvG,GAAO,cAEXE,GAAO,cACT,IAAK,IAAI3xB,EAAI,EAAGA,EAAIixB,KAAK2J,eAAeC,OAAO56B,OAAQD,IACjD2xB,GAAOV,KAAK2J,eAAeC,OAAO76B,GAAGuE,QAAOyzB,GAAQ,MAI5DA,GAAQ0B,GAAoB9H,GAE5B,IAAIzqB,EAAM,EACNwqB,GAAO,cAAaxqB,GAAmC,IAA5B0pB,GAAWsJ,QAAQ9G,QAC9C1B,GAAO,yBACTxqB,GAAmC,IAA5B0pB,GAAWsJ,QAAQ9G,QACxB1B,GAAO,gBAAexqB,GAAkC,IAA3B0pB,GAAWiK,OAAOzH,QAEnD,IAAI3J,EAAM,EACV,IAAK,MAAM1pB,KAAK6wB,GACa,YAAvBA,GAAW7wB,GAAGuE,OAAoBmlB,GAAOmH,GAAW7wB,GAAGqzB,QAO7D,OAJA2E,GAAQ,EAAqC,IAAjC5G,GAAY,mBAA4B1H,EAEpDsO,GAAQ/G,KAAKwJ,SAAS1F,EAAGxwB,OAEjBwwB,EAAGgG,QAAU5zB,GAAO6wB,GAG9ByB,EAAIe,IAAM,SAAU5I,GAClB,IAAIoG,EAAO,EAGX,OAFAA,GAAQ0B,GAAoB9H,GAC5BoG,GAAQ/G,KAAKwJ,SAAS7I,EAAGrtB,MAClBqtB,EAAGoJ,QAAUhD,GAKxByB,EAAIsB,QAAUhG,EAAGgG,QACjBtB,EAAIl1B,KAAOwwB,EAAGxwB,KACdk1B,EAAIE,eAAiB5E,EAAG4E,eACxBF,EAAIK,UAAY/E,EAAG+E,UACnBL,EAAI3G,QAAUiC,EAAGjC,QACjB2G,EAAIS,QAAUnF,EAAGmF,QACjBT,EAAIuB,QAAUjG,EAAGgG,QACjBtB,EAAIhH,GAAKsC,EAAGtC,GACZgH,EAAIY,QAAUtF,EAAGsF,QACVZ,EAaT,SAASwB,GAAYC,GACnB,MAAMnG,EAAK9D,KAAKkK,SAASD,GACnBzB,EAAM,GA4BZ,OA1BAA,EAAI2B,MAAQrG,EAAGqG,MACU,mBAAd3B,EAAI2B,QACG,0BAAZrG,EAAGxwB,KACLk1B,EAAI2B,MAAQ,WACV,IAAIn4B,EAAI,EACR,IAAK,MAAMjD,KAAK6wB,GACVA,GAAW7wB,GAAGq7B,OAAS,KAAIp4B,GAAK,GAEtC,OAAOA,GAGTw2B,EAAI2B,MAAQ,WACV,IAAIE,EAAM,EAEV,GADI3J,GAAO,cAAa2J,EAAM,GAC1BrK,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,WACV,IAAXe,EAAcsI,GAAO,IACL,IAAXtI,EAAcsI,GAAO,IACV,IAAXtI,IAAcsI,GAAO,KAEhC,OAAOA,IAIb7B,EAAI3H,KAAOiD,EAAGjD,KACd2H,EAAIl1B,KAAOwwB,EAAGxwB,KACPk1B,EAiBT,SAAS8B,KAEP/O,GAAmByE,KAAKuK,cACxB/O,GAAawE,KAAKwK,QAClB/O,GAAuBuE,KAAKyK,kBAC5B/O,GAAmBsE,KAAK0K,cACxB/O,GAAcqE,KAAK2K,SAGnB,IAAK,MAAM57B,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAAU,CACzC,MAAM0C,EAAK9D,KAAKoB,QAAQryB,GACxB,IAAIy5B,EAAM5I,GAAW7wB,QACTI,IAARq5B,IAEF5I,GAAW7wB,GAAKu6B,GAAoBv6B,GACpCy5B,EAAM5I,GAAW7wB,GACjB62B,GAA2B72B,IAE7By5B,EAAIpG,OAAS0B,EAAG1B,OAChBoG,EAAI4B,MAAQtG,EAAGsG,MACf5B,EAAIoC,aAAe9G,EAAG8G,aACtBpC,EAAItG,UAAY4B,EAAG5B,UACnBsG,EAAIrG,KAAO2B,EAAG3B,KACV2B,EAAGhC,iBACL0G,EAAI1G,eAAiBgC,EAAGhC,eACxB0G,EAAIrH,SAAW2C,EAAG3C,UAEpBvB,GAAW7wB,GAAKy5B,EAIlB,IAAK,MAAMz5B,KAAKwD,OAAO6C,KAAK4qB,KAAKkK,UAAW,CAC1C,MAAMpG,EAAK9D,KAAKkK,SAASn7B,GACzB,IAAIy5B,EAAM3I,GAAY9wB,QACVI,IAARq5B,IACF3I,GAAY9wB,GAAKi7B,GAAYj7B,GAC7By5B,EAAM3I,GAAY9wB,IAEpBy5B,EAAIzH,OAAS+C,EAAG/C,OAChBlB,GAAY9wB,GAAKy5B,EAInB,IAAK,MAAMz5B,KAAKwD,OAAO6C,KAAK4qB,KAAKuI,cAAe,CAC9C,MAAMzE,EAAK9D,KAAKuI,aAAax5B,GAC7B,IAAIy5B,EAAM1I,GAAgB/wB,QACdI,IAARq5B,IACF1I,GAAgB/wB,GAAKs5B,GAAgBt5B,GACrCy5B,EAAM1I,GAAgB/wB,IAExBy5B,EAAIqC,IAAM/G,EAAG+G,IACb/K,GAAgB/wB,GAAKy5B,EAIvBN,KACAtM,GAAgBM,GAChBL,GAAiBM,GAenB,SAAS2O,GACP7I,EACAC,EACA3jB,EACA4jB,EACA4I,GAEA,IAAIzI,EAAO,EACX,IAAK,IAAIvzB,EAAI,EAAGA,EAAIg8B,EAAUh8B,IAAK,CACjC,IAAI4yB,EAAQO,EAAYlC,KAAKwC,eAAiBlrB,KAAK6D,IAAI,EAAGoD,EAAQ4jB,GAClER,EAAQ3B,KAAKyC,oBAAoBR,EAAON,GACxCA,EAAQrqB,KAAKoL,KAAKif,GAClBW,GAAQX,EACRpjB,IAEF,OAAO+jB,EAsBT,SAAS0I,GAAoBC,EAAahR,EAAMiR,GAC9C,MAAMC,EAAU99B,SAAS4D,cAAc,OACvCk6B,EAAQ3J,GAAKyJ,EACb,MAAMG,EAAO/9B,SAAS4D,cAAc,OACpCm6B,EAAKp0B,MAAMk0B,SAAWA,EACtBE,EAAKp0B,MAAM8wB,aAAe,MAC1B,MAAM5D,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMuW,UAAY,OACtB2W,EAAI9xB,YAAc6nB,EAClBmR,EAAKzgB,YAAYuZ,GACjBiH,EAAQxgB,YAAYygB,GAMtB,SAASC,KAEP,GADAf,KACyC,SAArCnqB,EAAE,iBAAiBnJ,MAAMqV,SAAsBlM,EAAE,iBAAkB,CACrEA,EAAE,iBAAiBoM,UAAY,GAC/B,MAAM+e,EAthCV,WACEnrB,EAAE,WAAWvO,WAAWoF,MAAMu0B,cAAgB,MAC9C,MAAMD,EAAaj+B,SAAS4D,cAAc,OAM1C,OALAq6B,EAAWt0B,MAAM0U,OAAS,YAC1B4f,EAAWt0B,MAAMwK,QAAU,MAC3B8pB,EAAWt0B,MAAMmuB,OAAS,WAC1BmG,EAAW9J,GAAK,kBAChB8J,EAAW97B,UAAYymB,aAChBqV,EA8gCcE,GACnBrrB,EAAE,iBAAiBwK,YAAY2gB,GAEX,MAAhBrT,EAt1BR,WACE,GAAsC,IAAlCzD,EAAUiX,qBAA8C,IAAjBzL,KAAK4C,QAAe,CAI7D,IAAIxuB,EAaJ,GAfAuzB,GADmBxnB,EAAE,oBAIA,IAAjB6f,KAAK4C,QACPvL,EAA4BjjB,EAE5BA,EAASijB,EAEU,IAAjB2I,KAAKuC,QAAenuB,EAASopB,GACP,KAAjBwC,KAAKuC,QAAgBnuB,EAASqpB,GACb,MAAjBuC,KAAKuC,UAAiBnuB,EAASspB,IAExC3F,EAAeiI,KAAKoB,QAAQlJ,IAAamO,UACzCrO,EAAqB5jB,EAAO8jB,IAAa4N,MAEH,IAAlCtR,EAAUiX,qBAA8C,IAAjBzL,KAAK4C,QAAe,CAC7DziB,EAAE,mBAAmB/N,YAAcomB,GAA4BR,EAAoB,GACnF,MAAM+S,EAAWzzB,KAAKC,MACnBygB,EAAqBgI,KAAK4E,UAAa,KAEtC3L,OAAOC,SAAS6R,IAA0B,IAAbA,EAC/B5qB,EAAE,mBAAmB/N,aAAe,KAAK24B,EAAW,kBAEpD5qB,EAAE,mBAAmB/N,aAAe,OAClCoiB,EAAU6E,eAAiB,IAAM,oBAGrClZ,EAAE,mBAAmB3Q,UAAYymB,EAAe7hB,EAAO8jB,IAAavb,MACpEwD,EAAE,eAAe/N,YAAcomB,GAA4BpkB,EAAO8jB,IAAa7X,GAAI,GACnFF,EAAE,eAAe3Q,UAAYymB,EAAe7hB,EAAO8jB,IAAavb,MAChE,MAAMypB,EAAYpM,IACfjC,GAAgBiI,KAAKsG,QAAUvB,OAAyBN,MAE3DtkB,EAAE,iBAAiB/N,YAAcg0B,EAAUnM,KAEtB,UAAnBmM,EAAUnM,MACV+F,KAAKsG,QAAUlyB,EAAO8jB,IAAayJ,MAEnCxhB,EAAE,iBAAiB/N,YAAc,GAAGg0B,EAAUnM,oBACzC9Z,EAAE,iBAAiB/N,YAAcg0B,EAAUnM,KAClD9Z,EAAE,iBAAiB3Q,UAAYymB,EAAemQ,EAAUzpB,MAI1DwD,EAAE,6BAA6BnJ,MAAMqV,QAAU,OAC/ClM,EAAE,iBAAiBnJ,MAAM8wB,aAAe,MACxC,IAAK,MAAM/4B,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,QAAQlJ,IAAawT,mBACpD,IACG1L,KAAK2L,UACJ3L,KAAKoB,QAAQlJ,IAAawT,kBAAkB38B,GAAG68B,OAAOt4B,MAExD,CACA,MAAMu4B,EACJ7L,KAAKoB,QAAQlJ,IAAawT,kBAAkB38B,GAC9CoR,EAAE,iBAAiBnJ,MAAM8wB,aAAe,MACxC3nB,EAAE,6BAA6BnJ,MAAMqV,QAAU,GAC/ClM,EAAE,uBAAuB3Q,UAAY,kBAAkB0oB,KACvD/X,EAAE,uBAAuB/N,YAAcomB,GACrCqT,EAAqBxB,IAAMzK,GAAW1H,IAAa0S,aACnD,IAEFzqB,EAAE,uBAAuBnJ,MAAM2F,MAAQ,QACvC,YAGCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAmxBtCyf,GACyB,MAAhB7T,EA9wBf,WAYE,GAVA0P,GADmBxnB,EAAE,oBAGrB6X,EACEgG,GAAcgC,KAAK6D,gBAAgB3L,IAAa5kB,MAAMwyB,MACxD/N,EAAeiI,KAAKkK,SAClBlK,KAAK6D,gBAAgB3L,IAAa5kB,MAClCy4B,WACF5T,GACE6F,GAAcgC,KAAK6D,gBAAgB3L,IAAa5kB,MAAM04B,WAElB,IAAlCxX,EAAUiX,oBAA2B,CACvCtrB,EAAE,mBAAmB/N,YAAcomB,GAA4BR,EAAoB,GACnF,MAAM+S,EAAWzzB,KAAKC,MAAOygB,EAAqBgI,KAAK4E,UAAa,KAG7B,MAArCzkB,EAAE,mBAAmB/N,aACJ,MAAhB6lB,GAAuC,MAAhBA,GAOpBgB,OAAOC,SAAS6R,IAA0B,IAAbA,EAC/B5qB,EAAE,mBAAmB/N,aAAe,KAAK24B,EAAW,kBAEpD5qB,EAAE,mBAAmB/N,aAAe,OAClCoiB,EAAU6E,eAAiB,IAAM,oBAGrClZ,EAAE,mBAAmB3Q,UACnBymB,EACA+H,GAAcgC,KAAK6D,gBAAgB3L,IAAa5kB,MAAMqJ,MAEpDwb,KACFhY,EAAE,2BAA2B/N,YAAcomB,GAA4BL,IACvEhY,EAAE,2BAA2BnJ,MAAMqV,QAAU,QAC7ClM,EAAE,2BAA2B8rB,gBAAgBj1B,MAAMqV,QAAU,SAGpC,IAAvB2L,GAA4BG,IAC9BhY,EAAE,eAAe/N,YAAc,GAAGomB,GAChCT,EAAeI,aAEjBhY,EAAE,eAAenJ,MAAM2F,MAAQ,UAE/BwD,EAAE,eAAe/N,YAAcomB,GAC7BwF,GAAcgC,KAAK6D,gBAAgB3L,IAAa5kB,MAAM+M,GACtD,GAEFF,EAAE,eAAe3Q,UACfymB,EACA+H,GAAcgC,KAAK6D,gBAAgB3L,IAAa5kB,MAAMqJ,SAlC1DwD,EAAE,qBAAqBnJ,MAAMqV,QAAU,OACvClM,EAAE,mBAAmBnJ,MAAMqV,QAAU,OACrClM,EAAE,uBAAuBnJ,MAAMqV,QAAU,OACzClM,EAAE,eAAenJ,MAAMqV,QAAU,QAkCnC,MAAM+Z,EAAYpM,IACfjC,GAAgBiI,KAAKsG,QAAUvB,OAAyBN,MAY3D,GAVAtkB,EAAE,iBAAiB/N,YAAcg0B,EAAUnM,KAEtB,UAAnBmM,EAAUnM,MACV+F,KAAKsG,QAAUtG,KAAK6D,gBAAgB3L,IAAa6T,WAEjD5rB,EAAE,iBAAiB/N,YAAc,GAAGg0B,EAAUnM,oBACzC9Z,EAAE,iBAAiB/N,YAAcg0B,EAAUnM,KAClD9Z,EAAE,iBAAiB3Q,UAAYymB,EAAemQ,EAAUzpB,MAGT,kBAA3CqjB,KAAK6D,gBAAgB3L,IAAa5kB,KAA0B,CAC9D6M,EAAE,mBAAmB4nB,UAAU/wB,MAAM8wB,aAAe,MACpD3nB,EAAE,mBAAmBwK,YACnB8c,GAAoB,yCAEtB,MAAMyE,EAAY7+B,SAAS4D,cAAc,OACzCi7B,EAAUl1B,MAAM2F,MAAQ,QACxBuvB,EAAU95B,YAAc,GAAGomB,GAA2C,IAAfwH,KAAKsG,cAAqB9N,GAC/E+E,MAEFpd,EAAE,mBAAmBwK,YAAYuhB,SAE9B/rB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA6rBtC8f,GACyB,MAAhBlU,EAvrBf,WACE,GAA8B,IAA1BzD,EAAU4X,YAAmB,CAC/B,MAAMd,EAAanrB,EAAE,mBAErBmrB,EAAW3gB,YAAY8c,GAAoB,uBAE3C,MAAM4E,EAAWh/B,SAAS4D,cAAc,OACxCo7B,EAAS7K,GAAK,gBACd8J,EAAW3gB,YAAY0hB,GACvB,MAAMC,EA3YK,KADOl9B,EA4Ya4wB,KAAKuM,iBA1Y7B,CAAEtS,KAAM,SAAUtd,MAAO8Z,GAErB,IAATrnB,EACK,CAAE6qB,KAAM,aAActd,MAAOyZ,GAEzB,IAAThnB,EACK,CAAE6qB,KAAM,SAAUtd,MAAO0Z,GAErB,IAATjnB,EACK,CAAE6qB,KAAM,QAAStd,MAAO2Z,GAEpB,IAATlnB,EACK,CAAE6qB,KAAM,cAAetd,MAAO6Z,GAEhC,CAAEyD,KAAM,qBAAsBtd,MAAO4Z,GA6X1C8V,EAASj6B,YAAck6B,EAAUrS,KACjCoS,EAAS78B,UAAYymB,EAAeqW,EAAU3vB,WACzCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA/Y5C,IAAsBjd,EA2jChBo9B,GACyB,MAAhBvU,EAtqBf,WACE,MAAMkJ,EAAWnB,KAAKoB,QAAQ,gBAAgBD,SACxCsL,EAAYtL,EAASuL,aAAavL,EAASwL,WAAWzU,KAE5D,GAA8B,IAA1B1D,EAAUoY,aAAqBH,GAAatL,EAAS0L,OAAQ,CAC/D,MAAMvB,EAAanrB,EAAE,mBAGrBmrB,EAAW3gB,YAAY8c,GAAoB,cAC3C,MAAM5N,EAAOxsB,SAAS4D,cAAc,OACpC4oB,EAAK2H,GAAK,gBACV8J,EAAW3gB,YAAYkP,GACvB,MAAMuM,EAAYpM,GAChBoN,GAA4BjG,EAAS2L,MAAO3L,EAAS0L,OAAQJ,IAM/D,GAJA5S,EAAKznB,YAAcg0B,EAAUnM,KAC7BJ,EAAKrqB,UAAYymB,EAAemQ,EAAUzpB,MAGtC8vB,GAAatL,EAAS2L,MAAO,CAC/BxB,EAAW3gB,YAAY8c,GAAoB,iBAC3C,MAAMsF,EAAU1/B,SAAS4D,cAAc,OACvC87B,EAAQvL,GAAK,mBACb8J,EAAW3gB,YAAYoiB,GACvB,MAAMC,EAAehT,GACnBoN,GACE9vB,KAAK6D,IAAI,EAAGgmB,EAAS2L,MAAQL,GAC7BtL,EAAS0L,OACT1L,EAAS2L,QAGbC,EAAQ36B,YAAc46B,EAAa/S,KACnC8S,EAAQv9B,UAAYymB,EAAe+W,EAAarwB,MAIlD,GAAoB,MAAhBub,GAAqB,CACvBoT,EAAW3gB,YACT8c,GAAoB,8BAEtB,MAAMwF,EAAU5/B,SAAS4D,cAAc,OACvCg8B,EAAQzL,GAAK,IACb8J,EAAW3gB,YAAYsiB,GACvB,MAAMC,EAAS7/B,SAAS4D,cAAc,QACtCi8B,EAAOl2B,MAAM2F,MAAQ,UACrBuwB,EAAO96B,YAAcomB,GACnBlhB,KAAK2D,IACqC,KAAvC+kB,KAAKsG,QAAUvB,MACa,GAA7B/H,GAAkC,IAEpC,GAEFiQ,EAAQtiB,YAAYuiB,GACpB,MAAMC,EAAY9/B,SAAS4D,cAAc,QACzCk8B,EAAU/6B,YAAc,MACxB66B,EAAQtiB,YAAYwiB,GACpB,MAAMC,EAAO//B,SAAS4D,cAAc,QACpCm8B,EAAKp2B,MAAM2F,MAAQ,MACnBywB,EAAKh7B,YAAcomB,GAAyD,GAA7BwE,GAAkC,GAAI,GACrFiQ,EAAQtiB,YAAYyiB,GAGtBjtB,EAAE,iBAAiBwK,YAAY2gB,QAC1BnrB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAwmBtCghB,GACyB,MAAhBpV,EAlmBf,WACE,MAAMkJ,EAAWnB,KAAKoB,QAAQkM,KAAKnM,SACnC,GACE3M,EAAU+Y,cAC2C,IAArDpM,EAASqM,KAAKtV,GAAY,IAAIA,GAAY,IAAI,GAC9C,CACA,MAAMuV,EACJtM,EAASqM,KAAKtV,GAAY,IAAIA,GAAY,IAAI,GAC9CiJ,EAASuM,WAAWvM,EAASqM,KAAKtV,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpEyV,WACCC,EACJzM,EAASuM,WAAWvM,EAASqM,KAAKtV,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpE5kB,KACL6M,EAAE,mBAAmBwK,YACnB8c,GAAoB,+BAEtB,MAAMyF,EAAS7/B,SAAS4D,cAAc,OACtCi8B,EAAO1L,GAAK,uBACZrhB,EAAE,mBAAmBwK,YAAYuiB,GACf,cAAdU,EACFztB,EAAE,wBAAwB/N,YAAc,GACtCq7B,EACIjV,GAA4BlhB,KAAK2D,IAAmB,IAAf+kB,KAAKsG,QAAiC,GAAjBtG,KAAK4E,UAAiB,KAChF,SACApM,GAA6C,GAAjBwH,KAAK4E,UAAiB,MACjC,cAAdgJ,GAA2C,oBAAdA,EACtCztB,EAAE,wBAAwB/N,YAAc,GACtCq7B,EACIjV,GAA4BlhB,KAAK2D,IAAmB,IAAf+kB,KAAKsG,QAAiC,GAAjBtG,KAAK4E,UAAiB,IAChF,SACApM,GAA6C,GAAjBwH,KAAK4E,UAAiB,KACjC,cAAdgJ,EACTztB,EAAE,wBAAwB/N,YAAc,GACtCq7B,EACIjV,GAA4BlhB,KAAK2D,IAAmB,IAAf+kB,KAAKsG,QAAiC,GAAjBtG,KAAK4E,UAAiB,KAChF,SACApM,GAA6C,GAAjBwH,KAAK4E,UAAiB,MACjC,cAAdgJ,EACTztB,EAAE,wBAAwB/N,YAAc,GACtCq7B,EACIjV,GAA4BlhB,KAAK2D,IAAmB,IAAf+kB,KAAKsG,QAAiC,GAAjBtG,KAAK4E,UAAiB,MAChF,SACApM,GAA6C,GAAjBwH,KAAK4E,UAAiB,OACnDzkB,EAAE,iBAAiBnJ,MAAMqV,QAAU,YACrClM,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAujBtCwhB,GACyB,OAAhB5V,GAhjBf,WACE,MAAMkJ,EAAWnB,KAAKoB,QAAQkM,KAAKnM,SACnC,GAAI3M,EAAU4X,YAAa,CACzBjsB,EAAE,mBAAmBwK,YACnB8c,GAAoB,oCAEtB,IAAIqG,EAAY,EACZC,EAAS,EACT/N,KAAK5qB,KAAK,KAAO4qB,KAAK5qB,KAAK,MAAK24B,EAAS,GAC7C,IAAK,IAAI70B,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAID,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAIkoB,EAASqM,KAAKt0B,GAAGD,GAAG,IAAM,EAAG,CAC/B,MAAM+0B,EAAO7M,EAASqM,KAAKt0B,GAAGD,GACxB6qB,EAAK3C,EAASuM,WAAWM,EAAK,GAAK,GACnCJ,EAAY9J,EAAGxwB,KAErB,IAAI6yB,GAAQ,EACR4H,GAAUjK,EAAGmK,WAAU9H,GAAQ,GAC/B6H,EAAK,GAAKlK,EAAG6J,aAAYxH,GAAQ,GACjCA,GAAuB,cAAdyH,EACXE,GAAax2B,KAAK2D,IACD,IAAf+kB,KAAKsG,QACY,GAAjBtG,KAAK4E,UAAiB,IAGvBuB,GAAuB,cAAdyH,GACI,oBAAdA,EAEAE,GAAax2B,KAAK2D,IAAmB,IAAf+kB,KAAKsG,QAAiC,GAAjBtG,KAAK4E,UAAiB,GACxDuB,GAAuB,cAAdyH,EAClBE,GAAax2B,KAAK2D,IACD,IAAf+kB,KAAKsG,QACY,GAAjBtG,KAAK4E,UAAiB,IAEfuB,GAAuB,cAAdyH,IAClBE,GAAax2B,KAAK2D,IACD,IAAf+kB,KAAKsG,QACY,GAAjBtG,KAAK4E,UAAiB,MAMhCzkB,EAAE,mBAAmBwK,YACnBtd,SAASqgB,eAAe8K,GAA4BsV,UAEjD3tB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAmgBtC6hB,GA5fN,WACE,GAAoB,MAAhBjW,GAAuC,MAAhBA,EAAqB,CACgB,OAA1D5qB,SAAS8gC,eAAe,gCAC1BhuB,EAAE,iBAAiBwK,YA7gBzB,WACE,MAAMyjB,EAAc/gC,SAAS4D,cAAc,OAC3Cm9B,EAAYp3B,MAAMgI,SAAW,WAC7BovB,EAAYp3B,MAAMqV,QAAU,QAC5B+hB,EAAYp3B,MAAMqC,KAAO,OACzB+0B,EAAYp3B,MAAMkW,OAAS,OAC3BkhB,EAAY5M,GAAK,6BAEjB,MAAM6M,EAAS,SACbC,EACA3xB,EACA4xB,EACAC,EACAC,GAEA,MAAM3lB,EAAMzb,SAAS4D,cAAc,OACnC6X,EAAI0Y,GAAK8M,EACTxlB,EAAI9R,MAAMqV,QAAU,OACpBvD,EAAI9R,MAAM03B,WAAa,wBACvB5lB,EAAItZ,UAt7Ce,WAs7CcmN,EACjCmM,EAAI9R,MAAMwK,QAAU,MACpBsH,EAAI9R,MAAMqB,WAAa,8BACvB,MAAMs2B,EAAWthC,SAAS4D,cAAc,OACxC6X,EAAI6B,YAAYgkB,GAChB,MAAMC,EAAYvhC,SAAS4D,cAAc,QACzC29B,EAAUp/B,UAAYymB,EAAetZ,EACrCiyB,EAAU53B,MAAM0wB,WAAa,OAC7BkH,EAAUx8B,YAAcm8B,EACxBI,EAAShkB,YAAYikB,GACrBD,EAAShkB,YAAYtd,SAASqgB,eAAe8gB,IAC7C,MAAMK,EAAaxhC,SAAS4D,cAAc,OAC1C6X,EAAI6B,YAAYkkB,GAChB,MAAMC,EAAczhC,SAAS4D,cAAc,QAI3C,OAHA69B,EAAYtN,GAAKiN,EACjBI,EAAWlkB,YAAYtd,SAASqgB,eAAe,cAC/CmhB,EAAWlkB,YAAYmkB,GAChBhmB,GA+DT,OA5DAslB,EAAYzjB,YACV0jB,EACE,yBACA9X,EACA,YACA,uFACA,+BAGJ6X,EAAYx8B,WAAWoF,MAAM8wB,aAAe,MAC5CsG,EAAYzjB,YACV0jB,EACE,+BACAhY,EACA,YACA,gGACA,qCAGJ+X,EAAYrG,UAAU/wB,MAAM8wB,aAAe,MAC3CsG,EAAYzjB,YACV0jB,EACE,2BACA7X,EACA,YACA,oGACA,iCAGJ4X,EAAYrG,UAAU/wB,MAAM8wB,aAAe,MAC3CsG,EAAYzjB,YACV0jB,EACE,iCACA7X,EACA,YACA,6GACA,uCAGJ4X,EAAYrG,UAAU/wB,MAAM8wB,aAAe,MAC3CsG,EAAYzjB,YACV0jB,EACE,2BACA7X,EACA,YACA,qJACA,iCAGJ4X,EAAYrG,UAAU/wB,MAAM8wB,aAAe,MAC3CsG,EAAYzjB,YACV0jB,EACE,wBACA9X,EACA,YACA,2EAA2E/B,EAAUua,8BACrF,8BAIGX,EA0a4BY,IAC/B9H,MAG4B,IAA1B1S,EAAU2S,YACZhnB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,MAE9CiB,EAAE,8BAA8BnJ,MAAMsC,IAAM,GAC1C6G,EAAE,WAAWxG,iBAGjBwG,EAAE,8BAA8BnJ,MAAMkG,MACpCiD,EAAE,WAAWzG,YAAc,EADiB,KAI9C,MAAM0oB,EAASpC,KAAKsG,QAAUvB,KAAuBhN,EAC/CkX,EAAkBza,EAAU0a,YAAclX,EAAqB,EACrE,IAAImX,EAAa7S,GACjB,GAA8B,IAA1B9H,EAAU0a,YAAmB,CAC/B,IAAIE,EAAcpX,EAClBoX,GAAetI,KACfqI,GAA6B,GAAdC,EAAmB,GAAM,IAc1C,GAXgC,IAA5B5a,EAAU6a,eACRjN,EAAS+M,IAA+B,MAAhBlX,GAAwC,IAAjB+H,KAAK4C,UACtDziB,EAAE,0BAA0BnJ,MAAMqV,QAAU,GAC5ClM,EAAE,8BAA8B/N,YAAc,GAAGomB,GAC/C2W,EAAa/M,OACTxI,IACHuV,EAAa/M,IAAWqC,KAAWwK,QAGnC9uB,EAAE,0BAA0BnJ,MAAMqV,QAAU,OAEb,IAAlCmI,EAAU8a,oBAA2B,CACvC,MAAMC,EAAgC,EAAbJ,EAEvB/M,EAASmN,IACQ,MAAhBtX,GAAwC,IAAjB+H,KAAK4C,UAE7BziB,EAAE,gCAAgCnJ,MAAMqV,QAAU,GAClDlM,EAAE,oCAAoC/N,YAAc,GAAGomB,GACrD+W,EAAmBnN,OACfxI,IACH2V,EAAmBnN,IAAWqC,KAAWwK,QAEvC9uB,EAAE,gCAAgCnJ,MAAMqV,QAAU,YACpDlM,EAAE,gCAAgCnJ,MAAMqV,QAAU,OAEzD,GAAkC,IAA9BmI,EAAUgb,gBAAuB,CACnC,MAAMC,EAA4B,EAAbN,EAEnB/M,EAASqN,IACQ,MAAhBxX,GAAwC,IAAjB+H,KAAK4C,UAE7BziB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGomB,GACjDiX,EAAerN,OACXxI,IACH6V,EAAerN,IAAWqC,KAAWwK,QAEnC9uB,EAAE,4BAA4BnJ,MAAMqV,QAAU,YAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAErD,GAAwC,IAApCmI,EAAUkb,sBAA6B,CACzC,MAAMC,EAAkC,EAAbR,EAAiB,EAE1C/M,EAASuN,IACQ,MAAhB1X,GAAwC,IAAjB+H,KAAK4C,UAE7BziB,EAAE,kCAAkCnJ,MAAMqV,QAAU,GACpDlM,EAAE,sCAAsC/N,YAAc,GAAGomB,GACvDmX,EAAqBvN,OACjBxI,IACH+V,EAAqBvN,IAAWqC,KAAWwK,QAEzC9uB,EAAE,kCAAkCnJ,MAAMqV,QAAU,YACtDlM,EAAE,kCAAkCnJ,MAAMqV,QAAU,OAG3B,IAA9BmI,EAAUob,iBACV5P,KAAKoB,QAAQ,gBAAgBU,gBAG3BhF,IACAsF,EAAStF,KACQ,MAAhB7E,GAAwC,IAAjB+H,KAAK4C,UAE7BziB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGomB,GACjDsE,GAAesF,OACXxI,IACHkD,GAAesF,IAAWqC,KAAWwK,QAGrC9uB,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAEjDmI,EAAUua,aAAe,GAEzB3M,EAAS5N,EAAUua,aAAetK,OACjB,MAAhBxM,GAAwC,IAAjB+H,KAAK4C,UAE7BziB,EAAE,yBAAyBnJ,MAAMqV,QAAU,GAE3ClM,EACE,yBACA0vB,SAAS,GAAGz9B,YAAc,2EAA2EoiB,EAAUua,8BACjH5uB,EAAE,6BAA6B/N,YAAc,GAAGomB,GAC9ChE,EAAUua,aAAetK,KAAWrC,OAChCxI,IACHpF,EAAUua,aAAetK,KAAWrC,IAClCqC,KAAWwK,QAGb9uB,EAAE,yBAAyBnJ,MAAMqV,QAAU,YACL,OAApClM,EAAE,+BACXA,EAAE,8BAA8B9J,SAsYhCy5B,QACgC,OAAvB3vB,EAAE,kBAE6B,OAApCA,EAAE,+BACJA,EAAE,8BAA8B9J,SAYtC,SAAS05B,GAAc3gC,EAAMkE,GAC3B,GAAa,MAATlE,EAAc,CAIhB,GAFA+Q,EAAE,WAAWoM,UAAYyT,KAAKoB,QAAQ9tB,GAAMs0B,UAEd,IAA1BpT,EAAUwb,YAAmB,CAC/B,MAAMC,EAAanF,GACjB9K,KAAKoB,QAAQ9tB,GACb0sB,KAAKoB,QAAQ9tB,GAAM4uB,UACnB,EACAlC,KAAKoB,QAAQ9tB,GAAM6uB,KACnBnC,KAAKoB,QAAQ9tB,GAAM8uB,QAEf8N,EAAiBD,EAAajQ,KAAKoB,QAAQ9tB,GAAMs3B,aACnDsF,EAAiB,IACnB/vB,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM,gBAChB6C,KACC,wBAAwB+f,GAA4B0X,UACnB,IAA/B54B,KAAKkE,MAAM00B,GAAwB,SAAW,+BAE9ClW,IACGiW,EAAajQ,KAAKoB,QAAQ9tB,GAAMs3B,eAC9B5K,KAAKoB,QAAQ9tB,GAAM68B,eAAiBnQ,KAAKoQ,gBAC5CnW,iBAKU,IAAlB+F,KAAK4C,UASPziB,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM4iB,GAA4BwH,KAAKoB,QAAQ9tB,GAAM+yB,YAC/D5tB,KACC+f,IACGwH,KAAKoB,QAAQ9tB,GACd0sB,KAAKoB,QAAQ9tB,GAAM4uB,UACnBlC,KAAKoB,QAAQ9tB,GAAM8uB,OACnBpC,KAAKoB,QAAQ9tB,GAAM6uB,KACnBnC,KAAKuC,QACL,WAIH,GAAa,MAATnzB,EAAc,CAEvB,IAAK4wB,KAAK6D,gBAAgBvwB,GAAO,MAAO,GACxC6M,EAAE,WAAWoM,UAAYyT,KAAKqQ,aAC5BrQ,KAAK6D,gBAAgBvwB,GACrB,aAEgB,MAATlE,EAAc+Q,EAAE,WAAWoM,UAAYyT,KAAKsQ,cAErC,MAATlhC,EACP+Q,EAAE,WAAWoM,UAAYyT,KAAKoB,QAAQ,gBAAgBD,SAASoP,aAC7Dj9B,EADuB0sB,GAIT,MAAT5wB,EACP+Q,EAAE,WAAWoM,UAAYyT,KAAKwQ,YAAY,GAAGrP,SAASsP,YACpDn9B,EAAK,GACLA,EAAK,GAFkB0sB,GAKT,OAAT5wB,IACP+Q,EAAE,WAAWoM,UAAYyT,KAAKwQ,YAAY,GAAGrP,SAASuP,YAAY,EAAzC1Q,IAG3B,GACY,MAAT5wB,GAAiC,IAAjB4wB,KAAK4C,SACb,MAATxzB,GACS,MAATA,GACS,MAATA,GACU,MAATA,IAAiB4wB,KAAK5qB,KAAK,KACnB,OAAThG,EACA,CACA,MAAMuhC,EAAOtjC,SAAS4D,cAAc,OACpC0/B,EAAKnP,GAAK,gBACVrhB,EAAE,WAAWwK,YAAYgmB,GAS3B,OALA1Y,EAAc7oB,EACd8oB,GAAc5kB,EAEd+3B,KAEOlrB,EAAE,WAAWoM,UAuFtB,SAASqkB,KAEP,GACE5Q,KAAK6Q,MAAMC,UACX9Q,KAAK+Q,MAAQ,IAAO,GACJ,UAAhB/Q,KAAKgR,QACLxc,EAAUyc,MACV,CACA,MAAMvL,EAAQr4B,SAAS8gC,eAAe,wBAClCzI,IACFA,EAAMwL,UAAYlR,KAAKmR,QACV,GAAXnR,KAAKwH,IAAYxH,KAAKoR,GAAgB,GAAXpR,KAAKwH,KAChC,IAMN7E,KACAS,KA5gDF,WACE,GAA2B,IAAvB5O,EAAUmS,SAAgB,CAE5B,MAAM0K,EAAiBlxB,EAAE,cAAczG,YAAc,IAE/C43B,EAAiBnxB,EAAE,cAAczG,YAAc,IACrD,IAAI63B,EAAiB,EAIkB,IAArCvR,KAAKwR,aAAaC,OAAOC,SACxB1R,KAAK2R,IAAI,uBA+CLxxB,EAAE,gBAAgBnJ,MAAMqV,QAAU,QA7CvClM,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClClM,EAAE,sBAAsBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC3CD,KAAK6D,IACJ,EACA6kB,KAAKwR,aAAaC,OAAOG,QAAU5R,KAAKwR,aAAaC,OAAO5X,MAE5DwX,EACArR,KAAKwR,aAAaC,OAAOI,aAEzBrd,EAAUsd,iBAAmB,EAC/B3xB,EAAE,sBAAsB/N,YAAckF,KAAKoL,MACxCsd,KAAKwR,aAAaC,OAAOG,QAAU5R,KAAKwR,aAAaC,OAAO5X,MAC3DmG,KAAKwH,KAENrnB,EAAE,sBAAsB/N,YAAc,GAEzC4tB,KAAKwR,aAAaC,OAAOG,UAAY5R,KAAKwR,aAAaC,OAAOI,SAE9D1xB,EAAE,sBAAsBnJ,MAAMwuB,qBAAuB,OACrDrlB,EAAE,sBAAsBnJ,MAAMyuB,wBAA0B,SAExDtlB,EAAE,sBAAsBnJ,MAAMwuB,qBAAuB,GACrDrlB,EAAE,sBAAsBnJ,MAAMyuB,wBAA0B,IAE1DtlB,EAAE,mBAAmBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACxCD,KAAK2D,IACJ+kB,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAOG,QAC5D5R,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAO5X,MAE5DwX,EACArR,KAAKwR,aAAaC,OAAOI,aAEzBrd,EAAUsd,iBAAmB,EAC/B3xB,EAAE,mBAAmB/N,YAAckF,KAAKoL,KACtCpL,KAAK2D,IACH+kB,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAOG,QAC5D5R,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAO5X,MAC1DmG,KAAKwH,KAERrnB,EAAE,mBAAmB/N,YAAc,GACxC+N,EAAE,oBAAoB/N,YAAckF,KAAKoL,MACtCsd,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAO5X,MAC3DmG,KAAKwH,KAET+J,KAKgB,cAAhBvR,KAAK+R,QACkC,IAAvC/R,KAAKwR,aAAaQ,SAASN,SAE3BvxB,EAAE,iBAAiBnJ,MAAMqV,QAAU,GACnClM,EAAE,uBAAuBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC5CD,KAAK6D,IACJ,EACA6kB,KAAKwR,aAAaQ,SAASJ,QAAU5R,KAAKwR,aAAaQ,SAASnY,MAEhEwX,EACArR,KAAKwR,aAAaQ,SAASH,aAE3Brd,EAAUsd,iBAAmB,EAC/B3xB,EAAE,uBAAuB/N,YAAckF,KAAKoL,MACzCsd,KAAKwR,aAAaQ,SAASJ,QAC1B5R,KAAKwR,aAAaQ,SAASnY,MAC3BmG,KAAKwH,KAENrnB,EAAE,uBAAuB/N,YAAc,GAC5C+N,EAAE,oBAAoBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACzCD,KAAK2D,IACJ+kB,KAAKwR,aAAaQ,SAASH,QACzB7R,KAAKwR,aAAaQ,SAASJ,QAC7B5R,KAAKwR,aAAaQ,SAASH,QAAU7R,KAAKwR,aAAaQ,SAASnY,MAEhEwX,EACArR,KAAKwR,aAAaQ,SAASH,aAE3Brd,EAAUsd,iBAAmB,EAC/B3xB,EAAE,oBAAoB/N,YAAckF,KAAKoL,KACvCpL,KAAK2D,IACH+kB,KAAKwR,aAAaQ,SAASH,QACzB7R,KAAKwR,aAAaQ,SAASJ,QAC7B5R,KAAKwR,aAAaQ,SAASH,QACzB7R,KAAKwR,aAAaQ,SAASnY,MAC3BmG,KAAKwH,KAERrnB,EAAE,oBAAoB/N,YAAc,GACzC+N,EAAE,qBAAqB/N,YAAckF,KAAKoL,MACvCsd,KAAKwR,aAAaQ,SAASH,QAAU7R,KAAKwR,aAAaQ,SAASnY,MAC/DmG,KAAKwH,KAET+J,KAEApxB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAIrC,MAAM4lB,EAAgB,GACtB9xB,EAAE,wBAAwBoM,UAAY,GACtC,IAAK,MAAMxd,KAAKwD,OAAO6C,KAAK4qB,KAAKgH,OAC/B,GAAIhH,KAAKgH,MAAMj4B,GAAI,CACjB,MAAM22B,EAAQV,GAAYhF,KAAKgH,MAAMj4B,GAAGuE,KAAM0sB,KAAKgH,MAAMj4B,GAAGuE,KAAM,CAChE,CAAEkuB,GAAI,GAAGxB,KAAKgH,MAAMj4B,GAAGuE,aAEzBoyB,EAAM1uB,MAAMqV,QAAU,GACtB,IAAI6lB,EAAa,GAGfA,OAD4C,IAAnC1a,EAAWwI,KAAKgH,MAAMj4B,GAAGuE,MACrBkkB,EAAWwI,KAAKgH,MAAMj4B,GAAGuE,MACpBkjB,EACpBkP,EAAMqC,UAAU8H,SAAS,GAAGrgC,UAAY0mB,EAAegc,EACvDxM,EAAMqC,UAAU8H,SAAS,GAAG74B,MAAM2F,MAAQ,QACR,IAA9B6X,EAAUsd,gBACZpM,EAAMqC,UAAU8H,SAAS,GAAGz9B,YAAc,GAAGkF,KAAKC,MACzCyoB,KAAKgH,MAAMj4B,GAAG8qB,KAAOmG,KAAKgH,MAAMj4B,GAAG8iC,QAA1C,QAECnM,EAAMqC,UAAU8H,SAAS,GAAGz9B,YAAc,GAC/CszB,EAAMqC,UAAU8H,SAAS,GAAG74B,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC/CyoB,KAAKgH,MAAMj4B,GAAG8qB,MACZyX,EAC8D,EAA7Dh6B,KAAKoL,KAAKsd,KAAKgH,MAAMj4B,GAAG8qB,KAAOmG,KAAKwH,KAAKhwB,WAAWxI,QACtDgxB,KAAKgH,MAAMj4B,GAAG8iC,aAElBnM,EAAMqC,UAAU8H,SAAS,GAAGz9B,YAAckF,KAAKoL,KAC7Csd,KAAKgH,MAAMj4B,GAAG8qB,KAAOmG,KAAKwH,KAE5B+J,IACAU,EAAcjS,KAAKgH,MAAMj4B,GAAGuE,MAAQoyB,EAGxC,IAAK,MAAM32B,KAAKwD,OAAO6C,KAAK68B,GAC1B9xB,EAAE,wBAAwBwK,YAAYsnB,EAAcljC,IAG/B,IAAnBwiC,IACFpxB,EAAE,cAAcnJ,MAAMmG,OAA6B,GAAjBo0B,EAAsB,EAAzB,MAE7BlZ,KAAuBkZ,IACzBlZ,GAAqBkZ,EACrB7K,OAu3CJyL,GAGAlM,KAGAoF,KArGF,WACE,GAA+B,IAA3B7W,EAAU4d,cAA8C,IAAxBpb,EAA2B,CAE7D,IAAIqb,GAAiB,EACrB,IAAK,MAAMtjC,KAAKwD,OAAO6C,KAAK4qB,KAAK8E,WAAY,CAC3C,MAAMhB,EAAK9D,KAAK8E,UAAU/1B,GAC1B,GAAI+0B,EAAGwO,MAAQ,GAAKxO,EAAGyO,SAAU,CAE/B,GADAF,GAAiB,EAEkB,IAAjCnb,EAA0BnoB,SACOI,IAAjC+nB,EAA0BnoB,GAcrB,MAbL,CACA,MAAMk8B,EAAc59B,SAAS4D,cAAc,OACrCuhC,EAAWnlC,SAAS4D,cAAc,OACxCuhC,EAASx7B,MAAMk0B,SAAW,QAC1BsH,EAASx7B,MAAM8wB,aAAe,MAC9B,MAAM5D,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMuW,UAAY,SACtB2W,EAAI1C,GAAK,oBACTgR,EAAS7nB,YAAYuZ,GACrB+G,EAAYtgB,YAAY6nB,GACxBxS,KAAK4H,QAAQrhB,KAAK9Y,KAAMglC,OAAOxH,EAAY1e,YAC3C0K,EAAkBloB,EAClBmoB,EAA0BnoB,GAAK,QAGjCmoB,EAA0BnoB,GAAK,EAG9BsjC,GACHrS,KAAK4H,QAAQ7hB,QA0EjB2sB,GAhEF,WACE,GAA+B,IAA3Ble,EAAU4d,cAAiD,OAA3BjyB,EAAE,qBAA+B,CACnE,IAAIwyB,EAAS3S,KAAK8E,UAAU7N,GAAiB0b,OACzCC,EAAS,IAKb,GAJI5S,KAAK2R,IAAI,6BAA4BiB,GAAU,MACN,IAAzC5S,KAAK8E,UAAU7N,GAAiB7nB,OAAYwjC,GAAU,GAC1DD,GAAUC,EACN5S,KAAK2R,IAAI,mBAAkBgB,GAAU,MACrC/S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAc4Q,GAAU,KACR,IAAX5Q,EAAc4Q,GAAU,IACb,IAAX5Q,IAAc4Q,GAAU,MAEnCxyB,EAAE,qBAAqB/N,YAAcomB,GAA4Bma,IAmDnEE,GAn3CEre,EAAUse,SACM,UAAhB9S,KAAKgR,SACJhR,KAAK+Q,MAAQ,IAAiB,EAAX/Q,KAAKwH,MAAa,IACrCxH,KAAK+Q,MAAQ,GAAK/Q,KAAKwH,KAAQ,GAEhCxH,KAAK+S,aAo3CP5yB,EAAE,WAAWoM,UAAYpM,EAAE,WAAWoM,UAAU5W,QAC9C,cACA6iB,GAA4BwH,KAAKsG,UAiBrC,MAAM0M,GACJC,YAAYC,GACVzlC,KAAKylC,UAAYA,EACjBzlC,KAAK0lC,MAAQ,GAGfF,UAAUG,GACJ3lC,KAAK0lC,MAAMtiC,KAAKuiC,GAAY3lC,KAAKylC,WACnCzlC,KAAK0lC,MAAMzf,QASfuf,YAAYI,GACNA,EAAa5lC,KAAKylC,YAAWG,EAAa5lC,KAAKylC,WAC/CG,EAAa5lC,KAAK0lC,MAAMnkC,SAAQqkC,EAAa5lC,KAAK0lC,MAAMnkC,QAC5D,IAAI0M,EAAM,EACV,IACE,IAAI3M,EAAItB,KAAK0lC,MAAMnkC,OAAS,EAC5BD,GAAK,GAAKA,EAAItB,KAAK0lC,MAAMnkC,OAAS,EAAIqkC,EACtCtkC,IAEA2M,GAAOjO,KAAK0lC,MAAMpkC,GAEpB,OAAY,IAAR2M,EACK,EAEFA,EAAM23B,GA+BjB,SAASC,KACP,MAAMC,EAAWj8B,KAAKkE,MAAMg4B,KAAKC,MAAQ,KAEzC,GAAKzT,KAAKoR,EAAIpR,KAAKwH,IAAO,GAAM,EAAG,CACjC,IAAIkM,EAAc1T,KAAKsG,QAAU3G,GAC7BK,KAAK6E,UAAY,IAAG6O,GAAe/V,IACvCsB,GAAyB3nB,KAAK6D,IAAI6kB,KAAK2T,cAAeD,GACtDA,GAAe,IAGf,MAAME,EAAWL,EAAW/Y,GACtBqZ,EAAcv8B,KAAK6D,IAAI,EAAG6kB,KAAKsG,QAAU7L,IAAoBmZ,EAC7DE,EACJx8B,KAAK6D,IAAI,EAAGwiB,GAAsBjD,IAAyBkZ,EACvDG,EACJz8B,KAAK6D,IAAI,EAAG0iB,GAAsB,GAAKlD,IACvCiZ,EACII,EAAgB18B,KAAK6D,IAAI,EAAGu4B,EAAcnW,IAAmBqW,EAC7DK,GAAiBjU,KAAKkU,aAAetZ,IAAmBgZ,EAC9D,IAAK,IAAI7kC,EAAI,EAAGA,EAAI6kC,EAAU7kC,IAC5BmrB,GAAYia,UAAUN,GACtB1Z,GAAUga,UAAUL,GACpB1Z,GAAiB+Z,UAAUJ,GAC3B1Z,GAAW8Z,UAAUH,GACrB1Z,GAAW6Z,UAAUF,GAIvBzZ,GAAoB+Y,EACpB9Y,GAAmBuF,KAAKsG,QACxB5L,GAAwBiD,GACxBhD,GAA+BkD,GAAsB,GACrDN,GAAkBmW,EAClB9Y,GAAkBoF,KAAKkU,aAGvB,MAAME,EAAY9c,EAAY9C,EAAU6f,YACxCxZ,GAAuBX,GAAYoa,YAAYF,GAC/CtZ,GAAwBX,GAAUma,YAAYF,GAC9CrZ,GAA+BX,GAAiBka,YAAYF,GAC5DpZ,GAAyBX,GAAWia,YAAYF,GAChDnZ,GAAkBJ,GACU,IAAxBrG,EAAUmQ,YAAiB1J,IAAmBH,IACtB,IAAxBtG,EAAUmQ,YACZ1J,IAAmBF,IAErB,MAAMwZ,EACJvU,KAAKwU,YAAY,mBAAqBxU,KAAK2R,IAAI,iBAG/CzS,GADEqV,GAAkC,IAAxB/f,EAAUmQ,UAEpB9J,GACAC,IACCyZ,EAASvZ,GAAyB,GACRC,GAE/BgD,GAAqB3D,GAAWga,YAC9B/c,EAAW/C,EAAUigB,iBAkB3B,SAASC,GAAW5Q,EAAInC,GACtB,IAAIhlB,EAAQ,GAmBZ,OAjBsCA,EAAlCmnB,EAAGzjB,IAAM,GAAKyjB,EAAGzjB,KAAOyY,IAAkBrC,EACrCqN,EAAGzjB,GAAKif,GAAoBnJ,EAC5B2N,EAAGzjB,KAAOif,GAAoBlJ,EAC9B0N,EAAGzjB,KAAOmf,GAAoBjJ,EAC9BuN,EAAGzjB,GAAKmf,GAAoBhJ,EAC5BsN,EAAGzjB,GAAKkf,GAAoBjJ,EACxBD,EAGiC,IAA1C4C,OAAOzE,EAAUmgB,sBACfhT,EAAQ8C,KAAWxL,OAAOzE,EAAUmgB,uBACtCh4B,EAAQwZ,GAGR3B,EAAUogB,uBACRjT,EAAQ3B,KAAKsG,QAAU,IAAG3pB,EAAQ4Z,GAEjC5Z,EAgBT,SAASk4B,GAAqBzgC,GAC5B,IAAK,MAAMrF,KAAKwD,OAAO6C,KAAKhB,GACtB4rB,KAAK4E,UACPxwB,EAAOrF,GAAGsR,GACR/I,KAAK6D,IAAI/G,EAAOrF,GAAG4yB,OAAS3B,KAAKsG,QAAUvB,MAAuB,GAChE/E,KAAK4E,UACPxwB,EAAOrF,GAAG4yB,MAAQvtB,EAAOrF,GAAG+2B,MACzB1xB,EAAOrF,GAAGsR,GAAKjM,EAAOrF,GAAG4yB,MAAQvtB,EAAOrF,GAAG+2B,MAElD1xB,EAAOrF,GAAG4N,MAAQ+3B,GAAWtgC,EAAOrF,GAAIqF,EAAOrF,GAAG4yB,OA6ItD,SAASmT,MArIT,WAOE,GANAxV,GAAaxG,IACb0G,GAAa,EACbC,GAAkB,QACoB,IAA3BjL,EAAUugB,eAA8BvgB,EAAUugB,aAAe,GAG1C,IAA9BvgB,EAAUwgB,iBAAyBhV,KAAK4C,QAAU,EAAG,CACvD,IAAK,MAAM7zB,KAAKwD,OAAO6C,KAAKooB,IACtBwC,KAAK4E,UACPpH,GAAczuB,GAAGsR,GACf/I,KAAK6D,IACH6kB,KAAKoB,QAAQryB,GAAGg9B,YAAc/L,KAAKsG,QAAUvB,MAC7C,GAEA/E,KAAK4E,UACP5E,KAAKoB,QAAQryB,GAAGg9B,WAAavO,GAAczuB,GAAG+2B,MAEhDtI,GAAczuB,GAAGsR,GACf2f,KAAKoB,QAAQryB,GAAGg9B,WAAavO,GAAczuB,GAAG+2B,MAClDrG,GAAgB5uB,KAAK,CAAC2sB,GAAczuB,GAAGsR,GAAI2f,KAAKoB,QAAQryB,GAAGg9B,aAI7D,GADAtM,GAAgByD,MAAK,CAACtrB,EAAGP,IAAMO,EAAE,GAAKP,EAAE,KACpCmd,EAAUogB,sBACZ,KAAOnV,GAAgB,GAAG,GAAKO,KAAKsG,SACH,IAA3B7G,GAAgBzwB,QAGpBywB,GAAgB/L,QAGpB4L,GAAaG,GAAgBjL,EAAUugB,cAAc,GACrDvV,GAAaC,GAAgBA,GAAgBzwB,OAAS,GAAG,GACzDuwB,IAAcC,GAAaF,IAAc,EAAIA,GAC7C,IAAK,MAAMvwB,KAAKwD,OAAO6C,KAAKooB,IAAgB,CAC1CA,GAAczuB,GAAG4N,MAAQ+3B,GACvBlX,GAAczuB,GACdixB,KAAKoB,QAAQryB,GAAGg9B,YAGlB,IAAK,IAAI/H,EAAI,EAAGA,EAAIxP,EAAUugB,aAAc/Q,IACtCxG,GAAczuB,GAAGsR,KAAOof,GAAgBuE,GAAG,KAC7CxG,GAAczuB,GAAG4N,MAAQ8Z,GAI/Boe,GAAqBpX,IACrBoX,GAAqBnX,SAChB,GAAIsC,KAAK4C,QAAU,EAAG,CAE3B,IAAIxuB,EACiB,IAAjB4rB,KAAKuC,QAAenuB,EAASopB,GACP,KAAjBwC,KAAKuC,QAAgBnuB,EAASqpB,GACb,MAAjBuC,KAAKuC,UAAiBnuB,EAASspB,IACxC,IAAK,MAAM3uB,KAAKwD,OAAO6C,KAAKhB,GACtB4rB,KAAK4E,UACPxwB,EAAOrF,GAAGsR,GACR/I,KAAK6D,IACH6kB,KAAKoB,QAAQryB,GAAGs3B,WAAarG,KAAKsG,QAAUvB,MAC5C,GAEA/E,KAAK4E,UACP5E,KAAKoB,QAAQryB,GAAGs3B,UAAYjyB,EAAOrF,GAAG+2B,MACnC1xB,EAAOrF,GAAGsR,GAAK2f,KAAKoB,QAAQryB,GAAGs3B,UAAYjyB,EAAOrF,GAAG+2B,MAC5DrG,GAAgB5uB,KAAK,CAACuD,EAAOrF,GAAGsR,GAAI2f,KAAKoB,QAAQryB,GAAGs3B,YAItD,GADA5G,GAAgByD,MAAK,CAACtrB,EAAGP,IAAMO,EAAE,GAAKP,EAAE,KACpCmd,EAAUogB,sBACZ,KAAOnV,GAAgB,GAAG,GAAKO,KAAKsG,SACH,IAA3B7G,GAAgBzwB,QAGpBywB,GAAgB/L,QAGpB4L,GAAaG,GAAgBjL,EAAUugB,cAAc,GACrDvV,GAAaC,GAAgBA,GAAgBzwB,OAAS,GAAG,GACzDuwB,IAAcC,GAAaF,IAAc,EAAIA,GAE7C,IAAK,MAAMvwB,KAAKwD,OAAO6C,KAAKooB,IAAgB,CAC1CppB,EAAOrF,GAAG4N,MAAQ+3B,GAAWtgC,EAAOrF,GAAIixB,KAAKoB,QAAQryB,GAAGs3B,WAExD,IAAK,IAAIrC,EAAI,EAAGA,EAAIxP,EAAUugB,aAAc/Q,IACtC5vB,EAAOrF,GAAGsR,KAAOof,GAAgBuE,GAAG,KAAI5vB,EAAOrF,GAAG4N,MAAQ8Z,KAiDpEwe,GAlCF,WACE,IAAK,MAAMlmC,KAAKwD,OAAO6C,KAAK4oB,IACtBgC,KAAK4E,UACP5G,GAAcjvB,GAAGsR,GACf/I,KAAK6D,IACH6kB,KAAKkK,SAASn7B,GAAGg9B,YAAc/L,KAAKsG,QAAUvB,MAC9C,GAEA/E,KAAK4E,UACP5E,KAAKkK,SAASn7B,GAAGg9B,WAAa/N,GAAcjvB,GAAG+2B,MAEjD9H,GAAcjvB,GAAGsR,GACf2f,KAAKkK,SAASn7B,GAAGg9B,WAAa/N,GAAcjvB,GAAG+2B,MAC/C7M,OAAO5I,MAAM2N,GAAcjvB,GAAGsR,MAAK2d,GAAcjvB,GAAGsR,GAAKyY,KAE7DkF,GAAcjvB,GAAG4N,MAAQ+3B,GACvB1W,GAAcjvB,GACdixB,KAAKkK,SAASn7B,GAAGg9B,YAkBrBmJ,GA0CF,SAASC,GAAO/U,GACVN,GAAgBM,IACgB,IAA9BN,GAAgBM,GAAMyK,MACxB/K,GAAgBM,GAAMyK,IAAM,EACS,WAAjC7K,KAAKuI,aAAanI,GAAMS,MAAmBpF,MAuBrD,SAAS2Z,KACPpZ,GAAe,EACf,IAAI+K,EAAO,EAEX,MAAMsO,EAAO,GACb,IAAK,MAAMtmC,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/B,GAAIpB,KAAKoB,QAAQryB,GAAG+yB,gBAAkB9B,KAAKoB,QAAQryB,GAAGoyB,SAASkU,KAAM,CACnE,MAAMC,EAAStV,KAAKoB,QAAQryB,GAAGoyB,SAASkU,KACxC,IAAK,MAAME,KAAMD,EACXD,EAAKE,GAAKF,EAAKE,IAAOD,EAAOC,GAC5BF,EAAKE,GAAMD,EAAOC,GAI7BxZ,GAAUsZ,EAEiB,IAAvBrV,KAAKY,gBACPmG,GAEE,IADA1qB,WAAWsf,IAEXD,GA9EN,WACE,IAAI8Z,EAAe,EAWnB,GAVI9U,GAAO,0BAAyB8U,GAAgB,KAChD9U,GAAO,2BAA0B8U,GAAgB,IACjD9U,GAAO,qBAAoB8U,GAAgB,KAC3C9U,GAAO,4BAA2B8U,GAAgB,KAClD9U,GAAO,kBAAiB8U,GAAgB,KAE5CA,GAAgB,EAAgC,IAA5BrV,GAAY,cAC5BO,GAAO,iBAAgB8U,GAAgB,MACvC9U,GAAO,kBAAiB8U,GAAgB,MACxC9U,GAAO,kBAAiB8U,GAAgB,MACxCxV,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,YACV,IAAXe,EAAcyT,GAAgB,GACd,IAAXzT,EAAcyT,GAAgB,GACnB,IAAXzT,IAAcyT,GAAgB,IAEzC,OAAOA,EA6DHC,IAEJ1O,GAAQvG,GAAO,OAEXE,GAAO,YAAqC,IAAvBV,KAAKY,gBAC5BmG,GAAQ,EAAI,IAAO/G,KAAK0V,SAE1B,IAAK,MAAM3mC,KAAKwD,OAAO6C,KAAK4qB,KAAK2V,gBAAiB,CAChD,MAAM7R,EAAK9D,KAAK2V,eAAe5mC,GAC3B2xB,GAAOoD,EAAGxwB,QAIY,mBAAbwwB,EAAGqG,MACZpD,GAAQ,EAAuD,IAAnDlH,GAAYiE,EAAGxwB,MAAM62B,MAAMtK,GAAYiE,EAAGxwB,OACjDyzB,GAAQ,EAAe,IAAXjD,EAAGqG,OAItBzJ,GAAO,iCAAgCqG,GAAQ,MAC/CrG,GAAO,0BAAyBqG,GAAQ,MACxCrG,GAAO,sBAAqBqG,GAAQ,MACpCrG,GAAO,iBAAgBqG,GAAQ,MAC/BrG,GAAO,kBAAiBqG,GAAQ,MAEhCrG,GAAO,yBAAwBqG,GAAQ,MACvCrG,GAAO,wBAAuBqG,GAAQ,MACtCrG,GAAO,oBAAmBqG,GAAQ,MAClCrG,GAAO,sBAAqBqG,GAAQ,MACpCrG,GAAO,sBAAqBqG,GAAQ,KAEpCrG,GAAO,kBAAiBqG,GAAQ,MAChCrG,GAAO,kBAAiBqG,GAAQ,MAEhCrG,GAAO,kBAAiBqG,GAAQ,MAGpC,IAAI6O,EAAY,EAChB,GAAI5U,GAAW,CACb,IAAIe,EAASf,GAAU,cACR,IAAXe,EAAcgF,GAAQ,KACN,IAAXhF,EAAcgF,GAAQ,IACX,IAAXhF,IAAcgF,GAAQ,MAE/BhF,EAASf,GAAU,QACJ,IAAXe,EACFgF,GACE,EAAI,IAAOzvB,KAAKu+B,IAAK3V,GAAc,IAAO,MAAiB5oB,KAAKiU,GAAK,GACrD,IAAXwW,EACPgF,GACE,EACA,IAAOzvB,KAAKu+B,IAAK3V,GAAc,IAAO,MAAkB5oB,KAAKiU,GAAK,GAClD,IAAXwW,IACPgF,GACE,EACA,IAAOzvB,KAAKu+B,IAAK3V,GAAc,IAAO,MAAkB5oB,KAAKiU,GAAK,IAEtEwW,EAASf,GAAU,aACJ,IAAXe,EAAc6T,GAAa,IACX,IAAX7T,EAAc6T,GAAa,IAChB,IAAX7T,IAAc6T,GAAa,KAEpC7T,EAASf,GAAU,YACJ,IAAXe,EAAc6T,GAAa,IACX,IAAX7T,EAAc6T,GAAa,KAChB,IAAX7T,IAAc6T,GAAa,MAEpC7T,EAASf,GAAU,SACJ,IAAXe,EAAc6T,GAAa,IACX,IAAX7T,EAAc6T,GAAa,IAChB,IAAX7T,IAAc6T,GAAa,KAGlClV,GAAO,oBAAmBqG,GAAQ,EAA4B,KAAvB/G,KAAK8V,WAAa,IAE7D,MAAMC,EAAeta,GAAuB,GAC5C,IAAIua,EAAW,EAIf,GAHItV,GAAO,8BAA6BsV,GAAY,MAEpDA,GAAY,EAAoC,IAAhC7V,GAAY,kBACxBa,GAAW,CACb,MAAMe,EAASf,GAAU,UACV,IAAXe,EAAciU,GAAY,IACV,IAAXjU,EAAciU,GAAY,KACf,IAAXjU,IAAciU,GAAY,MAErCA,GAAYxV,GAAO,QAEnB,IAAIyV,EAAU,EAEVvV,GAAO,oBAAmBuV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DtV,GAAO,oBAAmBuV,GAAW,EAAmB,KAAfF,EAAuBC,GAChEtV,GAAO,sBAAqBuV,GAAW,EAAmB,IAAfF,EAAsBC,GACjEtV,GAAO,sBACTuV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCtV,GAAO,qBAAoBuV,GAAW,EAAmB,GAAfF,EAAqBC,GAC/DtV,GAAO,wBACTuV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCtV,GAAO,wBACTuV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCtV,GAAO,oBAAmBuV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DtV,GAAO,wBACTuV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCtV,GAAO,+CACTuV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCtV,GAAO,uBACTuV,GAAW,EAAmB,IAAfF,EAAsBC,GACnCtV,GAAO,qBAAoBuV,GAAW,EAAmB,KAAfF,EAAuBC,GACjEtV,GAAO,uBACTuV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCtV,GAAO,mBAAkBuV,GAAW,EAAmB,GAAfF,EAAqBC,GAC7DtV,GAAO,kBAAiBuV,GAAW,EAAmB,IAAfF,EAAsBC,GAEjE,IAAK,MAAMjnC,KAAKwD,OAAO6C,KAAKwqB,IAAa,CACvC,MAAMkE,EAAKlE,GAAW7wB,GACtB,IAAImnC,EAAYpS,EAAGyF,IAAIzF,GACI,IAAvB9D,KAAKY,gBACPsV,IAAc,EAAe,IAAXpS,EAAGsG,OAAgBwL,GAEzB,YAAZ9R,EAAGxwB,MACHotB,GAAO,sDAEPwV,GAAa,EAAI,IAAOH,EAAeC,GACzCha,IAAgB8H,EAAG1B,OAAS8T,EAG1BxV,GAAO,WAAU1E,IAAgB,GAErC+K,GAAQkP,EAER,IAAIE,EAAU,EAad,GAZIzV,GAAO,iBAAgByV,GAAW,MAClCzV,GAAO,cAAayV,GAAW,MAC/BzV,GAAO,gBAAeyV,GAAW,MACjCzV,GAAO,eAAcyV,GAAW,MAChCzV,GAAO,eAAcyV,GAAW,MAChCzV,GAAO,iBAAgByV,GAAW,MAClCzV,GAAO,mBAAkByV,GAAW,MACpCzV,GAAO,gBAAeyV,GAAW,MACjCzV,GAAO,eAAcyV,GAAW,MAChCzV,GAAO,eAAcyV,GAAW,MAChCzV,GAAO,gBAAeyV,GAAW,MACjCzV,GAAO,eAAcyV,GAAW,MAChCzV,GAAO,eAAgB,CAEzB,IAAI0V,EAC2D,GAA5D9+B,KAAKkE,OAAOukB,GAAiBC,KAAKC,WAAa,IAAO,IACvD,GACA,GACA,GACFmW,EAAM9+B,KAAK2D,IAAIm7B,EAAK,KAEpB/Y,GAAe,EAAiC,IAA5B,GAAK,EAAI+Y,EAAM,MAAQ,GAC3CD,GAAW9Y,GAEb0J,GAAQoP,EAEJzV,GAAO,kBAAiBqG,GAAQ,EAAgC,IAA5BzvB,KAAK2D,IAAI,IAAK+kB,KAAKqW,QAG3DtP,GAAQ,EAAI5G,GAAY,oBAExB,MAAMmW,EAAeta,GAAe+K,EACpC,IAAK,MAAMh4B,KAAKwD,OAAO6C,KAAK4qB,KAAKuW,iBAC3BD,GAAgBtW,KAAKuW,gBAAgBxnC,GAAGynC,WAC1CrB,GAAOnV,KAAKuW,gBAAgBxnC,GAAGuE,MAGnC2oB,GAAkBqa,EAElB,MAAMtkC,EAAIguB,KAAKwR,aAAaC,OAAOz/B,EAC7BykC,EAAWtW,GAAY,oBAC7B,IAAK,IAAIpxB,EAAI,EAAGA,EAAIiD,EAAGjD,IACrBg4B,GAAQ,EAAe,KAAX0P,EAGd,MAAMnjC,EAAO0sB,KAAK0W,WAAWrnC,cAM7B,GALa,WAATiE,EAAmByzB,GAAQ,IACb,WAATzzB,IAAmByzB,GAAQ,KAEhCrG,GAAO,oBAAmBqG,GAAQ,KAElCrG,GAAO,uBAAwB,CACjC,IAAIiW,EAAmB,IACvB,GAAIjW,GAAO,iBAAkB,CAC3B,MAAMkW,EAAW5W,KAAK6W,qBACtB,IAAK,MAAM9nC,KAAKwD,OAAO6C,KAAKwhC,GACtBlW,GAAOkW,EAAS7nC,MAAK4nC,GAAoB,IAGjD5P,GAAQ4P,EAEV,GAAIjW,GAAO,yBAA0B,CACnC,IAAIoW,EAAW,GACXpW,GAAO,yBAAwBoW,GAAY,IAC/C/P,GAAQ,EAAI+P,EAGVpW,GAAO,uBAAsBqG,GAAQ,KACrCrG,GAAO,wBAAuBqG,GAAQ,GAE1C/K,GAAegE,KAAK+W,kBAAkB,MAAO/a,IAE7C+K,GAAQD,KAER9K,IAAgB+K,EASlB,MAAMiQ,GAAW,CACf,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAIIC,GAAe,CACnB,gBACA,gBACA,cACA,gBACA,kBACA,kBACA,kBAIIC,GAAgB,CACpB,0BACA,qBACA,mBACA,iBACA,sBACA,gBACA,oBAIIC,GAAa,CACjB,sBACA,wBACA,sBACA,yBACA,wBACA,yBACA,wBAIIC,GAAa,CACjB,qBACA,oBACA,oBACA,yBACA,cACA,WACA,eAkCF,SAASC,GAAajX,GACpB,OAAON,GAAgBM,GAAQN,GAAgBM,GAAMyK,IAAM,EAe7D,SAASyM,KACP,IAAIC,EAAW,EACf,IAAK,MAAMxoC,KAAKwD,OAAO6C,KAAK4qB,KAAK0J,kBAC3BhJ,GAAOV,KAAK0J,iBAAiB36B,KAAKwoC,KAEnCF,GAAa,UAAYE,GAAY,GAAGpC,GAAO,UAC/CkC,GAAa,YAAcE,GAAY,IAAIpC,GAAO,WAEvD,IAAIqC,EAAiB,EACjBC,EAAgB,EAChBC,EAAS,EACTC,EAAY,IAChB,IAAK,MAAM5oC,KAAKwD,OAAO6C,KAAKwqB,IAC1B4X,GAAkB5X,GAAW7wB,GAAGqzB,OAChCuV,EAAYrgC,KAAK2D,IAAI2kB,GAAW7wB,GAAGqzB,OAAQuV,GACtCN,GAAa,kBAEdzX,GAAW7wB,GAAGqzB,OACd9qB,KAAK2D,IAAI,IAAK,IAAM+kB,KAAKwQ,YAAYxhC,OAASgxB,KAAKoB,QAAQryB,GAAGyyB,GAAK,MAEnEiW,EAAgB,GAEfJ,GAAa,YAEdzX,GAAW7wB,GAAGqzB,OACmC,IAAhDpC,KAAKwQ,YAAYxhC,OAASgxB,KAAKoB,QAAQryB,GAAGyyB,MAE3CkW,EAAS,GAGXC,GAAa,GAAGxC,GAAO,uBACL,IAAlBsC,GAAqBtC,GAAO,iBACjB,IAAXuC,GAAcvC,GAAO,WACrBwC,GAAa,KAAKxC,GAAO,cACzBwC,GAAa,KAAKxC,GAAO,yBACzBwC,GAAa,KAAKxC,GAAO,gBACzBwC,GAAa,KAAKxC,GAAO,2BACzBwC,GAAa,KAAKxC,GAAO,iBACzBwC,GAAa,KAAKxC,GAAO,4BACzBwC,GAAa,KAAKxC,GAAO,oBACzBwC,GAAa,KAAKxC,GAAO,+BACzBwC,GAAa,KAAKxC,GAAO,kBACzBwC,GAAa,KAAKxC,GAAO,6BACzBwC,GAAa,KAAKxC,GAAO,iBAEzBqC,GAAkB,KAAKrC,GAAO,WAC9BqC,GAAkB,KAAKrC,GAAO,aAC9BqC,GAAkB,KAAMrC,GAAO,YAC/BqC,GAAkB,KAAMrC,GAAO,sBAC/BqC,GAAkB,KAAMrC,GAAO,gBAC/BqC,GAAkB,KAAMrC,GAAO,gBAE/B5Z,IAAoB,IAAI4Z,GAAO,YAC/B5Z,IAAoB,IAAI4Z,GAAO,aAC/B5Z,IAAoB,KAAK4Z,GAAO,YAChC5Z,IAAoB,KAAK4Z,GAAO,oBAChC5Z,IAAoB,KAAK4Z,GAAO,oBAChC5Z,IAAoB,KAAK4Z,GAAO,oCAEhCqC,GAAkB,KAAQjc,IAAoB,KAAK4Z,GAAO,YAC1DqC,GAAkB,KAAQjc,IAAoB,KAChD4Z,GAAO,qBAELvV,GAAWgY,OAAOxV,OAASxC,GAAWsJ,QAAQ9G,QAAU,KAC1D+S,GAAO,qBAET,IAAI0C,GAAkB,EACtB,IAAK,MAAM9oC,KAAKwD,OAAO6C,KAAK6hC,IACrBvW,GAAOuW,GAAaloC,MAAK8oC,GAAkB,GAE9CA,GAAiB1C,GAAO,kBAE5B,IAAI2C,GAAmB,EACvB,IAAK,MAAM/oC,KAAKwD,OAAO6C,KAAK8hC,IACrBxW,GAAOwW,GAAcnoC,MAAK+oC,GAAmB,GAIpD,GAFIA,GAAkB3C,GAAO,eAEzBzU,GAAO,mBAAoB,CAC7B,MAAMqX,EAAO/X,KAAK2I,MAAM9G,QAAQ+U,SAChC,IAAIoB,EAAW,EACf,IAAK,MAAMjpC,KAAKwD,OAAO6C,KAAK2iC,GACtBrX,GAAOqX,EAAKhpC,GAAGuE,OAAO0kC,IAExBA,GAAYD,EAAK/oC,QAAQmmC,GAAO,cAkBxC,SAAS8C,GAAwBvW,EAAUU,GACzCkI,KACA1K,GAAW8B,GAAUU,QAAUA,EAC/B,MAAM0B,EAAKlE,GAAW8B,GAEtB,GAAiB,WAAbA,EACEoC,EAAG1B,QAAU,GAAG+S,GAAO,SACvBrR,EAAG1B,QAAU,GAAG+S,GAAO,gBACvBrR,EAAG1B,QAAU,IAAI+S,GAAO,eACxBrR,EAAG1B,QAAU,KAAK+S,GAAO,mBACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,eACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,uBACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,SACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,kCACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,iCACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,wBACzBrR,EAAG1B,QAAU,KAAK+S,GAAO,6BAE7B,IAAK,MAAMnR,KAAKhE,KAAKoB,QAAQ0C,EAAGxwB,MAAM4kC,cAElCpU,EAAG1B,QACHpC,KAAK2I,MAAM3I,KAAKoB,QAAQ0C,EAAGxwB,MAAM4kC,cAAclU,GAAGlD,MAAMqX,cAExDhD,GAAOnV,KAAKoB,QAAQ0C,EAAGxwB,MAAM4kC,cAAclU,GAAG1wB,MAKpD,MAAM8kC,EAAwB3c,GAU9B,OARA2Z,KAEAkC,KAEIc,IAA0B3c,IAC5B2Z,KAGKpZ,GAAegE,KAAK4E,UAkH7B,SAASyT,GAAuB/T,GAC9B,GACkC,WAAhCtE,KAAKkK,SAAS5F,GAASzD,MACY,IAAlCb,KAAKkK,SAAS5F,GAASvD,QACtBf,KAAKkK,SAAS5F,GAASgU,UACS,aAAhCtY,KAAKkK,SAAS5F,GAASzD,KACzB,CACAyJ,KACkC,yBAA9BzK,GAAYyE,GAAShxB,KACvBusB,GAAY,yBAAyBkB,OAAS,EACP,uBAA9BlB,GAAYyE,GAAShxB,KAC9BusB,GAAY,uBAAuBkB,OAAS,EAE5ClB,GAAYyE,GAASvD,QAAUlB,GAAYyE,GAASvD,OAAS,GAAK,EAEzDlB,GAAYyE,GACnBtE,KAAKuY,qBAAqBvY,KAAKkK,SAAS5F,GAASzD,OACnDtF,KAEc,iBAAZ+I,GACF9I,KACIA,GAAa,GAAG2Z,GAAO,aACvB3Z,IAAc,GAAG2Z,GAAO,kBACP,mBAAZ7Q,EACT6Q,GAAO,cACc,yBAAZ7Q,EACT6Q,GAAO,kBACc,iBAAZ7Q,GACT6Q,GAAO,aAGT,MAAMiD,EAAwB3c,GAE9B2Z,KAEAkC,KAEIc,IAA0B3c,IAC5B2Z,KAGF,MAAMoD,EAvIV,WACE,IAAItiC,EAAM,EACNwqB,GAAO,sBAAqBxqB,GAAO,IACnCwqB,GAAO,qBAAoBxqB,GAAO,GAClCwqB,GAAO,qBAAoBxqB,GAAO,IAClCwqB,GAAO,sBAAqBxqB,GAAO,IACnCwqB,GAAO,yBAAwBxqB,GAAO,IACtCwqB,GAAO,yBAAwBxqB,GAAO,IACtCwqB,GAAO,wBAAuBxqB,GAAO,IACrCwqB,GAAO,wBAAuBxqB,GAAO,IACrCwqB,GAAO,uBAAsBxqB,GAAO,IACpCwqB,GAAO,uBAAsBxqB,GAAO,IACxC,IAAIuiB,EAAM,EACV,IAAK,MAAM1pB,KAAKwD,OAAO6C,KAAKwqB,IAC1BnH,GAAOmH,GAAW7wB,GAAGqzB,OAEvB3J,GAAOmH,GAAWgY,OAAOxV,OACzBlsB,GAAOuiB,EAGHiI,GAAO,mBAAkBxqB,GAAsB,IAAf8lB,IAChC0E,GAAO,gBAAexqB,GAAsB,IAAf8lB,IAC7B0E,GAAO,oBAAmBxqB,GAAsB,IAAf8lB,IACjC0E,GAAO,sBAAqBxqB,GAAsB,IAAf8lB,IACnC0E,GAAO,uBAAsBxqB,GAAsB,IAAf8lB,IACpC0E,GAAO,mBAAkBxqB,GAAsB,IAAf8lB,IAChC0E,GAAO,qBAAoBxqB,GAAsB,IAAf8lB,IAClC0E,GAAO,sBAAqBxqB,GAAsB,IAAf8lB,IACnC0E,GAAO,sBAAqBxqB,GAAsB,IAAf8lB,IACnC0E,GAAO,qBAAoBxqB,GAAsB,IAAf8lB,IAClC0E,GAAO,yBAAwBxqB,GAAsB,IAAf8lB,IACtC0E,GAAO,sBAAqBxqB,GAAsB,IAAf8lB,IACnC0E,GAAO,sBAAqBxqB,GAAsB,IAAf8lB,IAEnC0E,GAAO,kBAAiBxqB,GAAsB,IAAf8lB,IAEnC,IAAI+K,EAAO,EAiBX,GAhBIrG,GAAO,qBAAoBqG,GAAQ,KACnCrG,GAAO,gBAAeqG,GAAQ,KAC9BrG,GAAO,iBAAgBqG,GAAQ,KAC/BrG,GAAO,iBAAgBqG,GAAQ,MAE/BrG,GAAO,iBACTqG,GACE,EACA,IACEzvB,KAAK2D,IACH+kB,KAAKoB,QAAQwW,OAAOxN,MACpB1J,GAAO,mBAAqB,GAAK,KAIzCqG,GAAQvG,GAAO,SACXZ,GAAWsB,OAAOY,gBAChBd,GAAW,CACb,MAAMe,EAASf,GAAU,SACV,IAAXe,EAAcgF,GAAQ,KACN,IAAXhF,EAAcgF,GAAQ,IACX,IAAXhF,IAAcgF,GAAQ,MAInC,IAAK,MAAMh4B,KAAKwD,OAAO6C,KAAK4qB,KAAKgH,YACQ,IAA5BhH,KAAKgH,MAAMj4B,GAAG0pC,YACvB1R,GAAQ/G,KAAKgH,MAAMj4B,GAAG0pC,WAI1B1R,GAAQ,EAAmC,IAA/B5G,GAAY,iBAGxB,IAAIuY,EACF3R,EACA/G,KAAKyJ,WACH,EACA/I,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTxqB,GAOJ,OAJAwiC,EAAM1Y,KAAK+W,kBAAkB,kBAAmB2B,GAE5C1Y,KAAK4B,QAAQ,mBAAkB8W,EAAM1Y,KAAKgH,MAAM,iBAAiBmD,OAE9DuO,EAkDgBC,GAAa3Y,KAAK4Y,iBACvC,OAAIJ,EACK,CAACxc,GAAegE,KAAK4E,UAAW4T,GAElC,CAACxc,GAAegE,KAAK4E,WAE9B,MAAO,GAkBT,SAASiU,GAAoBzW,EAAQhuB,GACnC,MAAM0kC,EAAS,GACf,IAAK,MAAM/pC,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/B0X,EAAO/pC,GAAK,GACZ+pC,EAAO/pC,GAAG+2B,MAAQmS,GAAwBlpC,EAAGqzB,GAC9B,IAAXA,IACFhH,GAA2B,GAG/B,OAAO0d,EAoBT,SAASC,KACP,IAAK,MAAMhqC,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/B5D,GAAczuB,GAAG4yB,MAAQmJ,GACvB9K,KAAKoB,QAAQryB,GACbixB,KAAKoB,QAAQryB,GAAGmzB,UAChBlC,KAAKoB,QAAQryB,GAAGqzB,OAChBpC,KAAKoB,QAAQryB,GAAGozB,KAChB,GAEF1E,GAAe1uB,GAAG4yB,MAAQmJ,GACxB9K,KAAKoB,QAAQryB,GACbixB,KAAKoB,QAAQryB,GAAGmzB,UAChBlC,KAAKoB,QAAQryB,GAAGqzB,OAChBpC,KAAKoB,QAAQryB,GAAGozB,KAChB,IAEFzE,GAAgB3uB,GAAG4yB,MAAQmJ,GACzB9K,KAAKoB,QAAQryB,GACbixB,KAAKoB,QAAQryB,GAAGmzB,UAChBlC,KAAKoB,QAAQryB,GAAGqzB,OAChBpC,KAAKoB,QAAQryB,GAAGozB,KAChB,KASN,SAAS6W,KAEPxb,GAAgBqb,GAAoB,GACpCpb,GAAiBob,GAAoB,IACrCnb,GAAkBmb,GAAoB,KA/CxC,WACE7a,GAAgB,GAChB,IAAK,MAAMjvB,KAAKwD,OAAO6C,KAAK4qB,KAAKkK,UAAW,CAC1C,MAAM+O,EAAcZ,GAAuBtpC,GAC3CivB,GAAcjvB,GAAK,GACfkqC,EAAY,KAAIjb,GAAcjvB,GAAG+2B,MAAQmT,EAAY,IACrDA,EAAY,KAAIjb,GAAcjvB,GAAGi9B,WAAaiN,EAAY,KA4ChEC,GAgBF,SAASC,GAAqBC,EAAOC,EAAWtS,GAC9C,IAAIuS,EAAiB,EACjBhX,EAAO,EACPiX,EAAW,EACXC,EAAe,EACfC,EACF,EAAIniC,KAAK6D,IAAI,EAAG7D,KAAKoL,KAAKpL,KAAKqiB,IAAIqG,KAAKsG,SAAWhvB,KAAKoiC,MAAQ,IAClE,KAAOH,EAAWF,GAChB/W,EAAOhrB,KAAK6D,IACVi+B,EACA9hC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,IAAMi+B,EAAQL,EAAQrS,GAC3CsS,EAAYtS,IAGhBwS,EAAWjiC,KAAK6D,IACdi+B,EACA9hC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,KAAOi+B,EAAQ,GAAKL,EAAQrS,GACjDsS,EAAYtS,IAGhByS,EAAeliC,KAAKkE,MAAO,EAAI,EAAK,KAAOi+B,EAAQ,GAAKL,EAAQrS,GAChEuS,GAAkBhX,EAClBmX,IAEF,MAAO,CAACH,EAAgBhX,EAAMkX,GAmBhC,SAASG,KACP,IAAIN,EAEF,GADArc,GAEA,GACA,EACAC,GAEF,MAAM2c,EAAc9S,KAChB8S,EAAc,EAAGP,GAAaO,EAC7BP,EAAY,EAEjB9a,GAAsB4a,GACpB,EACAE,EACAnc,IAEFmB,GAA+C,EAAzBE,GAAoB,GAAUrB,GACpDoB,GACEC,GAAoB,GAAK,GAAK,GAAK,EAAItB,GAEzCyB,GAA2Bya,GACzB,EACAE,EACAlc,IAEFqB,GACiC,EAA9BE,GAAyB,GAAUvB,GACtCsB,GACEC,GAAyB,GACzB,GACA,GACA,EACAzB,GAEF4B,GAA4Bsa,GAC1B,EACY,EAAZE,EACAnc,IAEFyB,GACkC,EAA/BE,GAA0B,GAAU3B,GACvC0B,GACEC,GAA0B,GAC1B,GACA,GACA,EACA5B,GAEF+B,GAAiCma,GAC/B,EACY,EAAZE,EACAlc,IAEF2B,GACuC,EAApCE,GAA+B,GAAU7B,GAC5C4B,GACEC,GAA+B,GAC/B,GACA,GACA,EACA/B,GAYJ,SAAS4c,KACP,MAAMtG,EAAWj8B,KAAKkE,MAAMg4B,KAAKC,MAAQ,KAEzC,GAAKzT,KAAKoR,EAAIpR,KAAKwH,IAAO,GAAM,EAAG,CACjC,MAAMsS,EAAa9Z,KAAK+Z,gBAAgB/Z,KAAKga,cAIvCC,EAHiB3iC,KAAKkE,MAC1BwkB,KAAK+Z,gBAAgB/Z,KAAKga,aAAeha,KAAK2T,gBAERr8B,KAAKkE,MAAMs+B,GAG7ClG,EAAWL,EAAWrY,GACtBgf,EACJ5iC,KAAK6D,IAAI,EAAG8+B,EAAiB9e,IAA0ByY,EACzD,IAAK,IAAI7kC,EAAI,EAAGA,EAAI6kC,EAAU7kC,IAC5BwrB,GAAkB4Z,UAAU+F,GAI9Bhf,GAAyBqY,EACzBpY,GAAyB8e,EAGzB7c,GAAmB7C,GAAkB+Z,YAAY,IA8FrD,SAAS6F,GAAarW,GACpB,IAAIsW,EAAU,wBACE,aAAZtW,EAAGjD,OAAqBuZ,GAAW,aAEvC,IAAIC,EAAU,EACTra,KAAK6Q,MAAMyJ,SAAQD,EAAU,GAC9BA,IAASD,GAAW,YAExB,IAAIG,EAAOzW,EAAGyW,KACVzW,EAAG0W,eAAcD,EAAOzW,EAAG0W,gBAC/B,MAAM5S,EAAU,0DAA0D9D,EAAGtC,kBAC7E,MAAO,eAAe4Y,SACrBpa,KAAKya,kBAAkB7S,EAAS,OAAO,kBAEtC2S,EAAK,GAAK,yBAAyBA,EAAK,OAAS,yBACjB,IAAVA,EAAK,QAAwB,IAAVA,EAAK,oBAgBlD,SAASG,KACPxc,GAAuB,GACvBE,GAA8B,GAC9BD,GAA+B,GAC/B,MAAM4Z,EAAO,GAEb,IAAK,MAAMhpC,KAAKwD,OAAO6C,KAAK4qB,KAAKkK,UAC/B6N,EAAKlnC,KAAKmvB,KAAKkK,SAASn7B,IAO1BgpC,EAAK7U,MALW,SAAUtrB,EAAGP,GAC3B,OAAIO,EAAE4sB,MAAQntB,EAAEmtB,MAAc,EAC1B5sB,EAAE4sB,MAAQntB,EAAEmtB,OAAe,EACxB,KAIT,IAAK,MAAMz1B,KAAKwD,OAAO6C,KAAK2iC,GAAO,CACjC,MAAMjU,EAAKiU,EAAKhpC,GAEhB,GAAkB,IAAd+0B,EAAG/C,OAAc,CACnB,IAAI5wB,EAAM,GAEVA,GAAOgqC,GAAarW,GACJ,aAAZA,EAAGjD,KAAqB1C,IAAgChuB,EACvC,WAAZ2zB,EAAGjD,KAAmBzC,IAA+BjuB,EAEhD,WAAZ2zB,EAAGjD,MACS,WAAZiD,EAAGjD,MACS,UAAZiD,EAAGjD,OAEH3C,IAAwB/tB,KAchC,SAASwqC,KACP,GAAoB,cAAhB3a,KAAK+R,OAAwB,CAC/B,IAAIxgC,EAAuB,GAAjByuB,KAAK4E,UACX5E,KAAK4B,QAAQ,kBAAiBrwB,GAAO,IACrCyuB,KAAK4B,QAAQ,YAAWrwB,GAAO,KACnC+rB,GAAehmB,KAAK6D,IAAI,GAAI5J,GACxByuB,KAAK2R,IAAI,gCAA+BrU,IAAgB,IAehE,SAASsd,KACPte,GAA2C,IAA7BU,GAAoC,IAClDV,IAAcW,GACd,MAAM2c,EAAc9S,KAChB8S,EAAc,EAAGtd,IAAcsd,EAC9Btd,GAAa,EAClBC,GAAmBW,IAAuC,IAAbZ,IAAqB,GAClEE,GAAwBW,IAAsC,IAAbb,IAAqB,GACtEG,GAAgC,EAAbH,GACnBI,GACEQ,IAA6C,IAAnBT,IAA2B,GACvDE,GACEQ,IAA4C,IAAnBV,IAA2B,GACtDG,GAA4B,EAAbN,GACfO,GAAoC,IAAfD,GAErBE,GAAe,EACf,IAAI3hB,EAAM,EACNnJ,EAAI,EACR,IAAK,MAAMjD,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC3BpB,KAAKoB,QAAQryB,GAAGqzB,OAASjnB,IAAKA,EAAM6kB,KAAKoB,QAAQryB,GAAGqzB,QACpDpC,KAAKoB,QAAQryB,GAAGqzB,OAAS,GAAGpwB,IAElC,IAAK,MAAMjD,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,UAE5BpB,KAAKoB,QAAQryB,GAAGqzB,OAASjnB,GAAa,IAANnJ,IACjCguB,KAAKoB,QAAQryB,GAAGqzB,OAAS,KACD,EAAxBpC,KAAKoB,QAAQryB,GAAG4yB,MAAY7E,KAE5BA,GAAuC,EAAxBkD,KAAKoB,QAAQryB,GAAG4yB,MAC/B5E,GAAuBhuB,GAQ7B,SAAS8rC,KACP,IAAIC,EAAa,EACbC,EAAY,EACZhU,EAAO,EAGPrG,GAAO,4BAA2BqG,GAAQ,MAC1CrG,GAAO,iBAAgBqG,GAAQ,MAEnC+T,GAAc,EAA+C,GAA3C9a,KAAKyW,SAAS,2BAChCqE,GAAc9a,KAAKgb,IAAI,oBACvBD,GAAa,EAAuC,GAAnC/a,KAAKyW,SAAS,mBAC/BsE,GAAa/a,KAAKgb,IAAI,mBAGtB9d,GAAyB6J,EAAO+T,EAChC3d,GAAwB4J,EAAOgU,EAM/B9d,GAAoC,EACD,IAA/B+C,KAAKwR,aAAaC,OAAOz/B,IAC3BirB,IACE,EAAwC,KAApC+C,KAAKyW,SAAS,qBAkBxB,SAASwE,KACPtd,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAC5B,IAAK,IAAI9uB,EAAI,EAAGA,EAAIixB,KAAK8E,UAAU91B,OAAQD,IAAK,CAC9C,IAAI4jC,EAAS3S,KAAK8E,UAAU/1B,GAAG4jC,OAC3BC,EAAS,IAKb,GAJI5S,KAAK2R,IAAI,6BAA4BiB,GAAU,MACpB,IAA3B5S,KAAK8E,UAAU/1B,GAAGK,OAAYwjC,GAAU,GAC5CD,GAAUC,EACN5S,KAAK2R,IAAI,mBAAkBgB,GAAU,MACrC/S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAc4Q,GAAU,KACR,IAAX5Q,EAAc4Q,GAAU,IACb,IAAX5Q,IAAc4Q,GAAU,MAEnChV,IAAuBgV,EACQ,IAA3B3S,KAAK8E,UAAU/1B,GAAGK,OACpBwuB,IAAwB+U,EACpBA,EAAS9U,GAAsB,KACjCA,GAAwB,CAAC8U,EAAQ5jC,MAuBzC,SAASmsC,KACPhT,KACA+S,KACAL,KACAC,KACAlB,KACAe,KACAC,KAliDAzgB,GAAc,IAAI8Y,GAAW1b,EAAYA,EAAYtoB,OAAS,IAC9DmrB,GAAY,IAAI6Y,GAAW1b,EAAYA,EAAYtoB,OAAS,IAC5DorB,GAAmB,IAAI4Y,GAAW1b,EAAYA,EAAYtoB,OAAS,IACnEqrB,GAAa,IAAI2Y,GAAW1b,EAAYA,EAAYtoB,OAAS,IAC7DsrB,GAAa,IAAI0Y,GAAWzb,EAAWA,EAAWvoB,OAAS,IAgiD3DurB,GAAoB,IAAIyY,GAAW,GACnC6G,KACAvG,KACA0F,KACAD,KACAjE,KAKF,MAmImCqG,GAnIb,CACpBjV,OAAQ,EACRS,SAAU,EACVC,YAAa,EACbkL,gBAAiB,EACjBjP,WAAY,EACZuY,eAAgB,EAChB/X,WAAY,EACZgY,mBAAoB,EACpB1W,UAAW,EACXD,QAAS,EACT2P,WAAY,EACZI,cAAe,EACfO,gBAAiB,EACjBD,aAAc,EACdJ,oBAAqB,EACrBC,sBAAuB,EACvB1F,YAAa,EACb3W,MAAO,EACP+iB,aAAc,EACdC,eAAgB,EAChBC,QAAS,EACTC,QAAS,EACTC,SAAU,IACVC,WAAY,6DACZC,oBAAqB,EACrBC,aAAc,EACdC,aAAc,EACdC,cAAe,IACfC,gBACE,gEACFC,gBAAiB,EACjBC,SAAU,EACVC,SAAU,EACVC,UAAW,IACXC,YACE,oEACFC,UAAW,EACXC,UAAW,EACXC,WAAY,IACZC,aAAc,+DACdC,kBAAmB,EACnBC,WAAY,EACZC,WAAY,EACZC,YAAa,IACbC,cACE,gEACFC,qBAAsB,EACtBC,cAAe,EACfC,cAAe,EACfC,eAAgB,IAChBC,iBACE,6DACFC,wBAAyB,EACzBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,IACnBC,oBACE,8DACF/R,oBAAqB,EACrBuE,YAAa,EACbX,cAAe,EACfC,oBAAqB,EACrBE,gBAAiB,EACjBE,sBAAuB,EACvBE,gBAAiB,EACjBb,aAAc,EACd5H,YAAa,EACbyF,YAAa,EACbwF,aAAc,EACdhG,YAAa,EACbmB,aAAc,EACdkQ,eAAgB,EAChBC,oBAAqB,EACrBzM,MAAO,EACP0M,gBAAiB,EACjB7K,QAAS,EACT/Y,WAAY,EACZ6jB,aAAc,EACdC,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdhlB,MAAO,EACPF,cAAe,EACfQ,eAAgB,EAChBD,YAAa,OACbxC,OAAQ,CACNonB,KAAM,UACNC,MAAO,UACPC,OAAQ,UACRC,OAAQ,UACRC,IAAK,UACLC,OAAQ,UACRC,KAAM,UACNC,KAAM,UACNC,MAAO,WAETzb,cAAe,EACfoB,aAAc,EACdsa,QAAS,EACTC,QAAS,EACTC,gBAAiB,EACjBC,aAAc,EACdC,OAAQ,CACNC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,oBAAqB,EACrBC,eAAgB,EAChBC,eAAgB,EAChBC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,EACnBC,qBAAsB,EACtBrU,QAAS,EACTsU,WAAY,EACZC,SAAU,EACVC,cAAe,EACfC,MAAO,EACPC,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,SAAU,EACVC,MAAO,EACPC,IAAK,EACLC,KAAM,EACNC,QAAS,IAoCsBC,GAvBnC,SAAsCC,GACpC,GAAoB,IAAhBA,EAAmB,CAErB,MAAMC,EAA2B,WAC/B,IACEvB,aAAawB,oBAAoBC,OACjC,MAAOvwC,GACP,OAAO,EAET,OAAO,GAIH,iBAAkB1C,OAEb+yC,IACTvB,aAAawB,oBAAoBC,OAEjCzB,aAAawB,oBAJb5wC,QAAQ+pB,IAAI,kDAoBlB,SAAS+mB,KACkB,IAArBlsB,EAAU0R,QACZ/lB,EAAE,YAAYnJ,MAAMqV,QAAU,GAC9B4Z,MAEA9lB,EAAE,YAAYnJ,MAAMqV,QAAU,OAEhCqa,KA4GF,SAASia,KACPC,cACA5gB,KAAK6gB,eACL7gB,KAAK8gB,kBAEL7a,KACAtD,KACAS,KAYF,SAAS2d,KACP,IAAI5wC,EAAM,GACV,IAAK,IAAIpB,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,UAAmBymB,EAAO7nB,eAC/BylB,EAAUoC,OAAOA,EAAO7nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,UAAmBymB,EAAO7nB,0BAC/BylB,EAAUoC,OAAOA,EAAO7nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,YAAqBymB,EAAO7nB,0BACjCylB,EAAUoC,OAAOA,EAAO7nB,WAG5BoR,EAAE,SAAS/N,YAAcjC,EACzBwyB,KAuBF,SAASqe,KACmB,IAAtBxsB,EAAUkqB,SAAiBnpB,EAAwB,EACjD4J,GAA0B8hB,MAC5B9gC,EAAE,aAAa+gC,KACb,mEAEF/gC,EAAE,aAAa+gC,KACb,oEAEJ/gC,EAAE,aAAa+gC,KACb,uDAQN,MAAMC,GACJlO,YAAY7jC,EAAMgyC,GAChB3zC,KAAK2B,KAAOA,EACZ3B,KAAK2zC,MAAQA,GAKjB,MAAMC,WAAwBF,GAC5BlO,YAAY7jC,EAAMgyC,EAAOE,EAAOlW,EAAMmW,EAAQztC,EAAO,MACnD0tC,MAAMpyC,EAAMgyC,GACZ3zC,KAAK6zC,MAAQA,EACb7zC,KAAK29B,KAAOA,EACZ39B,KAAK8zC,OAASA,EACVztC,IACFrG,KAAKqG,KAAOA,IAclB,MAAM2tC,WAAsBN,GAC1BlO,YAAY7jC,EAAMgyC,EAAOE,EAAOlW,GAC9BoW,MAAMpyC,EAAMgyC,GACZ3zC,KAAK6zC,MAAQA,EACb7zC,KAAK29B,KAAOA,EACZ,IAAK,IAAIr8B,EAAI,EAAGA,EAAI,IAAKA,IACvBtB,KAAK6zC,MAAMvyC,GAAK,GAAGA,MAMzB,MAAM2yC,WAA2BP,GAC/BlO,YAAY7jC,EAAMgyC,EAAOE,EAAOlW,EAAMnwB,EAAKE,GACzCqmC,MAAMpyC,EAAMgyC,GACZ3zC,KAAK6zC,MAAQA,EACb7zC,KAAK29B,KAAOA,EACZ39B,KAAKwN,IAAMA,EACXxN,KAAK0N,IAAMA,GAwBf,MAutBmCwmC,GAvtBpB,CAEbzb,OAAQ,IAAImb,GACV,OACA,aACA,CAAC,iBAAkB,iBACnB,wBACA,GACA,WACEX,QAGJ/Z,SAAU,IAAI0a,GACZ,OACA,aACA,CAAC,gBAAiB,gBAClB,qFACA,GACA,WACExa,QAGJD,YAAa,IAAIya,GACf,OACA,aACA,CAAC,gCAAiC,+BAClC,8BACA,GACA,WAlpH4B,IAA1B7sB,EAAUoS,aACZzmB,EAAE,cAAcnJ,MAAMkG,MAAQ,MAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,GAC/B/M,EAAE,QAAQyhC,aAAazhC,EAAE,cAAeA,EAAE,kBAE1CA,EAAE,cAAcnJ,MAAMkG,MAAQ,OAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,MAC/B/M,EAAE,WAAWwK,YAAYxK,EAAE,gBAE7BumB,QA6oHAoL,gBAAiB,IAAIuP,GACnB,OACA,aACA,CACE,wBACA,iCACA,0BAEF,+DACA,GAEFte,cAAe,IAAIse,GACjB,OACA,aACA,CAAC,0BAA2B,sBAC5B,kEACA,GACA,WACE1e,QAGJwB,aAAc,IAAIkd,GAChB,OACA,aACA,CAAC,yBAA0B,qBAC3B,iEACA,GACA,WACEje,QAGJP,WAAY,IAAIwe,GACd,OACA,aACA,CAAC,sBAAuB,sBACxB,wBACA,GACA,WACE1e,QAGJyY,eAAgB,IAAIiG,GAClB,OACA,aACA,CACE,+CACA,gDAEF,4FACA,GACA,WACE1e,QAGJU,WAAY,IAAIge,GACd,OACA,aACA,CACE,yBACA,6BACA,iCAEF,wDACA,GACA,WA/S2B,IAAzB7sB,EAAU6O,YAEZljB,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClC+W,MACkC,IAAzB5O,EAAU6O,YAEnBljB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClC+W,OAGAjjB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClC2T,KAAK8gB,sBAwSPlqB,OAAQ,IAvJV,cAA6BuqB,GAC3BlO,YAAY7jC,EAAMgyC,EAAOhW,EAAMt3B,GAC7B0tC,MAAMpyC,EAAMgyC,GACZ3zC,KAAK29B,KAAOA,EACZ39B,KAAKqG,KAAOA,IAoJZ,QACA,aACA,CACEkqC,KACE,uGACFC,MACE,4FACFC,OACE,yHACFC,OACE,iIACFC,IACE,mFACFC,OACE,wGACFC,KACE,2FACFC,KAAM,yCACNC,MAAO,8CAET,WACEuC,QAGJ1F,mBAAoB,IAAIgG,GACtB,OACA,aACA,CAAC,iCAAkC,iCACnC,+FACA,GACA,WA3TmC,IAAjC7sB,EAAU6mB,oBAEZl7B,EAAE,gBAAgBnJ,MAAMgI,SAAW,SACnCmB,EAAE,gBAAgBnJ,MAAMsC,IAAM,OAE9B6G,EAAE,gBAAgBnJ,MAAMgI,SAAW,MA4TrC2lB,UAAW,IAAI0c,GACb,OACA,cACA,CACE,+BACA,8BACA,6CAEF,qGACA,GAEF3c,QAAS,IAAI2c,GACX,OACA,cACA,CAAC,6BAA8B,8BAC/B,kFACA,GAEFhN,WAAY,IAAIgN,GACd,OACA,cACA,CACE,2BACA,2BACA,2BACA,0BACA,0BACA,2BACA,2BACA,4BAEF,4DACA,GAEF5M,cAAe,IAAI4M,GACjB,OACA,cACA,CACE,oCACA,oCACA,qCACA,qCACA,sCAEF,uDACA,GAEFrM,gBAAiB,IAAIqM,GACnB,OACA,cACA,CAAC,mCAAoC,kCACrC,2FACA,GACA,WACEvM,QAGJC,aAAc,IAAIsM,GAChB,OACA,cACA,CACE,mBACA,kBACA,0BACA,gCAEF,qGACA,GAEF1M,oBAAqB,IAAI+M,GACvB,WACA,cACA,oCACA,wMACA,EACA5oB,KAEF8b,sBAAuB,IAAIyM,GACzB,OACA,cACA,CAAC,2BAA4B,sBAC7B,yKACA,GAEFnS,YAAa,IAAImS,GACf,OACA,cACA,CACE,+CACA,+CAEF,2EACA,GAIF9oB,MAAO,IAAI8oB,GACT,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAEF/F,aAAc,IAAI+F,GAChB,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAEF9F,eAAgB,IAAI8F,GAClB,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,WACEhB,GAAoC7rB,EAAU+mB,mBAGlDC,QAAS,IAAI6F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF5F,QAAS,IAAI4F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF3F,SAAU,IAAI+F,GAAc,MAAO,iBAAkB,GAAI,UACzD9F,WAAY,IAAI0F,GACd,MACA,iBACA,aACA,6DAEFzF,oBAAqB,IAAIyF,GACvB,OACA,iBACA,CAAC,mBAAoB,mBACrB,8DACA,GACA,WACEhB,GAAoC7rB,EAAUonB,wBAGlDC,aAAc,IAAIwF,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFvF,aAAc,IAAIuF,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFtF,cAAe,IAAI0F,GAAc,MAAO,iBAAkB,GAAI,UAE9DzF,gBAAiB,IAAIqF,GACnB,MACA,iBACA,aACA,sEAEFpF,gBAAiB,IAAIoF,GACnB,OACA,kBACA,CAAC,mBAAoB,mBACrB,yCACA,GACA,WACEhB,GAAoC7rB,EAAUynB,oBAGlDC,SAAU,IAAImF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFlF,SAAU,IAAIkF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFjF,UAAW,IAAIqF,GAAc,MAAO,kBAAmB,GAAI,UAC3DpF,YAAa,IAAIgF,GACf,MACA,kBACA,aACA,8DAEF/E,UAAW,IAAI+E,GACb,OACA,mBACA,CAAC,wBAAyB,YAC1B,+BACA,GAEF9E,UAAW,IAAI8E,GACb,OACA,mBACA,CAAC,YAAa,YACd,+BACA,GAEF7E,WAAY,IAAIiF,GAAc,MAAO,mBAAoB,GAAI,UAC7DhF,aAAc,IAAI4E,GAChB,MACA,mBACA,yBACA,uDAEF3E,kBAAmB,IAAI2E,GACrB,OACA,mBACA,CAAC,mBAAoB,mBACrB,oDACA,GACA,WACEhB,GAAoC7rB,EAAUkoB,sBAGlDC,WAAY,IAAI0E,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEFzE,WAAY,IAAIyE,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEFxE,YAAa,IAAI4E,GAAc,MAAO,mBAAoB,GAAI,UAC9D3E,cAAe,IAAIuE,GACjB,MACA,mBACA,aACA,2DAEFtE,qBAAsB,IAAIsE,GACxB,OACA,oBACA,CAAC,mBAAoB,mBACrB,iDACA,GACA,WACEhB,GAAoC7rB,EAAUuoB,yBAGlDC,cAAe,IAAIqE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFpE,cAAe,IAAIoE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFnE,eAAgB,IAAIuE,GAAc,MAAO,oBAAqB,GAAI,UAClEtE,iBAAkB,IAAIkE,GACpB,MACA,oBACA,aACA,yDAEFjE,wBAAyB,IAAIiE,GAC3B,OACA,uBACA,CAAC,mBAAoB,mBACrB,2EACA,GACA,WACEhB,GAAoC7rB,EAAU4oB,4BAGlDC,iBAAkB,IAAIgE,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEF/D,iBAAkB,IAAI+D,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEF9D,kBAAmB,IAAIkE,GACrB,MACA,uBACA,GACA,UAEFjE,oBAAqB,IAAI6D,GACvB,MACA,uBACA,aACA,mFAIF5V,oBAAqB,IAAI4V,GACvB,OACA,UACA,CACE,2CACA,4CAEF,kDACA,GAEFrR,YAAa,IAAIqR,GACf,OACA,UACA,CACE,iDACA,iDAEF,qDACA,GAEFhS,cAAe,IAAIgS,GACjB,OACA,UACA,CAAC,4BAA6B,4BAC9B,kGACA,GAEF/R,oBAAqB,IAAI+R,GACvB,OACA,UACA,CAAC,mCAAoC,mCACrC,2GACA,GAEF7R,gBAAiB,IAAI6R,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,+GACA,GAEF3R,sBAAuB,IAAI2R,GACzB,OACA,UACA,CAAC,qCAAsC,qCACvC,kIACA,GAEFzR,gBAAiB,IAAIyR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,qJACA,GAEFtS,aAAc,IAAI2S,GAChB,WACA,UACA,mCACA,gKACA,EACA5oB,KAEFqO,YAAa,IAAIka,GACf,OACA,UACA,CAAC,kCAAmC,qCACpC,kCACA,GACA,WACEna,QAGJ0F,YAAa,IAAIyU,GACf,OACA,UACA,CAAC,mCAAoC,mCACrC,6CACA,GAEFjP,aAAc,IAAIiP,GAChB,OACA,UACA,CAAC,uBAAwB,uBACzB,oEACA,GAEFjV,YAAa,IAAIiV,GACf,OACA,UACA,CAAC,yBAA0B,yBAC3B,4DACA,GAEF9T,aAAc,IAAI8T,GAChB,OACA,UACA,CAAC,2BAA4B,2BAC7B,yDACA,GAEF5D,eAAgB,IAAI4D,GAClB,OACA,UACA,CAAC,6BAA8B,6BAC/B,kFACA,GAEF3D,oBAAqB,IAAI2D,GACvB,OACA,UACA,CAAC,qCAAsC,qCACvC,+CACA,GAIFpQ,MAAO,IAAIoQ,GACT,OACA,aACA,CAAC,iBAAkB,iBACnB,oCACA,GAEF1D,gBAAiB,IAAI0D,GACnB,OACA,aACA,CAAC,uBAAwB,uBACzB,yHACA,GAEFvO,QAAS,IAAIuO,GACX,OACA,aACA,CAAC,mCAAoC,+BACrC,6CACA,GAEFtnB,WAAY,IAAIsnB,GACd,OACA,aACA,CAAC,0BAA2B,uBAC5B,0BACA,GAEFzD,aAAc,IAAIyD,GAChB,OACA,aACA,CAAC,oBAAqB,oBACtB,mEACA,GACA,WAz1B6B,IAA3B7sB,EAAUopB,aAAoB5d,KAAKmR,QAAUpa,EAC5CiJ,KAAKmR,QAAUnb,EAAgBmb,WA41BpC0M,YAAa,IAAIwD,GACf,OACA,aACA,CAAC,iCAAkC,iCACnC,+DACA,GAEFvD,oBAAqB,IAAI4D,GACvB,WACA,aACA,0BACA,8GACA,EACA5oB,KAEFilB,aAAc,IAAIsD,GAChB,OACA,aACA,CAAC,gBAAiB,gBAClB,4FACA,GAIFtoB,MAAO,IAAIsoB,GACT,OACA,WACA,CACE,uBACA,SACA,cACA,4BACA,sBACA,wBAEF,uCACA,GACA,WACEV,QAGJ9nB,cAAe,IAAIwoB,GACjB,OACA,WACA,CAAC,aAAc,aAAc,cAC7B,mDACA,GACA,WACEV,QAGJtnB,eAAgB,IAAIgoB,GAClB,OACA,WACA,CAAC,4BAA6B,mBAC9B,qDACA,GACA,WACEV,QAGJvnB,YAAa,IAAIsoB,GACf,WACA,WACA,2BACA,6KACA,EACA,WAIFjD,QAAS,IAAI4C,GACX,OACA,gBACA,CAAC,0BAA2B,0BAC5B,yDACA,GACA,YA75BJ,WACE,GAA0B,IAAtB7sB,EAAUiqB,QACZ,IAAK,MAAM1vC,KAAKwD,OAAO6C,KAAKkjB,IAC1BA,GAASvpB,GAAGiI,MAAMqV,QAAU,QAC5BiM,GAASvpB,GAAGiI,MAAMqC,KAAOqmB,GAAwB3wB,GAAGoR,EAAEnJ,MAAMqC,KAC5Dif,GAASvpB,GAAGiI,MAAMsC,IAAMomB,GAAwB3wB,GAAGoR,EAAEnJ,MAAMsC,SAG7D,IAAK,MAAMvK,KAAKwD,OAAO6C,KAAKkjB,IAAWA,GAASvpB,GAAGiI,MAAMqV,QAAU,OAs5BjEw1B,MAGJnD,QAAS,IAAI2C,GACX,OACA,gBACA,CAAC,cAAe,cAChB,2CACA,GACA,WACEL,QAGJrC,gBAAiB,IAAI0C,GACnB,OACA,gBACA,CAAC,oBAAqB,oBACtB,kEACA,GACA,WAj3BE7sB,EAAUmqB,iBACZx+B,EAAE,8BAA8BnJ,MAAMqV,QAAU,GAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,KAE9ClM,EAAE,8BAA8BnJ,MAAMqV,QAAU,OAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,WAg3BhDuyB,aAAc,IAAIyC,GAChB,OACA,gBACA,CAAC,wBAAyB,wBAC1B,mIACA,IAeJ,SAASS,KACP,OAAO1xC,KAAK2xC,UAAU,CACpBC,SAAUxtB,EACVytB,QAAS,YAkMb,SAASC,KACP,GAAI9lB,KAAyB4D,KAAKmiB,aAAermB,GAAW,CAC1D,GACEkE,KAAKmiB,YAAc,IACnBniB,KAAKoiB,aAAapiB,KAAKmiB,aAAaE,IAAI7qC,WAAW8qC,SAAS,aAC5D,CACA,IAAIluC,EAAS4rB,KAAKoiB,aAAapiB,KAAKmiB,aAAaE,IAC9C7qC,WACA/H,MAAM,mBAAmB,GAC5B,MAAM2yB,EAASpC,KAAKoiB,aAAapiB,KAAKmiB,aAAaE,IAChD7qC,WACA/H,MAAM,sBAAsB,GAC/B,GAAe,MAAX2E,EAEF,GADAA,EAASA,EAAOmuC,WAAW,IAAK,IAC5BviB,KAAKoB,QAAQhtB,GAAQguB,OAASA,EAChC/F,GAAyB,mCACpB,CACL,IAAImmB,EAAO,EACXlY,KACA,IAAK,IAAIv7B,EAAI,EAAGA,EAAIqzB,EAAQrzB,IAAK,CAC/B,IAAI4yB,EACF/B,GAAWxrB,GAAQ8tB,UACnBlC,KAAKwC,eACHlrB,KAAK6D,IACH,EACAykB,GAAWxrB,GAAQguB,OAAS,EAAIxC,GAAWxrB,GAAQ+tB,MAEzDR,EAAQ3B,KAAKyC,oBAAoB7C,GAAWxrB,GAASutB,GACrDA,EAAQrqB,KAAKoL,KAAKif,GAClB6gB,GAAQ7gB,EACR/B,GAAWxrB,GAAQguB,SAErB/F,GAAyB,kBAAkBmmB,QAExC,CACL,IAAIA,EAAO,EACXlY,KACA,IAAK,MAAMtG,KAAKzxB,OAAO6C,KAAK4qB,KAAKoB,SAAU,CAEzC,GADAhtB,EAAS4vB,EACLhE,KAAKoB,QAAQhtB,GAAQguB,OAASA,EAAQ,CACxC/F,GAAyB,+BACzB,MAEA,IAAK,IAAIttB,EAAI,EAAGA,EAAIqzB,EAAQrzB,IAAK,CAC/B,IAAI4yB,EACF/B,GAAWxrB,GAAQ8tB,UACnBlC,KAAKwC,eACHlrB,KAAK6D,IACH,EACAykB,GAAWxrB,GAAQguB,OAAS,EAAIxC,GAAWxrB,GAAQ+tB,MAEzDR,EAAQ3B,KAAKyC,oBAAoB7C,GAAWxrB,GAASutB,GACrDA,EAAQrqB,KAAKoL,KAAKif,GAClB6gB,GAAQ7gB,EACR/B,GAAWxrB,GAAQguB,SAGvB/F,GAAyB,kBAAkB7D,GAA4BgqB,OAI7EpmB,GAAuB4D,KAAKmiB,aAsChC,SAASM,KAEP7iB,GAAa,GACb,IAAK,MAAM7wB,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/BxB,GAAW7wB,GAAKu6B,GAAoBv6B,GAItC8wB,GAAc,GACd,IAAK,MAAM9wB,KAAKwD,OAAO6C,KAAK4qB,KAAKkK,UAC/BrK,GAAY9wB,GAAKi7B,GAAYj7B,GAI/B+wB,GAAkB,GAClB,IAAK,MAAM/wB,KAAKwD,OAAO6C,KAAK4qB,KAAKuI,cAC/BzI,GAAgB/wB,GAAKs5B,GAAgBt5B,GAEvCu7B,KAMF,IAAIoY,IAAiB,EAcrB,SAASC,GAAM3/B,EAAM4/B,GAGM,IAAtBpuB,EAAUouB,IAA0B,IAAT5/B,IAAiC,IAAnB0/B,IACjC,IAAT1/B,GAEA7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,MACtB,IAAT7I,GACF7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,SACnCw2B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAKwH,MAEfqb,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAKwH,MAEC,IAATxkB,GACT7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,IACnCg3B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAKwH,MACG,IAATxkB,IAAY7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,QAc5D,SAASy2B,GAAUC,EAAKC,EAAWC,GAEjC,GAA6B,IAAzBzuB,EAAUwuB,KAAuC,IAAnBN,GAA0B,CAE1D,MAAMQ,EAAQ,IAAIC,UAAUJ,GACxBvuB,EAAU8mB,aACZ4H,EAAME,OAAU5uB,EAAUyuB,GAAa,KAAQjjB,KAAKojB,OAAS,KAC1DF,EAAME,OAAS5uB,EAAUyuB,GAAa,IAC3CC,EAAMG,QAoCV,SAASC,GAAcC,GACrB,MAAM9E,EAAUpxC,SAAS4D,cAAc,OACvCwtC,EAAQjd,GAAK,UAAU+hB,EAAO/hB,KAC9Bid,EAAQznC,MAAMkG,MAAQ,OACtBuhC,EAAQznC,MAAMmG,OAAS,OACvBshC,EAAQznC,MAAMgI,SAAW,WACzBy/B,EAAQznC,MAAMyU,OAAS,cACvBgzB,EAAQznC,MAAMuW,UAAY,SAC1BkxB,EAAQznC,MAAMyW,WAAa,OAC3BgxB,EAAQznC,MAAMwsC,WAAa,2BAC3B/E,EAAQznC,MAAMouB,SAAW,OACzBqZ,EAAQznC,MAAM+U,OAAS,UACvB0yB,EAAQznC,MAAMqV,QAAU,QACE,IAAtBmI,EAAUiqB,UAAeA,EAAQznC,MAAMqV,QAAU,QACrDoyB,EAAQznC,MAAMqC,KAAOkqC,EAAOpjC,EAAEnJ,MAAMqC,KACpColC,EAAQznC,MAAMsC,IAAMiqC,EAAOpjC,EAAEnJ,MAAMsC,IACnCmlC,EAAQgF,QAAU,WAChBF,EAAOG,OAETjF,EAAQkF,YAAc,WACpBJ,EAAOpjC,EAAEnJ,MAAM4sC,OACb,gEACFL,EAAOpjC,EAAEnJ,MAAM6sC,aACb,iEAEJpF,EAAQqF,WAAa,WACnBP,EAAOpjC,EAAEnJ,MAAM4sC,OAAS,GACxBL,EAAOpjC,EAAEnJ,MAAM6sC,aAAe,IAGhCvrB,GAASirB,EAAO/hB,IAAMid,EACtBt+B,EAAE,YAAYwK,YAAY8zB,GAgB5B,SAASsF,GAA0BC,EAAcC,EAAOC,GAGxB,IAA5B1vB,EAAUwvB,IACmB,WAA7B32C,SAAS82C,kBACU,IAAnBzB,IAGA,IAAIqB,GAA0BE,EAAO,CAAEh2B,KAAMi2B,EAASE,MADnC,yDA0QvB,SAASC,KAKP,GAJIjsB,KAAoB4H,KAAKskB,WAC3BlsB,GAAkB4H,KAAKskB,SA/crBtkB,KAAKskB,UACPnkC,EAAE,QAAQnJ,MAAMkW,OAAS,MACA,IAArBsH,EAAU0R,SAAc/lB,EAAE,YAAYnJ,MAAMqV,QAAU,QAC/B,IAAvBmI,EAAUmS,WAAgBxmB,EAAE,cAAcnJ,MAAMqV,QAAU,UAE9Dq0B,KACA7Z,MAEFN,OA0cKvG,KAAKskB,UAAiC,IAArBtkB,KAAKukB,YAAmB,CAExC3vB,IAAiBriB,OAAO6C,KAAK4qB,KAAKwkB,MAAMx1C,SAC1CyzC,KACAvH,KACAtmB,EAAeriB,OAAO6C,KAAK4qB,KAAKwkB,MAAMx1C,QAIpC8sB,KACFkd,KA1oBAhZ,KAAK2R,IAAI,wBAjBbrH,KACAzK,GAAY,uBAAuBkB,OAAS,EAC5CqU,KAgBEpY,GAfKhB,IAgBAgB,GAA6BgD,KAAK4E,UA2oBrCiW,KACAD,KACAF,KACAf,KACAuI,KAEAvH,KA9kBN,WACE,IAAI8J,EAAY,EAEhB,GAAIzkB,KAAKoB,QAAQsjB,KAAK5iB,eAAgB,CACpC,MAAM6iB,EAAc3kB,KAAKoB,QAAQsjB,KAAKvjB,SAASyjB,MAC/C,IAAIC,EAAW,EACf,IAAK,MAAM91C,KAAKwD,OAAO6C,KAAKuvC,GAAc,CACxC,MAAMG,EAAaH,EAAY51C,GAC/B81C,GAAYC,EAAWC,MAAQD,EAAWvzC,IAE5CkzC,GAAaI,EAAW7kB,KAAKglB,oBAG/BP,GAlEF,WACE,IAAIA,EAAY,EAEhBna,KAGA,IAAI2a,EAAuB,EACL,IAAlBrpB,IAAyC,KAAlBA,MACvBqpB,EAEmB,IAAnBppB,IAA2C,KAAnBA,MACxBopB,EAEJrpB,GAAgB,EAChBC,GAAiB,GAGjB,IAAK,IAAI9sB,EAAI,EAAGA,EAAIk2C,IAAwBl2C,EAAG,CAC7C,IAAIm2C,EAAkB,SACtB,IAAK,MAAMlhB,KAAKpE,GACVA,GAAWoE,GAAG5B,OAAS,IACzB8iB,EAAkBlhB,GAGtBpE,GAAWslB,GAAiB9iB,SAC5B9G,KAIF,IAAK,MAAMvsB,KAAKwD,OAAO6C,KAAKwqB,IAAa,CACvC,MAAMkE,EAAKlE,GAAW7wB,GACtB01C,GAAaziB,GACXhC,KAAKoB,QAAQ0C,EAAGxwB,MAChB0sB,KAAKoB,QAAQryB,GAAGmzB,UAChB4B,EAAG1B,OACHpC,KAAKoB,QAAQryB,GAAGozB,KAChB2B,EAAG1B,QAIP,OAAOqiB,EA0BMU,GACbxlB,GAAqB8kB,EAikBjBW,GAEAtpB,GAAY,GAId,MAAMupB,EAAerlB,KAAKyW,SAAS,kBAAoB,GAClDpb,IAAqBgqB,GACxBhqB,IAAoB,EACpBD,GAA2B,GAClBC,KAAsBgqB,IAC/BhqB,IAAoB,EACpBD,GAA2B,GAGzBA,KACF2d,KACA3d,GAA2B,GAltBjC,WAEE6f,KAEAnG,KAzCF,WACEhX,GAA2B,EAC3B,IAAIqI,EAAQ,EACZ,IAAK,MAAMp3B,KAAKixB,KAAK8E,UACa,IAA5B9E,KAAK8E,UAAU/1B,GAAGujC,OAAanM,IAErC,IAAImf,EAAU,EACd,GAAI1lB,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAcujB,GAAW,KACT,IAAXvjB,EAAcujB,GAAW,IACd,IAAXvjB,IAAcujB,GAAW,MAEpCvnB,GAAyBoI,EACzBrI,GACEqI,GACS,IAARA,EAAe,MACuB,IAAtCnG,KAAK2R,IAAI,2BAAoC,IACjB,IAA5B3R,KAAK2R,IAAI,iBAA0B,GACpC2T,EAuBFC,GACAjS,KACAuG,KAEA,MAAM2L,EACJxlB,KAAKylB,oBACHnuC,KAAKkE,MAAMwkB,KAAK+Z,gBAAgB/Z,KAAKga,aAAeha,KAAK2T,gBACvD,IAEH3T,KAAK2T,cAAgB3T,KAAKga,cAC7B3a,GAA4BzF,GAAW4rB,EAAgB/gB,MAssBrDihB,GAjRJ,YAhBA,WACEhwB,EAA+B,EAC/BgK,GAA0B,GAC1B,IAAK,MAAM3wB,KAAKwD,OAAO6C,KAAK4qB,KAAK2lB,UAC/BjmB,GAAwBM,KAAK2lB,SAAS52C,GAAGyyB,IAAMxB,KAAK2lB,SAAS52C,GACzDixB,KAAK2lB,SAAS52C,GAAG62C,WAAuC,WAA1B5lB,KAAK2lB,SAAS52C,GAAGK,OACjD+vB,GAA4Ba,KAAK2lB,SAAS52C,GAC1C2mB,GAAgC,GAUpCmwB,GACA,IAAK,MAAM92C,KAAKwD,OAAO6C,KAAKkjB,SACgB,IAA/BoH,GAAwB3wB,KACjCupB,GAASvpB,GAAGmf,WAAWrc,YAAYymB,GAASvpB,WACrCupB,GAASvpB,IAGpB,GAAIwmB,IAA0ByK,KAAKwR,aAAaC,OAAOz/B,EAAG,CAExD,GADAujB,EAAwByK,KAAKwR,aAAaC,OAAOz/B,EAC7CujB,EAAuB,CACrBC,EAA+BE,IACjCitB,GAAM,EAAG,WACTG,GAAUtuB,EAAUmnB,WAAY,UAAW,YAC3CoI,GACE,iBACA,wBACA,+CAIJ,IAAK,MAAMh1C,KAAKwD,OAAO6C,KAAK4qB,KAAK2lB,eACc,IAAlCrtB,GAAS0H,KAAK2lB,SAAS52C,GAAGyyB,KACnC8hB,GAActjB,KAAK2lB,SAAS52C,IAIlCiyC,KACAxrB,EAA+BE,EACM,IAAjCA,IAAoCyJ,GAA4B,QAC/D,GAA0B,IAAtB3K,EAAUiqB,SAAiBlpB,EACpC,IAAK,MAAMxmB,KAAKwD,OAAO6C,KAAKkjB,IAC1BA,GAASvpB,GAAGiI,MAAM6U,QAAU6T,GAAwB3wB,GAAGoR,EAAEnJ,MAAM6U,QAC/DyM,GAASvpB,GAAGiI,MAAM8uC,UAChBpmB,GAAwB3wB,GAAGoR,EAAEnJ,MAAM8uC,UACrCxtB,GAASvpB,GAAGqD,YAAckF,KAAKoL,KAC7Bgd,GAAwB3wB,GAAGg3C,KAAO/lB,KAAKwH,KAgP3Cwe,GA9JA3wB,KACC2K,KAAKimB,cAA2C,YAA3BjmB,KAAKimB,aAAa72C,QAExCimB,EACE2K,KAAKimB,cAA2C,YAA3BjmB,KAAKimB,aAAa72C,KACrCimB,IACFstB,GAAM,EAAG,gBACTG,GAAUtuB,EAAUwnB,gBAAiB,eAAgB,iBACrD+H,GACE,sBACA,uBACA,kDA3CR,WACE,GAAI3uB,IAAyB4K,KAAKwR,aAAaQ,SAASN,QAAS,CAC/Dtc,EAAuB4K,KAAKwR,aAAaQ,SAASN,QAClD,IAAK,MAAM3iC,KAAKwD,OAAO6C,KAAK4qB,KAAK2lB,UAC/B,GAAI3lB,KAAK2lB,SAAS52C,GAAG62C,WAAuC,aAA1B5lB,KAAK2lB,SAAS52C,GAAGK,KAAqB,CACtEgwB,GAAwBY,KAAK2lB,SAAS52C,GACtC,MAGJ4zC,GAAM,EAAG,YACTG,GAAUtuB,EAAU6nB,YAAa,WAAY,aAC7C0H,GACE,kBACA,oBACA,0CAkLFmC,GAvYAlmB,KAAKoB,QAAQkM,KAAKxL,gBAClBxM,IAAuB0K,KAAKoB,QAAQkM,KAAKnM,SAASglB,WAEvB,IAAvB7wB,GAA4BA,EAAqBke,KAAKC,QACxDkP,GAAM,EAAG,aACTG,GAAUtuB,EAAUioB,aAAc,YAAa,eAEjDnnB,EAAqB0K,KAAKoB,QAAQkM,KAAKnM,SAASglB,UA+JpD,WACE,GACEnmB,KAAKoB,QAAQ,gBAAgBU,gBACH,IAA1BtN,EAAUqpB,YACV,CACA,MAAM1c,EAAWnB,KAAKoB,QAAQ,gBAAgBD,SAC1CA,EAAS2L,MAAQ3L,EAAS0L,OAAQpX,GAAmB,EAC/CA,IACRA,GAAmB,EACnBktB,GAAM,EAAG,cACTG,GAAUtuB,EAAUsoB,cAAe,aAAc,eACjDiH,GACE,oBACA,mBACA,6CAqNJqC,GAtIJ,WACE,GAAIpmB,KAAKqJ,WAAa,EAAG,CACvB,IAAIgd,EAAmB,EACvB,IAAK,MAAMt3C,KAAKixB,KAAK8E,UACa,IAA5B9E,KAAK8E,UAAU/1B,GAAGujC,OAAa+T,IAEjCA,EAAmB1wB,GACrBA,EAAoB0wB,EAElBA,IAAqBrmB,KAAKsmB,mBAC1B9xB,EAAU6oB,iBAEVsF,GAAM,EAAG,oBAETA,GAAM,EAAG,iBAGT0D,IAAqBrmB,KAAKsmB,mBAC1B9xB,EAAU8oB,iBAEVwF,GACEtuB,EAAUgpB,oBACV,mBACA,qBAGFsF,GACEtuB,EAAU2oB,iBACV,gBACA,kBAIFkJ,IAAqBrmB,KAAKsmB,mBAC1B9xB,EAAU4oB,wBAEV2G,GACE,0BACA,4BACA,sDAGFA,GACE,uBACA,sBACA,gCAIJpuB,EAAoB0wB,GAsFtBE,IAmBJ,SAASC,KACP,MAAMC,EAAaC,YACjBC,SAASC,aAAaC,QAAQ,sBAAsBjxC,MAAM,SAAS,IAE/DkxC,EAAoBL,EAAWh3C,MAAM,wBAC3C,GAA0B,OAAtBq3C,EAA4B,CAC9B,MAAMC,EAAgBN,EAAW9wC,QAC/BmxC,EAAkB,GAClB,iBAAiBhF,QAEnB8E,aAAaI,QACX,oBACAvU,OAAO,GAAGwU,YAAYF,aAS5B,SAASG,GAAWlF,GAKlB,QAHqC,IAA1B4E,aAAaO,iBACfP,aAAaO,cAELh4C,IAAb6yC,EAAwB,CAC1BxtB,EAAYwtB,EAGZ,IAAIoF,GAAM,EACV,IAAK,MAAMr4C,KAAKosC,GACd,QAA4B,IAAjB3mB,EAAUzlB,GACnBq4C,GAAM,EACN5yB,EAAUzlB,GAAKosC,GAAgBpsC,QAC1B,GAAU,WAANA,GAAwB,WAANA,GACI,IAA3BA,EAAEkD,QAAQ,YAERuiB,EAAUzlB,IAAM,GAAKylB,EAAUzlB,GAAK4yC,GAAa5yC,GAAGuyC,MAAMtyC,SAE5Do4C,GAAM,EACN5yB,EAAUzlB,GAAKosC,GAAgBpsC,IAEA,iBAAjBylB,EAAUzlB,KAE1Bq4C,GAAM,EACN5yB,EAAUzlB,GAAKosC,GAAgBpsC,SAE5B,GAAU,WAANA,EACT,IAAK,MAAMi1B,KAAKmX,GAAgB0D,YAED,IAApBrqB,EAAUzlB,GAAGi1B,IAClBxP,EAAUzlB,GAAGi1B,IAAM,GAAKxP,EAAUzlB,GAAGi1B,GAAK,IAE5CojB,GAAM,EACN5yB,EAAUzlB,GAAGi1B,GAAKmX,GAAgBpsC,GAAGi1B,SAKzC,IAAK,MAAMA,KAAKmX,GAAgBvkB,YAED,IAApBpC,EAAUzlB,GAAGi1B,IACO,iBAApBxP,EAAUzlB,GAAGi1B,KAEpBojB,GAAM,EACN5yB,EAAUzlB,GAAGi1B,GAAKmX,GAAgBpsC,GAAGi1B,IAKzCojB,GAAKZ,KACTnC,KACA,IAAK,MAAMt1C,KAAKosC,GACJ,WAANpsC,QAAkD,IAAzB4yC,GAAa5yC,GAAG+E,MAC3C6tC,GAAa5yC,GAAG+E,YAKpBozC,GAAW/L,IAyGf,SAASkM,KACP,IAAK,MAAMt4C,KAAKwD,OAAO6C,KAAK4qB,KAAK8E,WAC3B9E,KAAK8E,UAAU/1B,GAAG4jC,OAAS,GAAgC,IAA3B3S,KAAK8E,UAAU/1B,GAAGK,OACpD4wB,KAAK8E,UAAU/1B,GAAGu4C,GAAK,GAkF7B,SAASC,KACP,GAAIvnB,KAAKoB,QAAQ,gBAAgBU,eAC/B,IAAK,MAAM/yB,KAAKixB,KAAKoB,QAAQ,gBAAgBD,SAASwL,WACT,OAAvCxsB,EAAE,gBAAgBpR,KAAK40C,cACzB7tB,EAAsB/mB,GAAKoR,EAAE,gBAAgBpR,KAAK40C,YAClDxjC,EAAE,gBAAgBpR,KAAK40C,YAAc,WACnC3jB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,IAAK,GAAGhhC,OAE/B,QAEFixB,KAAK4H,QAAQ6f,WAmBvB,SAASC,KACP,IACGxyB,GACD8K,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,EAAWnB,KAAKoB,QAAQ,gBAAgBD,SAC9CnM,EAAqBmM,EAAS5a,KAC9ByZ,KAAKoB,QAAQ,gBAAgBD,SAAS5a,KAAO,WAC3CyO,IAC8B,IAA1BR,EAAUqpB,aAAqB1c,EAAS2L,MAAQ3L,EAAS0L,SAC3D1L,EAASwmB,cAAcp7B,WAAa,KAAKqN,GACvCwN,GACEjG,EAAS2L,MACT3L,EAAS0L,OACT1L,EAAS0L,cAKjB3X,GAA+B,GAkCnC,SAAS0yB,MA3BT,WACE,IACG3yB,GACD+K,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,EAAWnB,KAAKoB,QAAQ,gBAAgBD,SAC9CrM,EAAuBqM,EAAS0mB,OAChC9yB,EAA0B,IAAIvkB,SAC5B,UAAU2wB,EAAS0mB,OAChBrwC,WACA5B,MAAM,SACN6C,KAAK,8CAEVunB,KAAKoB,QAAQ,gBAAgBD,SAAS0mB,OAAS,WAC7C9yB,IACAwyB,KACAryB,GAA+B,EAC/BwyB,KAEAzyB,GAAiC,IASrC6yB,GACAJ,KA4GF,IAAI55C,GAAUkmB,EAAoB,KAC9B+zB,GAA+B/zB,EAAoBhiB,EAAElE,IA+OzD,MAAMk6C,GAA6B,WA8BnC,SAASC,GAAmBrF,GACG,OAAzBziC,EAAE,SAASyiC,OACbziC,EAAE,SAASyiC,UAAer2B,UAAY,GAAGpM,EAAE,SAASyiC,KAAUzwC,SAC9DqiB,EAAUouB,GAAUtrC,KAAKC,MAAM4I,EAAE,SAASyiC,KAAUzwC,QAEtDq0C,KAQF,SAAS0B,GAAatF,GACpBpuB,EAAUqqB,OAAO+D,KACbpuB,EAAUqqB,OAAO+D,GAAU,IAAGpuB,EAAUqqB,OAAO+D,GAAU,GAC7D4D,KAiBF,SAAS2B,GAAYluB,EAAM2oB,GACzB,MAAM1e,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAI10B,UAAY,QAChB00B,EAAIltB,MAAMwK,QAAU,WACpB0iB,EAAIltB,MAAM6U,QAAU,MACpBqY,EAAIltB,MAAMouB,SAAW,OACrBlB,EAAIltB,MAAMwsC,WAAa,2BACvBtf,EAAIvZ,YAAYtd,SAASqgB,eAAe,GAAGuM,OAC3C,MAAMmuB,EAAO/6C,SAAS4D,cAAc,QAiBpC,OAhBAm3C,EAAKpxC,MAAM+U,OAAS,UACpBq8B,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKpxC,MAAMmG,OAAS,OACpBirC,EAAKpxC,MAAMkG,MAAQ,OACnBkrC,EAAKpxC,MAAMsU,aAAe,MAC1B88B,EAAKpxC,MAAMuW,UAAY,SACvB66B,EAAKpxC,MAAM4U,gBAAkB,UAC7Bw8B,EAAKpxC,MAAM2F,MAAQ,QACnByrC,EAAKpxC,MAAMouB,SAAW,OACtBgjB,EAAKpxC,MAAMsuB,cAAgB,SAC3B8iB,EAAKh2C,YAAcoiB,EAAUqqB,OAAO+D,GAAU,IAAM,IACpDwF,EAAK3E,QAAU,WACbyE,GAAatF,GACb5iB,KAAK+S,cAEP7O,EAAIvZ,YAAYy9B,GACTlkB,EAYT,SAASmkB,GAAaj5C,EAAMkE,EAAM2mB,EAAMgR,GACtC,MAAM/G,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAI10B,UAAY,UAEhB,MAAM84C,EAAcj7C,SAAS4D,cAAc,KAG3C,GAFAq3C,EAAYl2C,YAAckB,EAC1B4wB,EAAIvZ,YAAY29B,GACH,gBAATl5C,EAAwB,CAC1B80B,EAAI10B,UAAY,UAChB00B,EAAIvZ,YAAYtd,SAASqgB,eAAe,MAExC,MAAMka,EAAUv6B,SAAS4D,cAAc,QACvC22B,EAAQkc,WAAa,WACnB9jB,KAAK4H,QAAQ7hB,QAEf6hB,EAAQ+b,YAAc,WACpB3jB,KAAK4H,QAAQrhB,KAAK9Y,KAAMglC,OAAO5b,EAAYoU,GAAa1e,aAE1Dqb,EAAQ5wB,MAAM+U,OAAS,UACvB6b,EAAQ5wB,MAAMqV,QAAU,eACxBub,EAAQ5wB,MAAMmG,OAAS,OACvByqB,EAAQ5wB,MAAMkG,MAAQ,OACtB0qB,EAAQ5wB,MAAMsU,aAAe,MAC7Bsc,EAAQ5wB,MAAMuW,UAAY,SAC1Bqa,EAAQ5wB,MAAM4U,gBAAkB,UAChCgc,EAAQ5wB,MAAM2F,MAAQ,QACtBirB,EAAQ5wB,MAAMouB,SAAW,MACzBwC,EAAQ5wB,MAAMsuB,cAAgB,SAC9BsC,EAAQx1B,YAAc,IACtB8xB,EAAIvZ,YAAYid,GAIlB,OAFA1D,EAAIvZ,YAAYtd,SAASqgB,eAAe,OACxCwW,EAAIvZ,YAAYsP,GACTiK,EAQT,SAASqkB,GAAcC,GACrB,MAAMC,EAAOp7C,SAASq7C,yBACtBD,EAAK99B,YAAYtd,SAASqgB,eAAe,GAAG86B,EAAYx5C,YACxD,MAAMo5C,EAAO/6C,SAAS4D,cAAc,QACpCm3C,EAAKtE,WAAa,WAChB9jB,KAAK4H,QAAQ7hB,QAEf,MAAMklB,EAAc59B,SAAS4D,cAAc,OACrC03C,EAAUt7C,SAAS4D,cAAc,OACvC03C,EAAQ3xC,MAAMk0B,SAAW,QACzByd,EAAQ3xC,MAAM8wB,aAAe,MAC7B,MAAMmc,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMz0C,UAAY,OAClBy0C,EAAMjtC,MAAM8wB,aAAe,MAC3Bmc,EAAMjtC,MAAMuW,UAAY,SACxB02B,EAAM7xC,YAAc,UACpBu2C,EAAQh+B,YAAYs5B,GACpB,IAAK,MAAMl1C,KAAKwD,OAAO6C,KAAKozC,GAAc,CACxC,MAAMtkB,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMuW,UAAY,SACtB2W,EAAIvZ,YAAYtd,SAASqgB,eAAe86B,EAAYz5C,KACpD45C,EAAQh+B,YAAYuZ,GAkBtB,OAhBA+G,EAAYtgB,YAAYg+B,GACxBP,EAAKzE,YAAc,WACjB3jB,KAAK4H,QAAQrhB,KAAK9Y,KAAMglC,OAAOxH,EAAY1e,aAE7C67B,EAAKpxC,MAAM+U,OAAS,UACpBq8B,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKpxC,MAAMmG,OAAS,OACpBirC,EAAKpxC,MAAMkG,MAAQ,OACnBkrC,EAAKpxC,MAAMsU,aAAe,MAC1B88B,EAAKpxC,MAAMuW,UAAY,SACvB66B,EAAKpxC,MAAM4U,gBAAkB,UAC7Bw8B,EAAKpxC,MAAM2F,MAAQ,QACnByrC,EAAKpxC,MAAMouB,SAAW,MACtBgjB,EAAKpxC,MAAMsuB,cAAgB,SAC3B8iB,EAAKh2C,YAAc,IACnBq2C,EAAK99B,YAAYy9B,GACVK,EA8tBT,SAASG,GAAa3E,GACpB,MAAM4E,EAAQx7C,SAAS4D,cAAc,OAiCrC,GAhCA43C,EAAMr5C,UAAY,aAClBq5C,EAAMl+B,YAAYs5B,GAElB4E,EAAMl+B,YAAYw9B,GAAY,gBAAiB,UAC3C3zB,EAAUqqB,OAAOe,OACnBiJ,EAAMl+B,YAhtBV,WAEE,MAAMm+B,EAAkB9oB,KAAKyW,SAAS,oBAClC,2CACA,6BAEEsS,EAAU17C,SAAS4D,cAAc,OACvC83C,EAAQv5C,UAAY,sBAEpB,MAAMw5C,EACJhpB,KAAKsG,QAAUvB,KAAuBzI,GAAa/F,EAAWH,EAC1D6yB,EACJjpB,KAAKsG,QAAUvB,KAAuBzI,GAClC1C,IACG0C,IAAc0D,KAAKsG,QAAUvB,OAAyBN,MAEzD,GACAykB,EAAe77C,SAASq7C,yBACxBS,EAAe97C,SAAS4D,cAAc,QAK5C,GAJAk4C,EAAanyC,MAAM0wB,WAAa,OAChCyhB,EAAa35C,UAAYymB,EAAe+yB,EACxCG,EAAa/2C,YAAcomB,GAA4B8D,IACvD4sB,EAAav+B,YAAYw+B,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB/7C,SAAS4D,cAAc,SAC7Cm4C,EAAch3C,YAAc,KAAK62C,KACjCC,EAAav+B,YAAYy+B,GAE3BL,EAAQp+B,YACN09B,GACE,cACA,4BACAa,EACAJ,IAIJ,MAAMO,EACJrpB,KAAKsG,QAAUvB,KAAuBtI,GAClClG,EACAH,EACAkzB,EACJtpB,KAAKsG,QAAUvB,KAAuBtI,GAClC7C,IACG6C,IAAoBuD,KAAKsG,QAAUvB,OAAyBN,MAE/D,GACA8kB,EAAmBl8C,SAASq7C,yBAC5Bc,EAAmBn8C,SAAS4D,cAAc,QAKhD,GAJAu4C,EAAiBxyC,MAAM0wB,WAAa,OACpC8hB,EAAiBh6C,UAAYymB,EAAeozB,EAC5CG,EAAiBp3C,YAAcomB,GAA4BiE,IAC3D8sB,EAAiB5+B,YAAY6+B,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBp8C,SAAS4D,cAAc,SACjDw4C,EAAkBr3C,YAAc,KAAKk3C,KACrCC,EAAiB5+B,YAAY8+B,GAE/BV,EAAQp+B,YACN09B,GACE,cACA,qCACAkB,EACAT,IAIJ,MAAMY,EAAantB,KAAqBC,GAElCmtB,EAAqBt8C,SAAS4D,cAAc,QAClD04C,EAAmB3yC,MAAM0wB,WAAa,OACtCiiB,EAAmBn6C,UAAYymB,EAAesG,GAC9CotB,EAAmBv3C,YACjBomB,GAA4B+D,KAC3BmtB,EAAa,MAAMlxB,GAA4BgE,MAA2B,IAC7EusB,EAAQp+B,YACN09B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DC,EACAb,IAIJ,MAAMc,EAA2Bv8C,SAAS4D,cAAc,QACxD24C,EAAyB5yC,MAAM0wB,WAAa,OAC5CkiB,EAAyBp6C,UAAYymB,EAAe2zB,EACpDA,EAAyBx3C,YACvBomB,GAA4BkE,KAC3BgtB,EAAa,MAAMlxB,GAA4BmE,MAAiC,IACnFosB,EAAQp+B,YACN09B,GACE,cACA,kCAAiCqB,EAAa,oBAAsB,IACpEE,EACAd,IAIJ,MAAMe,EACJvyC,KAAK2D,IACqC,KAAvC+kB,KAAKsG,QAAUvB,MAChB/H,GAA6BC,GAAoC,GAAK,IACpE,GACA6sB,EAAez8C,SAAS4D,cAAc,QAc5C,OAbA64C,EAAa9yC,MAAM0wB,WAAa,OAChCoiB,EAAat6C,UAAYymB,EAAe6zB,EACxCA,EAAa13C,YACXomB,GAA4B0E,GAAyB2sB,IACpDH,EAAa,MAAMlxB,GAA4B2E,GAAwB0sB,KAAkB,IAC5Fd,EAAQp+B,YACN09B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DI,EACAhB,IAGGC,EA0lBagB,IAGpBlB,EAAMl+B,YAAYw9B,GAAY,gBAAiB,UAC3C3zB,EAAUqqB,OAAOgB,OACnBgJ,EAAMl+B,YAxlBV,WAEE,MAAMm+B,EAAkB9oB,KAAKyW,SAAS,oBAClC,2CACA,6BAEEsS,EAAU17C,SAAS4D,cAAc,OACvC83C,EAAQv5C,UAAY,sBAEpB,MAAMw6C,EACJhqB,KAAKsG,QAAUvB,KAAuB1G,GAClC9H,EACAH,EACA6zB,EACJjqB,KAAKsG,QAAUvB,KAAuB1G,GAClCzE,IACGyE,IAAsB2B,KAAKsG,QAAUvB,OACpCN,MAEJ,GACAylB,EAAe78C,SAASq7C,yBACxByB,EAAe98C,SAAS4D,cAAc,QAK5C,GAJAk5C,EAAanzC,MAAM0wB,WAAa,OAChCyiB,EAAa36C,UAAYymB,EAAe+zB,EACxCG,EAAa/3C,YAAcomB,GAA4B6F,IACvD6rB,EAAav/B,YAAYw/B,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB/8C,SAAS4D,cAAc,SAC7Cm5C,EAAch4C,YAAc,KAAK63C,KACjCC,EAAav/B,YAAYy/B,GAE3BrB,EAAQp+B,YACN09B,GACE,cACA,2BACA6B,EACApB,IAIJ,MAAMuB,EACJrqB,KAAKsG,QAAUvB,KAAuBvG,GAClCjI,EACAH,EACAk0B,EACJtqB,KAAKsG,QAAUvB,KAAuBvG,GAClC5E,IACG4E,IAA2BwB,KAAKsG,QAAUvB,OACzCN,MAEJ,GACA8lB,EAAoBl9C,SAASq7C,yBAC7B8B,EAAoBn9C,SAAS4D,cAAc,QAKjD,GAJAu5C,EAAkBxzC,MAAM0wB,WAAa,OACrC8iB,EAAkBh7C,UAAYymB,EAAeo0B,EAC7CG,EAAkBp4C,YAAcomB,GAA4BgG,IAC5D+rB,EAAkB5/B,YAAY6/B,GACP,KAAnBF,EAAuB,CACzB,MAAMG,EAAqBp9C,SAAS4D,cAAc,SAClDw5C,EAAmBr4C,YAAc,KAAKk4C,KACtCC,EAAkB5/B,YAAY8/B,GAEhC1B,EAAQp+B,YACN09B,GACE,cACA,mCACAkC,EACAzB,IAIJ,MAAM4B,EACJ1qB,KAAKsG,QAAUvB,KAAuBpG,GAClCpI,EACAH,EACAu0B,EACJ3qB,KAAKsG,QAAUvB,KAAuBpG,GAClC/E,IACG+E,IAA4BqB,KAAKsG,QAAUvB,OAC1CN,MAEJ,GACAmmB,EAAmBv9C,SAASq7C,yBAC5BmC,EAAmBx9C,SAAS4D,cAAc,QAKhD,GAJA45C,EAAiB7zC,MAAM0wB,WAAa,OACpCmjB,EAAiBr7C,UAAYymB,EAAey0B,EAC5CG,EAAiBz4C,YAAcomB,GAA4BmG,IAC3DisB,EAAiBjgC,YAAYkgC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBz9C,SAAS4D,cAAc,SACjD65C,EAAkB14C,YAAc,KAAKu4C,KACrCC,EAAiBjgC,YAAYmgC,GAE/B/B,EAAQp+B,YACN09B,GACE,cACA,oCACAuC,EACA9B,IAIJ,MAAMiC,EACJ/qB,KAAKsG,QAAUvB,KAAuBjG,GAClCvI,EACAH,EACA40B,EACJhrB,KAAKsG,QAAUvB,KAAuBjG,GAClClF,IACGkF,IACEkB,KAAKsG,QAAUvB,OAChBN,MAEJ,GACAwmB,EAAwB59C,SAASq7C,yBACjCwC,EAAwB79C,SAAS4D,cAAc,QAKrD,GAJAi6C,EAAsBl0C,MAAM0wB,WAAa,OACzCwjB,EAAsB17C,UAAYymB,EAAe80B,EACjDG,EAAsB94C,YAAcomB,GAA4BsG,IAChEmsB,EAAsBtgC,YAAYugC,GACL,KAAzBF,EAA6B,CAC/B,MAAMG,EAAyB99C,SAAS4D,cAAc,SACtDk6C,EAAuB/4C,YAAc,KAAK44C,KAC1CC,EAAsBtgC,YAAYwgC,GAEpCpC,EAAQp+B,YACN09B,GACE,cACA,4CACA4C,EACAnC,IAIJC,EAAQp+B,YACN09B,GACE,cACA,wCACAh7C,SAASqgB,eACP,GAAG8K,GAA4B+F,GAAoB,SAAS/F,GAC1DkG,GAAyB,OAG7BoqB,IAIJC,EAAQp+B,YACN09B,GACE,cACA,iDACAh7C,SAASqgB,eACP,GAAG8K,GAA4BqG,GAA0B,SAASrG,GAChEqG,GAA0B,OAG9BiqB,IAIJ,MAAMsC,EAAc9zC,KAAK2D,IACN,GAAjB+kB,KAAK4E,UAAiB,GAAK,EAAI3H,GAChB,GAAf+C,KAAKsG,SAED+kB,EAAWlS,GACf,EACAiS,EACAluB,IACA,GACIouB,EAAgBnS,GACpB,EACAiS,EACAjuB,IACA,GAoCF,OAnCA4rB,EAAQp+B,YACN09B,GACE,cACA,wCACAh7C,SAASqgB,eACP,GAAG8K,GAA4B6yB,QAAe7yB,GAA4B8yB,MAE5ExC,IAIJC,EAAQp+B,YACN09B,GACE,cACA,oCACAh7C,SAASqgB,eACP,GAAG8K,GAA4B8F,SAA6B9F,GAC1DiG,OAGJ,8BAGJsqB,EAAQp+B,YACN09B,GACE,cACA,6CACAh7C,SAASqgB,eACP,GAAG8K,GAA4BoG,SAAmCpG,GAChEuG,OAGJ,8BAGGgqB,EAuYawC,IAGhBvrB,KAAKoB,QAAQ,gBAAgBU,iBAC/B+mB,EAAMl+B,YAAYw9B,GAAY,SAAU,WACpC3zB,EAAUqqB,OAAOiB,QACnB+I,EAAMl+B,YAtYZ,WACE,MAAMo+B,EAAU17C,SAAS4D,cAAc,OACvC83C,EAAQv5C,UAAY,uBAEpB,MAAMg8C,EACJxrB,KAAKsG,QAAUvB,KAAuBnI,GAAerG,EAAWH,EAC5Dq1B,EACJzrB,KAAKsG,QAAUvB,KAAuBnI,GAClChD,IACGgD,IAAgBoD,KAAKsG,QAAUvB,OAAyBN,MAE3D,GAEAinB,EAAiBr+C,SAASq7C,yBAC1BiD,EAAiBt+C,SAAS4D,cAAc,QAK9C,GAJA06C,EAAe30C,MAAM0wB,WAAa,OAClCikB,EAAen8C,UAAYymB,EAAeu1B,EAC1CG,EAAev5C,YAAcomB,GAA4BoE,IACzD8uB,EAAe/gC,YAAYghC,GACP,KAAhBF,EAAoB,CACtB,MAAMG,EAAkBv+C,SAAS4D,cAAc,SAC/C26C,EAAgBx5C,YAAc,KAAKq5C,KACnCC,EAAe/gC,YAAYihC,GAE7B7C,EAAQp+B,YACN09B,GACE,cACA,yCACAqD,EACA,+BAGJ3C,EAAQp+B,YACN09B,GACE,cACA,qCACAh7C,SAASqgB,eAAe8K,GAA4BqE,KACpD,+BAIJ,MAAMgvB,EACJ7rB,KAAKsG,QAAUvB,KAAsC,EAAfnI,GAClCrG,EACAH,EACA01B,EAAmBx0C,KAAK2D,IACY,KAAvC+kB,KAAKsG,QAAUvB,MACa,GAA7B/H,GAAkC,IAE9B+uB,EACJ/rB,KAAKsG,QAAUvB,KAAsC,EAAfnI,GAClChD,IACkB,EAAfgD,IAAoBoD,KAAKsG,QAAUvB,OAAyBN,MAE/D,GAEAunB,EAAuB3+C,SAASq7C,yBAChCuD,EAAuB5+C,SAAS4D,cAAc,QAKpD,GAJAg7C,EAAqBj1C,MAAM0wB,WAAa,OACxCukB,EAAqBz8C,UAAYymB,EAAe41B,EAChDI,EAAqB75C,YAAcomB,GAA2C,EAAfoE,IAC/DovB,EAAqBrhC,YAAYshC,GACP,KAAtBF,EAA0B,CAC5B,MAAMG,EAAwB7+C,SAAS4D,cAAc,SACrDi7C,EAAsB95C,YAAc,KAAK25C,KACzCC,EAAqBrhC,YAAYuhC,GAsCnC,OApCAnD,EAAQp+B,YACN09B,GACE,cACA,kDACA2D,EACA,+BAGJjD,EAAQp+B,YACN09B,GACE,cACA,8CACAh7C,SAASqgB,eAAe8K,GAAiD,EAArBqE,KACpD,+BAGJksB,EAAQp+B,YACN09B,GACE,cACA,qCACAh7C,SAASqgB,eAAe8K,GAA4BszB,IACpD,+BAGAhvB,IACFisB,EAAQp+B,YACN09B,GACE,cACA,mEACAh7C,SAASqgB,eACP,GAAG8K,GAA4BsE,QAAkBC,OAEnD,+BAICgsB,EA+ReoD,KAIlBnsB,KAAKoB,QAAQkM,KAAKxL,iBACpB+mB,EAAMl+B,YAAYw9B,GAAY,SAAU,WACpC3zB,EAAUqqB,OAAOkB,QACnB8I,EAAMl+B,YA/RZ,WACE,MAAMo+B,EAAU17C,SAAS4D,cAAc,OACvC83C,EAAQv5C,UAAY,uBAEpB,MAAM48C,EACJpsB,KAAKsG,QAA2B,GAAjBtG,KAAK4E,UAAiB,GAAKrO,EAAWH,EACjDi2B,EAAgBh/C,SAAS4D,cAAc,QAC7Co7C,EAAcr1C,MAAM0wB,WAAa,OACjC2kB,EAAc78C,UAAYymB,EAAem2B,EACzCC,EAAcj6C,YAAcomB,GAA6C,GAAjBwH,KAAK4E,UAAiB,IAC9EmkB,EAAQp+B,YACN09B,GACE,QACA,iDACAgE,IAIJ,MAAMC,EACJtsB,KAAKsG,QAA2B,GAAjBtG,KAAK4E,UAAiB,EAAIrO,EAAWH,EAChDm2B,EAAgBl/C,SAAS4D,cAAc,QAC7Cs7C,EAAcv1C,MAAM0wB,WAAa,OACjC6kB,EAAc/8C,UAAYymB,EAAeq2B,EACzCC,EAAcn6C,YAAcomB,GAA6C,GAAjBwH,KAAK4E,UAAiB,GAC9EmkB,EAAQp+B,YACN09B,GACE,QACA,iDACAkE,IAIJ,MAAMC,EACJxsB,KAAKsG,QAA2B,GAAjBtG,KAAK4E,UAAiB,GAAKrO,EAAWH,EACjDq2B,EAAgBp/C,SAAS4D,cAAc,QAC7Cw7C,EAAcz1C,MAAM0wB,WAAa,OACjC+kB,EAAcj9C,UAAYymB,EAAeu2B,EACzCC,EAAcr6C,YAAcomB,GAA6C,GAAjBwH,KAAK4E,UAAiB,IAC9EmkB,EAAQp+B,YACN09B,GACE,QACA,iDACAoE,IAIJ,MAAMC,EACJ1sB,KAAKsG,QAA2B,GAAjBtG,KAAK4E,UAAiB,IAAMrO,EAAWH,EAClDu2B,EAAgBt/C,SAAS4D,cAAc,QAW7C,OAVA07C,EAAc31C,MAAM0wB,WAAa,OACjCilB,EAAcn9C,UAAYymB,EAAey2B,EACzCC,EAAcv6C,YAAcomB,GAA6C,GAAjBwH,KAAK4E,UAAiB,KAC9EmkB,EAAQp+B,YACN09B,GACE,QACA,iDACAsE,IAGG5D,EAoOe6D,KAItB/D,EAAMl+B,YAAYw9B,GAAY,WAAY,aACtC3zB,EAAUqqB,OAAOmB,UACnB6I,EAAMl+B,YAnOV,WACE,MAAMo+B,EAAU17C,SAAS4D,cAAc,OACvC83C,EAAQv5C,UAAY,yBAEpB,MAAMq9C,EAAkBv1C,KAAKkE,MAC3BwkB,KAAK+Z,gBACH9a,GACEe,KAAKga,aACLrc,IACCqC,KAAKwU,YAAY,mBAAqBxU,KAAK2R,IAAI,iBAC5CpU,GACA,KAGVwrB,EAAQp+B,YACN09B,GACE,cACA,6BACAh7C,SAASqgB,eACP,GAAG8K,GAA4BwH,KAAK2K,eAAenS,GAA4Bq0B,MAEjF,+BAIJ,MAAMC,EAAax1C,KAAK6D,IACtB,EACA6kB,KAAKylB,oBAAoBoH,EAAkB,IACxC5tB,GACCe,KAAKga,aACLrc,IAEEqC,KAAKwU,YAAY,mBAAqBxU,KAAK2R,IAAI,kBAC3CpU,GAGFA,GACA,KAEJwvB,EAAkB1/C,SAASq7C,yBACjCqE,EAAgBpiC,YAAYtd,SAASqgB,eAAe8K,GAA4Bs0B,KAChF,MAAME,EAAmB3/C,SAAS4D,cAAc,SAChD+7C,EAAiB56C,YAAc,KAAKwnB,GAClCkzB,EAAa5tB,GACb,MAEF6tB,EAAgBpiC,YAAYqiC,GAC5BjE,EAAQp+B,YACN09B,GACE,cACA,wBACA0E,EACA,gCAIJhE,EAAQp+B,YACN09B,GACE,cACA,6BACAh7C,SAASqgB,eACP,GAAG8K,GAA4BwH,KAAKitB,oBAAoBz0B,GACtDq0B,EAAkB7sB,KAAK2K,SAAW3K,KAAKitB,kBAG3C,oCAIJlE,EAAQp+B,YACN09B,GACE,QACA,6CACAh7C,SAASqgB,eAAe8K,GAA4B4E,GAAkB,MAI1E,MAAM8vB,EAAWj0B,OAAOzE,EAAUspB,qBAClC,IAAK7kB,OAAO5I,MAAM68B,GAAW,CAC3B,MAAMC,EACJD,EACA51C,KAAKkE,MAAMwkB,KAAK+Z,gBAAgB/Z,KAAKga,aAAeha,KAAK2T,gBACvDwZ,EAAoB,IACtBpE,EAAQp+B,YACN09B,GACE,QACA,iDACAh7C,SAASqgB,eAAe8K,GAA4B20B,MAGxDpE,EAAQp+B,YACN09B,GACE,QACA,iDACAh7C,SAASqgB,eACPkM,GAAWuzB,EAAoB/vB,QAOzC,MAAMgwB,EAh5BR,SAAoBC,GAElB,IAAIC,EAASttB,KAAK4E,UAElB0F,KAE2C,IAAvCzK,GAAY,gBAAgBkB,SAC9BlB,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErCqU,KAEAkY,EAAStxB,GAETsO,MAGErL,IAA0B,KAASkW,GAAO,aAC1ClW,IAA0B,KAAYkW,GAAO,YAC7ClW,IAA0B,MAAekW,GAAO,gBAChDlW,IAA0B,MAAkBkW,GAAO,YACnDlW,IAA0B,MAAqBkW,GAAO,iBACtDlW,IAA0B,MAC5BkW,GAAO,kBACLlW,IAA0B,MAC5BkW,GAAO,iBACLlW,IAA0B,MAC5BkW,GAAO,cACLlW,IAA0B,MAC5BkW,GAAO,iBACLlW,IAA0B,MAC5BkW,GAAO,uBACLlW,IAA0B,MAC5BkW,GAAO,mBACLlW,IAA0B,MAC5BkW,GAAO,uBACLlW,IAA0B,MAC5BkW,GAAO,wBACLlW,IAA0B,MAC5BkW,GAAO,mBAEPlW,IAA0B,MAE1BkW,GAAO,WAEPlW,IACA,MAEAkW,GAAO,iBAEPlW,IACA,MAEAkW,GAAO,iCAETtV,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErCpF,GAAc0xB,EAEd,MAAMjV,EAAwB3c,GAE9B2Z,KAEAkC,KAEIc,IAA0B3c,IAC5B2Z,KAGF,MAAMmY,EAAWvxB,GAAesxB,EAKhC,OAFA3xB,GAAcqE,KAAK2K,SAEZ4iB,EA+zBYC,CAAWX,GACxBY,EAAYpgD,SAASq7C,yBAC3B+E,EAAU9iC,YAAYtd,SAASqgB,eAAe8K,GAA4B40B,KAC1E,MAAMriB,EAAWzzB,KAAKC,MAAO61C,EAAaptB,KAAK4E,UAAa,KAC5D,GAAI3L,OAAOC,SAAS6R,IAA0B,IAAbA,EAAgB,CAC/C,MAAM2iB,EAAargD,SAAS4D,cAAc,SAC1Cy8C,EAAWt7C,YAAc,KAAK24B,EAAW,kBACzC0iB,EAAU9iC,YAAY+iC,GAExB3E,EAAQp+B,YACN09B,GACE,cACA,qBACAoF,EACA,4BAIJ,MAAME,EAAkBr2C,KAAKkE,MAAMwkB,KAAK+Z,gBAAgB/Z,KAAKga,eACvD4T,EAAWt2C,KAAKkE,MACpBwkB,KAAK+Z,gBAAgB/Z,KAAKga,aAAeha,KAAK2T,gBAE1Cka,EAAUD,EAAWD,EAC3B,IAAK3tB,KAAK2R,IAAI,eAAgB,CAC5B,IAAImc,EAAS,EAAKF,EAAW,GACzBE,EAAS,IAAGA,GAAU,IAC1B,MAAMC,EAAaF,EAAUC,EACvBE,EAAaJ,EAAWE,EACxBG,EAAQ5gD,SAASq7C,yBACvBuF,EAAMtjC,YACJtd,SAASqgB,eACP,GAAGsgC,EAAW10B,sBAAsBy0B,EAAWz0B,sBAAsBw0B,OAGzE/E,EAAQp+B,YACN09B,GAAa,QAAS,qCAAsC4F,IAIhE,IAAKjuB,KAAK2R,IAAI,gBAAiB,CAC7B,IAAIuc,EAAW,IAAON,EAAW,IAC7BM,EAAW,IAAGA,GAAY,KAC9B,MAAMC,EAAeN,EAAUK,EACzBE,EAAeR,EAAWM,EAC1BG,EAAUhhD,SAASq7C,yBACzB2F,EAAQ1jC,YACNtd,SAASqgB,eACP,GAAG0gC,EAAa90B,sBAAsB60B,EAAa70B,sBAAsB40B,OAG7EnF,EAAQp+B,YACN09B,GAAa,QAAS,sCAAuCgG,IAIjE,IAAKruB,KAAK2R,IAAI,gBAAiB,CAC7B,IAAI2c,EAAc,OAAUV,EAAW,IACnCU,EAAc,IAAGA,GAAe,KACpC,MAAMC,EAAkBV,EAAUS,EAC5BE,EAAkBZ,EAAWU,EAC7BG,EAAaphD,SAASq7C,yBAC5B+F,EAAW9jC,YACTtd,SAASqgB,eACP,GAAG8gC,EAAgBl1B,sBAAsBi1B,EAAgBj1B,sBAAsBg1B,OAGnFvF,EAAQp+B,YACN09B,GAAa,QAAS,sCAAuCoG,IAIjE,OAAO1F,EAsDa2F,IAGhB1uB,KAAK6E,UAAY,IACnBgkB,EAAMl+B,YAAYw9B,GAAY,YAAa,UACvC3zB,EAAUqqB,OAAOoB,OAAO,CAC1B,MAAM0O,EAAathD,SAASq7C,yBAC5BiG,EAAWhkC,YACTtd,SAASqgB,eACP,GAAG8K,GAA4BmF,SAA0BnF,GACvDoF,SAIN,MAAMgxB,EAAUvhD,SAAS4D,cAAc,KACvC29C,EAAQx8C,YAAc,iBACtBw8C,EAAQp/C,UAAY,SACpBo/C,EAAQnL,QAAU,WAChB4D,MAEFsH,EAAWhkC,YAAYikC,GACvB/F,EAAMl+B,YACJ09B,GACE,QACA,kCACAsG,IAGJ,MAAME,EAAiBxhD,SAASq7C,yBAChCmG,EAAelkC,YACbtd,SAASqgB,eAAe,GAAG8K,GAA4BqF,GAAsB,SAE/E,MAAMixB,EAAczhD,SAAS4D,cAAc,KAC3C69C,EAAY18C,YAAc,qBAC1B08C,EAAYt/C,UAAY,SACxBs/C,EAAYrL,QAAU,WACa,OAA7B5lB,GAAsB,KACxBmC,KAAK8E,UAAUjH,GAAsB,IAAIypB,GAAK,IAElDuH,EAAelkC,YAAYmkC,GAC3BjG,EAAMl+B,YACJ09B,GACE,QACA,6DAC+B,OAA7BxqB,GAAsB,GAClBA,GAAsB,GACtB,UAENgxB,IAMR,IAAIE,GAAW,EACf,MAAMC,EAA0B,GAChC,IAAK,MAAMjgD,KAAKwD,OAAO6C,KAAK6hC,IACrBjX,KAAK2R,IAAIsF,GAAaloC,MACzBigD,EAAwBn+C,KAAKomC,GAAaloC,IAC1CggD,GAAW,GAGf,MAAME,EAA0B,GAChC,IAAK,MAAMlgD,KAAKwD,OAAO6C,KAAK8hC,IACrBlX,KAAK2R,IAAIuF,GAAcnoC,MAC1BkgD,EAAwBp+C,KAAKqmC,GAAcnoC,IAC3CggD,GAAW,GAGf,MAAMG,EAA0B,GAChC,IAAK,MAAMngD,KAAKwD,OAAO6C,KAAK+hC,IACrBnX,KAAK2R,IAAIwF,GAAWpoC,MACvBmgD,EAAwBr+C,KAAKsmC,GAAWpoC,IACxCggD,GAAW,GAGf,MAAMI,EAAoB,GAC1B,IAAK,MAAMpgD,KAAKwD,OAAO6C,KAAK4qB,KAAKovB,UAC1BpvB,KAAKwU,YAAYxU,KAAKovB,SAASrgD,MAClCogD,EAAkBt+C,KAAKmvB,KAAKovB,SAASrgD,IACrCggD,GAAW,GAGf,MAAMM,EAAkB,GACxB,IAAK,MAAMtgD,KAAKwD,OAAO6C,KAAK4qB,KAAKsvB,cAC1BtvB,KAAKwU,YAAYxU,KAAKsvB,aAAavgD,MACtCsgD,EAAgBx+C,KAAKmvB,KAAKsvB,aAAavgD,IACvCggD,GAAW,GAGf,MAAMQ,EAAoB,GAC1B,IAAK,MAAMxgD,KAAKwD,OAAO6C,KAAKgiC,IACrBpX,KAAKwU,YAAY4C,GAAWroC,MAC/BwgD,EAAkB1+C,KAAKumC,GAAWroC,IAClCggD,GAAW,GAGf,MAAMxa,EACJvU,KAAKwU,YAAY,mBAAqBxU,KAAK2R,IAAI,iBAC3C6d,EAAUxvB,KAAK2R,IAAI,eAuFzB,IArFoB,cAAhB3R,KAAK+R,QAA0Bgd,GAAYxa,GAAUib,KACvD3G,EAAMl+B,YAAYw9B,GAAY,kBAAmB,QAC7C3zB,EAAUqqB,OAAOqB,MACoB,IAAnC8O,EAAwBhgD,QAC1B65C,EAAMl+B,YACJ09B,GACE,QACA,gCACAE,GAAcyG,KAGmB,IAAnCC,EAAwBjgD,QAC1B65C,EAAMl+B,YACJ09B,GACE,QACA,gCACAE,GAAc0G,KAGmB,IAAnCC,EAAwBlgD,QAC1B65C,EAAMl+B,YACJ09B,GACE,QACA,gCACAE,GAAc2G,KAGa,IAA7BC,EAAkBngD,QACpB65C,EAAMl+B,YACJ09B,GACE,QACA,oCACAE,GAAc4G,KAGW,IAA3BE,EAAgBrgD,QAClB65C,EAAMl+B,YACJ09B,GACE,QACA,kCACAE,GAAc8G,KAGa,IAA7BE,EAAkBvgD,QACpB65C,EAAMl+B,YACJ09B,GACE,QACA,kCACAE,GAAcgH,KAIA,cAAhBvvB,KAAK+R,QACP8W,EAAMl+B,YACJ09B,GACE,QACA,kBACAh7C,SAASqgB,eAAe8K,GAA4B8E,OAGtDiX,GACFsU,EAAMl+B,YACJ09B,GACE,cACA,wBACAh7C,SAASqgB,eAAe8K,GAA4B+E,KACpD,6BAIFiyB,GACF3G,EAAMl+B,YACJ09B,GACE,QACA,yBACAh7C,SAASqgB,eACJpW,KAAKC,MAA2B,KAApB8lB,GAAe,IAAc,IAA5C,SAQZwrB,EAAMl+B,YAAYw9B,GAAY,gBAAiB,SAC3C3zB,EAAUqqB,OAAOsB,KAAM,CAsBzB,GArBA0I,EAAMl+B,YACJ09B,GACE,QACA,oCACE/wB,EAAY9C,EAAU6f,YAAc,GAChC,GAAG/c,EAAY9C,EAAU6f,sBACzB/c,EAAY9C,EAAU6f,YAAc,IACV,IAAzB7f,EAAU6f,WAAmB,UAAY,eAEhDhnC,SAASqgB,eAAe8K,GAA4BiM,KAAU,MAGlEokB,EAAMl+B,YACJ09B,GACE,QACA,0CACE9wB,EAAW/C,EAAUigB,iBACQ,IAA5BjgB,EAAUigB,cAAsB,UAAY,cAC/CpnC,SAASqgB,eAAe8K,GAA4ByF,GAAoB,MAGxE+B,KAAK2R,IAAI,mBAAoB,CAC/B,MAAMqG,EAAW,GACjB,IAAK,MAAMjpC,KAAKwD,OAAO6C,KAAK4hC,IACrBhX,KAAK2R,IAAIqF,GAASjoC,KACrBipC,EAASnnC,KAAKmmC,GAASjoC,IAGH,IAApBipC,EAAShpC,QACX65C,EAAMl+B,YACJ09B,GACE,QACA,+BACAE,GAAcvQ,KAatB,GATIxjB,EAAUupB,cACZ8K,EAAMl+B,YACJ09B,GACE,QACA,wBACAh7C,SAASqgB,eAAe8K,GAA4BwH,KAAKyvB,uBAI3DzvB,KAAK6Q,MAAMC,SAAU,CACvB,MAAMpL,EAAQr4B,SAAS4D,cAAc,QACrCy0B,EAAMlE,GAAK,uBACXkE,EAAMwL,UAAYlR,KAAKmR,QACV,GAAXnR,KAAKwH,KAAYxH,KAAKskB,SAAW,EAAItkB,KAAKoR,GAAgB,GAAXpR,KAAKwH,MACpD,GAEFqhB,EAAMl+B,YACJ09B,GAAa,QAAS,qBAAsB3iB,KAKlDvlB,EAAE,QAAQyhC,aAAaiH,EAAO1oC,EAAE,QAAQ8jB,WAAW,IAE/CzP,EAAUmpB,iBA3mIhB,WACE,IAAK,MAAM+R,KAAevvC,EAAE,QAAQ0vB,SAClC,GAAI6f,EAAY7f,SAAS,GACvB,GACwC,aAAtC6f,EAAY7f,SAAS,GAAGtjB,WACxB4R,GACA,CACA,MAAMwxB,EACJxxB,GAA6B1uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAC1DG,OAAS,EACRi1C,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMziB,GAAK,iCACXyiB,EAAMz0C,UAAY,UAClB,MAAMogD,EAAYviD,SAAS4D,cAAc,OACzC2+C,EAAUrjC,UAAY,qCAAqCojC,KACzD3vB,KAAK6vB,iBAAiB7gD,WACnBsI,KAAKkE,MACPm0C,EAA0B3vB,KAAK6vB,iBAAiB7gD,OAAU,SAE7Di1C,EAAMt5B,YAAYilC,GAClBF,EAAY/kC,YAAYs5B,GACxB,MAAMrN,EAAWvpC,SAAS4D,cAAc,OACxC2lC,EAASpnC,UAAY,mBACrBonC,EAASrqB,UAAY4R,GACrBuxB,EAAY/kC,YAAYisB,QACnB,GAA0C,aAAtC8Y,EAAY7f,SAAS,GAAGtjB,UAA0B,CAC3D,GAAI2R,GAAsB,CACxB,MAAM4xB,EACJ5xB,GAAqBzuB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAAGG,OAAS,EAC7Di1C,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMziB,GAAK,yBACXyiB,EAAMz0C,UAAY,UAClB,MAAMogD,EAAYviD,SAAS4D,cAAc,OACzC2+C,EAAUrjC,UAAY,mCAAmCujC,KACvD9vB,KAAK2J,eAAe,IAAI36B,OAASgxB,KAAK2J,eAAeomB,KAAK/gD,WACvDsI,KAAKkE,MACPs0C,GACE9vB,KAAK2J,eAAe,IAAI36B,OACvBgxB,KAAK2J,eAAeomB,KAAK/gD,QAC3B,SAEJi1C,EAAMt5B,YAAYilC,GAClBF,EAAY9N,aAAaqC,EAAOyL,EAAYzrB,WAAW,IACvD,MAAM2S,EAAWvpC,SAAS4D,cAAc,OACxC2lC,EAASpnC,UAAY,mBACrBonC,EAASrqB,UAAY2R,GACrBwxB,EAAY9N,aACVhL,EACAvpC,SAAS8gC,eAAe,0BAA0B6hB,aAGtD,GAAI5xB,GAA6B,CAC/B,MAAM6xB,EACJ7xB,GAA4B3uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GACzDG,OAAS,EACRi1C,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMziB,GAAK,gCACXyiB,EAAMz0C,UAAY,UAClB,MAAMogD,EAAYviD,SAAS4D,cAAc,OACzC2+C,EAAUrjC,UAAY,mCAAmC0jC,KACvDjwB,KAAK2J,eAAe4Z,OAAOv0C,WACxBsI,KAAKkE,MACPy0C,EAAwBjwB,KAAK2J,eAAe4Z,OAAOv0C,OAAU,SAEhEi1C,EAAMt5B,YAAYilC,GAClBF,EAAY/kC,YAAYs5B,GACxB,MAAMrN,EAAWvpC,SAAS4D,cAAc,OACxC2lC,EAASpnC,UAAY,mBACrBonC,EAASrqB,UAAY6R,GACrBsxB,EAAY/kC,YAAYisB,KAuiI9BsZ,GAuDJ,MAAMC,GAAe,CACnBrR,WAAY,cACZC,YAAa,cACbC,aAAc,eACd7T,QAAS,mCACTsU,WAAY,aACZC,SAAU,WACVC,cAAe,iBAIXyQ,GAA2B,CAC/BnR,oBAAqB,wBACrBC,eAAgB,gBAChBC,eAAgB,iBAChBC,gBAAiB,iBACjBC,iBAAkB,cAClBC,iBAAkB,iBAClBC,kBAAmB,WACnBC,qBAAsB,qBAuBxB,SAAS6Q,GAAiBzN,EAAQ3oB,GAChC,MAAMiK,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAI10B,UAAY,QAEhB00B,EAAIltB,MAAM6U,QAAU,MACpBqY,EAAIltB,MAAMouB,SAAW,OACrBlB,EAAIvZ,YAAYtd,SAASqgB,eAAe,GAAGuM,OAC3C,MAAMmuB,EAAO/6C,SAAS4D,cAAc,QAiBpC,OAhBAm3C,EAAKpxC,MAAM+U,OAAS,UACpBq8B,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKpxC,MAAMmG,OAAS,OACpBirC,EAAKpxC,MAAMkG,MAAQ,OACnBkrC,EAAKpxC,MAAMsU,aAAe,MAC1B88B,EAAKpxC,MAAMuW,UAAY,SACvB66B,EAAKpxC,MAAM4U,gBAAkB,UAC7Bw8B,EAAKpxC,MAAM2F,MAAQ,QACnByrC,EAAKpxC,MAAMouB,SAAW,OACtBgjB,EAAKpxC,MAAMsuB,cAAgB,SAC3B8iB,EAAKh2C,YAAcoiB,EAAUqqB,OAAO+D,GAAU,IAAM,IACpDwF,EAAK3E,QAAU,WACbyE,GAAatF,GACb5iB,KAAK+S,cAEP7O,EAAIvZ,YAAYy9B,GACTlkB,EAQT,SAASosB,GAAiB1N,GACxB,MAAM1e,EAAM72B,SAAS4D,cAAc,OAEnC,GADAizB,EAAI10B,UAAY,UACkB,SAA9BmyC,GAAaiB,GAAQxzC,KAAiB,CACxC,MAAMwI,EAAIvK,SAAS4D,cAAc,KAC7B0wC,GAAaiB,GAAQrB,QAAgC,IAAtB/sB,EAAUouB,GAC3ChrC,EAAEpI,UAAY,aAEdoI,EAAEpI,UAAY,SAEhBoI,EAAE4pB,GAAKwmB,GAA6BpF,EACpChrC,EAAE6rC,QAAU,YA/yChB,SAAsBb,GACpBpuB,EAAUouB,KAENpuB,EAAUouB,KAAYjB,GAAaiB,GAAQtB,MAAMtyC,QACnDwlB,EAAUouB,GAAU,EAChBjB,GAAaiB,GAAQrB,SACvBphC,EAAE6nC,GAA6BpF,GAAQpzC,UAAY,eAChD2Q,EAAE6nC,GAA6BpF,GAAQpzC,UAAY,cAEjB,IAA9BmyC,GAAaiB,GAAQ9uC,MAC9B6tC,GAAaiB,GAAQ9uC,OAGvBqM,EAAE6nC,GAA6BpF,GAAQr2B,UACrCo1B,GAAaiB,GAAQtB,MAAM9sB,EAAUouB,IACvC4D,KAiyCI+J,CAAa3N,IAEfhrC,EAAExF,YAAcuvC,GAAaiB,GAAQtB,MAAM9sB,EAAUouB,IACrD1e,EAAIvZ,YAAY/S,GAChB,MAAM0pC,EAAQj0C,SAAS4D,cAAc,SAGrC,OAFAqwC,EAAMlvC,YAAcuvC,GAAaiB,GAAQxX,KACzClH,EAAIvZ,YAAY22B,GACTpd,EAET,GAAkC,QAA9Byd,GAAaiB,GAAQxzC,KAAgB,CACvC,MAAMg0C,EAAS/1C,SAAS4D,cAAc,OACtCmyC,EAAO5zC,UAAY,YACnB,MAAMy0C,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMjtC,MAAMw5C,MAAQ,OACpBvM,EAAM13B,UAAYo1B,GAAaiB,GAAQxX,KACvCgY,EAAOz4B,YAAYs5B,GACnB,MAAMwM,EAAUpjD,SAAS4D,cAAc,OACvCw/C,EAAQjvB,GAAK,SAASohB,SACtB6N,EAAQz5C,MAAMw5C,MAAQ,QACtBC,EAAQlkC,UAAY,GAAGiI,EAAUouB,MACjCQ,EAAOz4B,YAAY8lC,GACnB,MAAMC,EAASrjD,SAAS4D,cAAc,SAiBtC,OAhBAy/C,EAAOlhD,UAAY,SACnBkhD,EAAOlvB,GAAK,SAASohB,IACrB8N,EAAO15C,MAAMwU,MAAQ,OACrBklC,EAAOthD,KAAO,QACdshD,EAAOz1C,IAAM,IACby1C,EAAOv1C,IAAM,MACbu1C,EAAOC,KAAO,IACdD,EAAOv+C,MAAQqiB,EAAUouB,GACzB8N,EAAOr9B,QAAU,WACf40B,GAAmBrF,IAErB8N,EAAOE,SAAW,WAChB3I,GAAmBrF,IAErBQ,EAAOz4B,YAAY+lC,GACnBxsB,EAAIvZ,YAAYy4B,GACTlf,EAET,GAAkC,QAA9Byd,GAAaiB,GAAQxzC,KAAgB,CACvC,MAAMg5C,EAAO/6C,SAAS4D,cAAc,QACpCm3C,EAAK54C,UAAY,SACjB44C,EAAKh2C,YAAc,GAAGuvC,GAAaiB,GAAQtB,SAC3Cpd,EAAIvZ,YAAYy9B,GAChB,MAAMyI,EAAQxjD,SAAS4D,cAAc,SACrC4/C,EAAMrvB,GAAKwmB,GAA6BpF,EACxCiO,EAAMrhD,UAAY,SAClBqhD,EAAMzhD,KAAO,OACbyhD,EAAMC,UAAW,EACjBD,EAAMl+C,aAAa,QAAS6hB,EAAUouB,IACtCiO,EAAM75C,MAAMkG,MAAQ,QACpBgnB,EAAIvZ,YAAYkmC,GAChB3sB,EAAIvZ,YAAYtd,SAASqgB,eAAe,MACxC,MAAMqjC,EAAc1jD,SAAS4D,cAAc,SAC3C8/C,EAAYvvB,GAAK,GAAGwmB,GAA6BpF,UACjDmO,EAAYvhD,UAAY,SACxBuhD,EAAY3hD,KAAO,OACnB2hD,EAAYp+C,aAAa,QAAS6hB,EAAUouB,IAC5C,MAAMhrC,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE6rC,QAAU,WACVzjB,KAAKgxB,OAAOD,EAAYE,UAAW,CACjC,CACE,OACA,WACEz8B,EAAU,GAAGouB,KAAYziC,EAAE,WAAgCyiC,WAAgBzwC,MAC3Eq0C,KACAxmB,KAAKkxB,cACLlxB,KAAK+S,eAGT,YAGJn7B,EAAExF,YAAc,OAChB8xB,EAAIvZ,YAAY/S,GAChB,MAAM0pC,EAAQj0C,SAAS4D,cAAc,SAGrC,OAFAqwC,EAAMlvC,YAAcuvC,GAAaiB,GAAQxX,KACzClH,EAAIvZ,YAAY22B,GACTpd,EAET,GAAkC,UAA9Byd,GAAaiB,GAAQxzC,KAAkB,CACzC80B,EAAI10B,UAAY,GAChB,IAAK,IAAIT,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IAAK,CACtC,MAAMoiD,EAAW9jD,SAAS4D,cAAc,OACxCkgD,EAAS3hD,UAAY,UACrB,MAAMqhD,EAAQxjD,SAAS4D,cAAc,SACrC4/C,EAAMrvB,GAAK5K,EAAO7nB,GAClB8hD,EAAM75C,MAAMkG,MAAQ,OACpB2zC,EAAMl+C,aAAa,QAAS6hB,EAAUoC,OAAOA,EAAO7nB,KACpDoiD,EAASxmC,YAAYkmC,GAOrB,IAAI/iD,GAAQ+iD,EAAO,CAAE1hC,MAAM,EAAMnQ,SAAU,QAAS4P,QANrC,WACb4F,EAAUoC,OAAOnpB,KAAKmD,cAAc4wB,IAAM/zB,KAAK8gB,cAC/CwyB,KACAyF,KACAxmB,KAAK+S,gBAGP,MAAMuO,EAAQj0C,SAAS4D,cAAc,SACrCqwC,EAAMlvC,YAAcuvC,GAAa/qB,OAAOwU,KAAKxU,EAAO7nB,IACpDoiD,EAASxmC,YAAY22B,GACrBpd,EAAIvZ,YAAYwmC,GAGlB,OADApJ,KAAkB15C,OACX61B,EAET,GAAkC,aAA9Byd,GAAaiB,GAAQxzC,KAAqB,CAC5C,MAAMg5C,EAAO/6C,SAAS4D,cAAc,QACpCm3C,EAAK54C,UAAY,SACjB44C,EAAKh2C,YAAc,GAAGuvC,GAAaiB,GAAQtB,SAC3Cpd,EAAIvZ,YAAYy9B,GAChB,MAAMyI,EAAQxjD,SAAS4D,cAAc,SACrC4/C,EAAMrvB,GAAKwmB,GAA6BpF,EACxCiO,EAAMrhD,UAAY,SAClBqhD,EAAMzhD,KAAO,SACbyhD,EAAM1+C,MAAQqiB,EAAUouB,GACxBiO,EAAM51C,IAAM0mC,GAAaiB,GAAQ3nC,IACjC41C,EAAM11C,IAAMwmC,GAAaiB,GAAQznC,IACjC01C,EAAMx9B,QAAU,WACV5lB,KAAK0E,MAAQ1E,KAAK0N,KAAKvL,QAAQ+pB,IAAI,QACvCnF,EAAUouB,GAAUn1C,KAAK0E,MACzBq0C,KACA7F,MAEFzc,EAAIvZ,YAAYkmC,GAChB3sB,EAAIvZ,YAAYtd,SAASqgB,eAAe,MACxC,MAAM4zB,EAAQj0C,SAAS4D,cAAc,SAGrC,OAFAqwC,EAAMlvC,YAAcuvC,GAAaiB,GAAQxX,KACzClH,EAAIvZ,YAAY22B,GACTpd,EAET,OAAOA,EAyTT,SAASktB,GAAUh9C,GACjB,GAA2B,IAAvBogB,EAAUmS,UAA4C,IAA1BnS,EAAUoS,YAAmB,CAC3D,MAAMyqB,EAAiBx1C,SAASsE,EAAE,cAAcnJ,MAAMmG,OAAQ,IAC9D6iB,KAAKsxB,QAAUD,EACfj9C,IACA4rB,KAAKsxB,QAAUD,OAEfj9C,IAuBJ,SAASm9C,KAEPv7B,EAAgBgD,SAAWA,SAE3BA,SAAWR,GAEXxC,EAAgBof,eAAiBpV,KAAKoV,eACtCpV,KAAKoV,eAAiB,WACpBpf,EAAgBof,iBAChBtZ,GAAY,EACZoE,GAAcsT,KAAKC,MACnB1T,GAAiByT,KAAKC,OAGxBzd,EAAgB4R,QAAU,GAC1B5R,EAAgB4R,QAAQrhB,KAAOyZ,KAAK4H,QAAQrhB,KAC5CyP,EAAgB4R,QAAQ4pB,QAAU,IAAIhhD,SACpC,UAAUwvB,KAAK4H,QAAQrhB,KAAK/O,WAAW5B,MAAM,QAAQ6C,KAAK,kBAD1B,GAGlCunB,KAAK4H,QAAQrhB,KAAO,SAAUkrC,EAAMx3B,EAAMpI,GACxCmE,EAAgB4R,QAAQ4pB,QAAQC,EAAMx3B,EAAMpI,IAG9CmE,EAAgB4R,QAAQ8pB,OAAS1xB,KAAK4H,QAAQ8pB,OAC9C17B,EAAgB4R,QAAQ+pB,UAAY,IAAInhD,SACtC,UAAUwvB,KAAK4H,QAAQ8pB,OACpBl6C,WACA5B,MAAM,SACN6C,KAAK,mBAJ0B,GAMpCunB,KAAK4H,QAAQ8pB,OAAS,WACpB17B,EAAgB4R,QAAQ+pB,YA9H5B,WACE,GAA4B,UAAxB3xB,KAAK4H,QAAQ/V,OAAoB,CACnC,IAAI+/B,EAAa,EAEa,IAA5Bp9B,EAAU6a,eACgB,IAA1B7a,EAAU2S,aAC0B,OAApChnB,EAAE,gCAEFyxC,EAAazxC,EAAE,8BAA8BpF,aAAe,GAE9DilB,KAAK4H,QAAQiqB,IAAI76C,MAAMsC,IAAM,GAAGhC,KAAK2D,IACnCY,SAASmkB,KAAK4H,QAAQiqB,IAAI76C,MAAMsC,IAAK,IACrC6G,EAAE,QAAQpF,aACRoF,EAAE,UAAUpF,aACZilB,KAAK4H,QAAQkqB,GAAG/2C,aAChB62C,EACA,SA+GJG,IAGF/7B,EAAgBg8B,gBAAkBhyB,KAAKgyB,gBACvChyB,KAAKgyB,gBAAkB,WACrBZ,GAAUp7B,EAAgBg8B,kBAG5Bh8B,EAAgBi8B,cAAgBjyB,KAAKiyB,cACrCjyB,KAAKiyB,cAAgB,WACnBb,GAAUp7B,EAAgBi8B,gBAI5B9xC,EAAE,aAAazN,oBAAoB,QAASstB,KAAKkyB,aAAa,GAC9D/xC,EAAE,aAAahS,iBACb,SACA,WACEijD,GAAUpxB,KAAKkyB,gBAEjB,GAGFl8B,EAAgB8qB,gBAAkB9gB,KAAK8gB,gBACvC9gB,KAAK8gB,gBAAkB,WACrB9qB,EAAgB8qB,kBAtHpB,WACE/qB,EAAuB,GACvB,IAAK,MAAMhnB,KAAKwD,OAAO6C,KAAK4qB,KAAK6D,iBACM,OAAjC1jB,EAAE,UAAUpR,KAAK40C,cACnB5tB,EAAqBhnB,GAAKoR,EAAE,UAAUpR,KAAK40C,YAC3CxjC,EAAE,UAAUpR,KAAK40C,YAAc,WACxB3jB,KAAKmyB,YACRnyB,KAAKoyB,WAAW3kD,MAChBuyB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,IAAK,GAAGhhC,OAE/B,SAEFixB,KAAK4H,QAAQ6f,YAuGnB4K,GACAryB,KAAKoV,kBAGPpf,EAAgBs8B,aAAetyB,KAAKsyB,aAKpCtyB,KAAKsyB,aAAe,SAAUlyB,KAEzB5L,EAAUoqB,cACX5e,KAAKwQ,YAAYpQ,GAAMiG,UAAYrG,KAAKsG,UACtB,IAAlBtG,KAAK4C,UAEL5M,EAAgBs8B,aAAalyB,IAIjCpK,EAAgBu8B,mBAAqBvyB,KAAKuyB,mBAM1CvyB,KAAKuyB,mBAAqB,SAAUC,GAClCx8B,EAAgBu8B,mBAAmBC,GA1gEvC,SAAqBA,GACnB,GAAiC,IAA7Bh+B,EAAUipB,eAAsB,CAClC,MAAOgV,EAAUC,GA9DrB,SAA6BF,GAC3BloB,KAGwBnqB,EAAE,iBAAiB0vB,SAAS,GAAGtjB,UAAU+1B,SAC/D,aAEmBzmB,GAAiB22B,EACjC52B,GAAgB42B,EAGrB,IAAI7wB,EAAQ,EACZ,GACE/F,KAAkBM,IAClBL,KAAmBM,GAEnB,IAAK,IAAIptB,EAAIixB,KAAKwQ,YAAYxhC,OAAS,EAAGD,GAAK,IAAKA,EAClD,GAAIixB,KAAKwQ,YAAYzhC,EAAI,GAAGqzB,OAAS,EAAG,CACtC,MAAM8iB,EAAkBtlB,GAAWI,KAAKwQ,YAAYzhC,GAAGuE,MAAMA,KAC7DssB,GAAWslB,GAAiB9iB,QAAU,EACtC9G,IAAqB,EACrBqG,EACE/B,GAAWslB,GAAiBhjB,UAC5BlC,KAAKwC,eACHlrB,KAAK6D,IACH,EACAykB,GAAWslB,GAAiB9iB,OAC1B,EACAxC,GAAWslB,GAAiB/iB,MAEpCR,EAAQ3B,KAAKyC,oBAAoB7C,GAAWslB,GAAkBvjB,GAC9DA,EAAQrqB,KAAKoL,KAAKif,GAClB,MAKN,MAAMyW,EAAwB3c,GAO9B,OANA2Z,KAEAkC,KACIc,IAA0B3c,IAC5B2Z,KAEK,CAACpZ,GAAegE,KAAK4E,UAAWjD,GAkBHgxB,CAAoBH,GAChDI,EAAgBh5B,GACpB84B,GAAiBD,EAAWzyB,KAAK4E,YAE7BiuB,EAAqBr6B,GAA4Bi6B,EAAWzyB,KAAK4E,WAEvEzkB,EAAE,kBAAkBnJ,MAAM87C,UAAY,OACtC3yC,EAAE,kBAAkBnJ,MAAMmuB,OAAS,MACnChlB,EAAE,kBAAkBwK,YAAYtd,SAAS4D,cAAc,QAAQzB,UAC7D,OACF,MAAM00B,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMk0B,SAAW,QACrBhH,EAAIltB,MAAMuW,UAAY,SACtB2W,EAAI9xB,YAAc,wCAAwComB,GACxDi6B,OACII,sBACN1yC,EAAE,kBAAkBwK,YAAYuZ,GAChC,MAAM6uB,EAAO1lD,SAAS4D,cAAc,OACpC8hD,EAAK/7C,MAAMk0B,SAAW,QACtB6nB,EAAK/7C,MAAMuW,UAAY,SACvBwlC,EAAK3gD,YAAc,gBAAgBwgD,yBACnCzyC,EAAE,kBAAkBwK,YAAYooC,IAo/DhCC,CAAYR,IAGdx8B,EAAgBi9B,kBAAoBjzB,KAAKizB,kBAIzCjzB,KAAKizB,kBAAoB,SAAUC,GACjCl9B,EAAgBi9B,kBAAkBC,GAp/DtC,WAEE,GAEwE,QADrE/yC,EAAE,gBAAgB3Q,UAAUC,MAAM,aACjC0Q,EAAE,gBAAgB0vB,SAAS,GAAG74B,MAAMqB,WAAW5I,MAAM,WAEvD,IAAK,IAAIV,EAAI,EAAGA,EAAIoR,EAAE,gBAAgB8jB,WAAWj1B,OAAQD,IACL,cAA9CoR,EAAE,gBAAgB8jB,WAAWl1B,GAAGS,YAClC2Q,EAAE,gBAAgB0vB,SAAS9gC,GAAG40C,YAAc,WAC1CzB,KACAliB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACXpG,EAAE,gBACF,mDAAmDkc,WACnD,QAEF2D,KAAK4H,QAAQ6f,UAEftnC,EAAE,gBAAgB0vB,SAAS9gC,GAAG+0C,WAAa,WACzC9jB,KAAK4H,QAAQurB,WAAa,IAk+DhCC,IAGFp9B,EAAgB+c,WAAa/S,KAAK+S,WAClC/S,KAAK+S,WAAa,gBAEwB,IAA9BgV,KAAmB1oC,aACiB,IAApC0oC,KAAmB1oC,OAAOC,QAElC0W,EAAgB+c,aAvXtB,WACE,MAAMkR,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMz0C,UAAY,QAEE,UAAhBwwB,KAAKgR,QACPiT,EAAM7xC,YAAc,0BApExB,SAAqB6xC,GACnB,MAAMwE,EAAOp7C,SAASq7C,yBACtBD,EAAK99B,YAAYs5B,GAEjB,IAAK,MAAM7C,KAAS7uC,OAAO6C,KAAK+6C,IAAe,CAC7C,MAAMkD,EAAchD,GAAiBjP,EAAO+O,GAAa/O,IAEzD,GADAqH,EAAK99B,YAAY0oC,GACb7+B,EAAUqqB,OAAOuC,GAGnB,GAAc,iBAAVA,EACF,IAAK,MAAMkS,KAAY/gD,OAAO6C,KAAKg7C,IAA2B,CAC5D,MAAMmD,EAAiBlD,GACrBiD,EACAlD,GAAyBkD,IAK3B,GAHAC,EAAev8C,MAAMouB,SAAW,OAChCmuB,EAAev8C,MAAM6U,QAAU,MAC/B48B,EAAK99B,YAAY4oC,GACb/+B,EAAUqqB,OAAOyU,GACnB,IAAK,MAAMhrC,KAAUq5B,GACfA,GAAar5B,GAAQ84B,QAAUkS,GACjC7K,EAAK99B,YAAY2lC,GAAiBhoC,SAK1C,IAAK,MAAMA,KAAU/V,OAAO6C,KAAKusC,IAC3BA,GAAar5B,GAAQ84B,QAAUA,GACjCqH,EAAK99B,YAAY2lC,GAAiBhoC,IAM5C,MAAMkrC,EAASnmD,SAAS4D,cAAc,OACtCuiD,EAAOhkD,UAAY,UACnB,MAAMikD,EAAYpmD,SAAS4D,cAAc,KACzCwiD,EAAUjkD,UAAY,SACtBikD,EAAUhQ,QAAU,WAClByD,GAAW/L,KAEbsY,EAAUrhD,YAAc,kBACxBohD,EAAO7oC,YAAY8oC,GACnBhL,EAAK99B,YAAY6oC,GAEjBrzC,EAAE,QAAQ8jB,WAAW,GAAG2d,aACtB6G,EACAtoC,EAAE,QAAQ8jB,WAAW,GAAGA,WACtB9jB,EAAE,QAAQ8jB,WAAW,GAAGA,WAAWj1B,OAAS,IAoB9C0kD,CAAYzP,IACa,UAAhBjkB,KAAKgR,OACVxc,EAAUyc,QACZgT,EAAM7xC,YAAc,4BACpBw2C,GAAa3E,IAEU,QAAhBjkB,KAAKgR,SACdiT,EAAM7xC,YAAc,kBAtVxB,SAAqB6xC,GACnB,MAAM0P,EAAOtmD,SAAS4D,cAAc,OACpC0iD,EAAKnkD,UAAY,aAEjB,MAAM44C,EAAO/6C,SAAS4D,cAAc,QAmBpC,GAlBAm3C,EAAKpxC,MAAM+U,OAAS,UACpBq8B,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKpxC,MAAMmG,OAAS,OACpBirC,EAAKpxC,MAAMkG,MAAQ,OACnBkrC,EAAKpxC,MAAMsU,aAAe,MAC1B88B,EAAKpxC,MAAMuW,UAAY,SACvB66B,EAAKpxC,MAAM4U,gBAAkB,UAC7Bw8B,EAAKpxC,MAAM2F,MAAQ,QACnByrC,EAAKpxC,MAAMouB,SAAW,OACtBgjB,EAAKpxC,MAAMsuB,cAAgB,SAC3B8iB,EAAKh2C,YAAcoiB,EAAUqqB,OAAOuB,QAAU,IAAM,IACpDgI,EAAK3E,QAAU,WACbyE,GAAa,WACbloB,KAAK+S,cAEPkR,EAAMt5B,YAAYy9B,GAClBuL,EAAKhpC,YAAYs5B,GAEbzvB,EAAUqqB,OAAOuB,QAAS,CAC5B,MAAMwT,EAAcvmD,SAAS4D,cAAc,OAC3C2iD,EAAYrnC,UAnyQO,siBAoyQnBonC,EAAKhpC,YAAYipC,GACjB,MAAMC,EAAQxmD,SAAS4D,cAAc,OACrC4iD,EAAMtnC,UA5xQiB,gwBA6xQvBonC,EAAKhpC,YAAYkpC,GAGnB,MAAMC,EAAO3zC,EAAE,QAAQ0vB,SAAS,GAChCikB,EAAKlS,aAAa+R,EAAMG,EAAKjkB,SAAS,IAsTpCkkB,CAAY9P,IA0WV+P,KAIJh+B,EAAgBmb,QAAUnR,KAAKmR,QAC/Bpa,EAAY,SAAU8C,EAAMo6B,GAC1B,OAAIh7B,OAAO5I,MAAMwJ,IAASA,GAAQ,EACzB7D,EAAgBmb,QAAQtX,EAAMo6B,GAChCr6B,GAAWC,EAAOmG,KAAKwH,IAAK,IAGrCxR,EAAgBk+B,MAAQl0B,KAAKk0B,MAC7Bl0B,KAAKk0B,MAAQ,WACXl+B,EAAgBk+B,QAGhB,IAAIjQ,EAAQ,iBACQ,UAAhBjkB,KAAK+R,SAAoBkS,EAAQ,gBACrC1rB,GAAQ,GAAGyH,KAAKskB,SAAW,cAAgB,KAAK9rB,GAA4BwH,KAAKsG,YAC9D,IAAjBtG,KAAKsG,QAAgB,SAAW,eAC5B2d,IA9WV,WACE,GAAIjkB,KAAKskB,UAAgC,IAApB9vB,EAAU+D,MAC7BlrB,SAAS42C,MAAQ1rB,QACZ,GAAwB,IAApB/D,EAAU+D,MAAa,CAChC,IAEI47B,EACAC,EACAC,EAJAC,GAAQ,EACRC,GAAQ,EAORJ,EAFAh1B,GACEA,GAA0B8hB,MAClB,KAAK3pC,KAAKoL,KAAKyc,GAA0B4mB,KAAO/lB,KAAKwH,QAErD,KAAKlwB,KAAKoL,KAAKyc,GAA0B4mB,KAAO/lB,KAAKwH,QACvDxH,KAAK2R,IAAI,uBAOJ,OANL,IACR1Y,OAAO9Y,EAAE,sBAAsB/N,aAAe,EAAI,IAAM,KACvDkF,KAAKoL,MACLsd,KAAKwR,aAAaC,OAAOI,QAAU7R,KAAKwR,aAAaC,OAAO5X,MAC3DmG,KAAKwH,QAIPnS,IACFi/B,GAAQ,EACRF,EAAU,OAGQ,cAAhBp0B,KAAK+R,SACPwiB,GAAQ,EAENF,EADEj/B,EACQ,KAAK9d,KAAKoL,KAAK0c,GAAsB2mB,KAAO/lB,KAAKwH,QAEjD,IACRvO,OAAO9Y,EAAE,uBAAuB/N,aAAe,EAAI,IAAM,KACxDkF,KAAKoL,MACLsd,KAAKwR,aAAaQ,SAASH,QAC1B7R,KAAKwR,aAAaQ,SAASnY,MAC3BmG,KAAKwH,SAMb,IAAIr3B,EAAMooB,GACY,MAAlBpoB,EAAI2L,OAAO,KACb3L,EAAMA,EAAI61B,UAAU71B,EAAIqkD,YAAY,KAAO,IAE7CnnD,SAAS42C,MAAQ,GACfkQ,GAAWG,EAAQF,EAAU,KAAOG,EAAQF,EAAU,OACpDlkD,SACC,GAAwB,IAApBqkB,EAAU+D,MAAa,CAChC,IAAIpoB,EAAM,GACNskD,GAAQ,EACRt1B,KACFs1B,GAAQ,EACJt1B,GAA0B8hB,MAC5B9wC,GAAO,KAAKmH,KAAKoL,KAAKyc,GAA0B4mB,KAAO/lB,KAAKwH,QACzDr3B,GAAO,KAAKmH,KAAKoL,KAAKyc,GAA0B4mB,KAAO/lB,KAAKwH,SAE/DnS,IACFo/B,GAAQ,EACRtkD,GAAO,OAEW,cAAhB6vB,KAAK+R,QAA0B3c,IACjCjlB,GAAO,KAAKmH,KAAKoL,KAAK0c,GAAsB2mB,KAAO/lB,KAAKwH,QACxDitB,GAAQ,GAENA,IAAOtkD,GAAO,OAClB,IAAI8zC,EAAQ,iBACQ,UAAhBjkB,KAAK+R,SAAoBkS,EAAQ,gBACrC9zC,GAAO8zC,EACP52C,SAAS42C,MAAQ9zC,GAsSjBukD,GAxRJ,WACE,MAAMlP,EAAgBluC,KAAK6D,IACzB,EACA6kB,KAAKylB,oBACHnuC,KAAKkE,MAAMwkB,KAAK+Z,gBAAgB/Z,KAAKga,aAAeha,KAAK2T,gBACvD,IAED3T,KAAK2T,cAAgB3T,KAAKga,eAGzB/Z,EAAYD,KAAKmR,SACnBqC,KAAKC,MAAQzT,KAAKC,WAAa,IAAQD,KAAKwH,KAC7C,GAEH,IAAIr3B,EAAM,GACVA,GAAO,kCACS,KAAd8vB,EAAmB,gBAAkBA,aAEvC9vB,GAAO,2BACH6vB,KAAK2K,SAAW,IAClBx6B,GAAO,uCAAuCqoB,GAC5CwH,KAAK2K,2BACYnS,GAA4BwH,KAAK2K,cACpDx6B,GAAO,4BAGPA,GADEgrB,GAAyB,EACpB,6CACAA,GAAyB,EAE9B,6GAEK,uCAAuC3C,GAC5C2C,6BACyB3C,GACzB2C,uBACmB3C,GACnB2C,mCAEJhrB,GAAO,2BACPA,GAAO,eAAeqoB,GACpBgtB,8CAEFr1C,GACEqkB,EAAUkpB,oBACN,oCAAoCre,iDAAwE7G,GAC1G4E,GACA,iDAEF,GAENjd,EAAE,iBAAiBoM,UAAYpc,EAyO7BwkD,IAmDJ,SAASC,KACPnS,KACA7H,KACAM,KAGAtmB,EAAeriB,OAAO6C,KAAK4qB,KAAKwkB,MAAMx1C,OAz6EtC4mB,EAAUvoB,SAAS4D,cAAc,SACjC2kB,EAAQxmB,KAAO,WACfwmB,EAAQ4L,GAAK,QAEbn0B,SAASwnD,KAAKlqC,YAAYiL,GAxgL5B,WACE,MAAMsQ,EAAS74B,SAAS4D,cAAc,OACtCi1B,EAAO1E,GAAK,WACZ0E,EAAOlvB,MAAMmG,OAAS,OACtB+oB,EAAOlvB,MAAMkG,MAAQ,OACrBgpB,EAAOlvB,MAAMgI,SAAW,WACxBknB,EAAOlvB,MAAMqV,QAAU,OACvB6Z,EAAOlvB,MAAM4U,gBAAkB,UAC/Bsa,EAAOlvB,MAAM8V,gBAAkB,+CAC/BoZ,EAAOlvB,MAAM89C,UAAY,kBACzB5uB,EAAOlvB,MAAMoV,SAAW,OACxB8Z,EAAOlvB,MAAM+9C,WACX,uDAEF,MAAMC,EAAQ9uB,EAAOvb,YAAYtd,SAAS4D,cAAc,UACxD+jD,EAAMh+C,MAAMkG,MAAQ,OACpB83C,EAAMh+C,MAAMuW,UAAY,SACxBynC,EAAMh+C,MAAMoW,WAAa,SACzB,MAAM6nC,EAAQD,EAAMrqC,YAAYtd,SAAS4D,cAAc,UAEjDikD,EAAW,SAAUj7B,EAAMtd,GAC/B,MAAMw4C,EAAK9nD,SAAS4D,cAAc,MAIlC,OAHAkkD,EAAGn+C,MAAMuW,UAAY,QACrB4nC,EAAG3lD,UAAYymB,EAAetZ,EAC9Bw4C,EAAG/iD,YAAc6nB,EACVk7B,GAEH/lD,EAAO6lD,EAAMtqC,YAAYtd,SAAS4D,cAAc,OACtD7B,EAAK4H,MAAM0wB,WAAa,OACxBt4B,EAAKub,YAAYuqC,EAAS,aAAsC7+B,IAClD4+B,EAAMtqC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYuqC,EAAS,eAAgB/+B,IAChC8+B,EAAMtqC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYuqC,EAAS,iBAAkB/+B,IAC7B8+B,EAAMtqC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYuqC,EAAS,YAAa/+B,IAEvChW,EAAE,WAAWwK,YAAYub,GAEzB,IAAK,MAAMn3B,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAC/BwE,GAA2B72B,GAy4P7BqmD,GAxvPF,WACE,MAAMzuB,EAAWt5B,SAAS4D,cAAc,OACxC01B,EAASnF,GAAK,aACdmF,EAAS3vB,MAAMgI,SAAW,WAC1B2nB,EAAS3vB,MAAMqV,QAAU,OACzBsa,EAAS3vB,MAAMmG,OAAS,MACxBwpB,EAAS3vB,MAAMouB,SAAW,OAC1BuB,EAAS3vB,MAAM0wB,WAAa,OAC5Bf,EAAS3vB,MAAM4U,gBAAkB,QAGjC,MAAMypC,EAAerwB,GAAY,eAAgB,cAAe,CAC9D,CAAExD,GAAI,qBAAsB7kB,MAAO8Z,GACnC,CAAE+K,GAAI,kBAAmB7kB,MAAO6Z,KAElCmQ,EAAShc,YAAY0qC,GAGrB,MAAMC,EAAgBtwB,GAAY,gBAAiB,gBAAiB,CAClE,CAAExD,GAAI,sBAAuB7kB,MAAO8Z,GACpC,CAAE+K,GAAI,mBAAoB7kB,MAAO2Z,KAEnCqQ,EAAShc,YAAY2qC,GACrB,MAAMC,EAAqBloD,SAAS4D,cAAc,OAClDskD,EAAmB/zB,GAAK,uBACxBmF,EAAShc,YAAY4qC,GAErBp1C,EAAE,WAAWwK,YAAYgc,GA8tPzB6uB,GAxgFF,WACE,MAAMC,EAAapoD,SAAS4D,cAAc,OAC1CwkD,EAAWj0B,GAAK,eAChBi0B,EAAWz+C,MAAMkG,MAAQ,OACzBu4C,EAAWz+C,MAAM4U,gBAAkB,QACnC6pC,EAAWz+C,MAAMuW,UAAY,SAC7BkoC,EAAWz+C,MAAM0wB,WAAa,OAC9B+tB,EAAWz+C,MAAMqV,QAAU,OAC3BopC,EAAWz+C,MAAMyU,OAAS,KAC1BgqC,EAAW3R,WAAa,WACtB9jB,KAAK4H,QAAQ7hB,QAGf,MAAMklB,EAAc59B,SAAS4D,cAAc,OAC3Cg6B,EAAYtgB,YA7Dd,WACE,MAAM+qC,EAASroD,SAAS4D,cAAc,OACtCykD,EAAO1+C,MAAMk0B,SAAW,QACxBwqB,EAAO1+C,MAAM8wB,aAAe,MAC5B,MAAMmc,EAAQ52C,SAAS4D,cAAc,OACrCgzC,EAAMz0C,UAAY,OAClBy0C,EAAMjtC,MAAM8wB,aAAe,MAC3Bmc,EAAM7xC,YAAc,SACpBsjD,EAAO/qC,YAAYs5B,GAEnB,MAAM0R,EAAa,SAAUh5C,EAAOsd,GAClC,MAAMiK,EAAM72B,SAAS4D,cAAc,OACnCizB,EAAIltB,MAAMsuB,cAAgB,SAC1B,MAAM8iB,EAAO/6C,SAAS4D,cAAc,QAQpC,OAPAm3C,EAAK54C,UAAY0mB,EAAevZ,EAChCyrC,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKpxC,MAAMmG,OAAS,OACpBirC,EAAKpxC,MAAMkG,MAAQ,OACnBkrC,EAAKpxC,MAAMquB,YAAc,MACzBnB,EAAIvZ,YAAYy9B,GAChBlkB,EAAIvZ,YAAYtd,SAASqgB,eAAeuM,IACjCiK,GAoBT,OAjBAwxB,EAAO/qC,YAAYgrC,EAAWx/B,EAAW,iCACzCu/B,EAAO/qC,YAAYgrC,EAAWv/B,EAAY,6BAC1Cs/B,EAAO/qC,YACLgrC,EACEt/B,EACA,uDAGJq/B,EAAO/qC,YACLgrC,EACEr/B,EACA,wDAGJo/B,EAAO/qC,YAAYgrC,EAAWp/B,EAAU,8BACxCm/B,EAAO/qC,YAAYgrC,EAAWn/B,EAAa,iCAC3Ck/B,EAAO/qC,YAAYgrC,EAAWl/B,EAAW,4BAClCi/B,EAoBiBE,IACxBH,EAAW9R,YAAc,WACvB3jB,KAAK4H,QAAQrhB,KAAK9Y,KAAMglC,OAAOxH,EAAY1e,WAAY,UAGzD,MAAMspC,EAAgB,SAAUr0B,EAAI7kB,GAClC,MAAMyrC,EAAO/6C,SAAS4D,cAAc,QAMpC,OALAm3C,EAAK5mB,GAAKA,EACV4mB,EAAK54C,UAAYymB,EAAetZ,EAChCyrC,EAAKpxC,MAAMkG,MAAQ,qBACnBkrC,EAAKpxC,MAAMqV,QAAU,eACrB+7B,EAAKh2C,YAAc,IACZg2C,GAETqN,EAAW9qC,YAAYkrC,EAAc,mBAAoB1/B,IACzDs/B,EAAW9qC,YAAYkrC,EAAc,oBAAqBz/B,IAC1Dq/B,EAAW9qC,YAAYkrC,EAAc,qBAAsBx/B,IAC3Do/B,EAAW9qC,YAAYkrC,EAAc,qBAAsBv/B,IAC3Dm/B,EAAW9qC,YAAYkrC,EAAc,kBAAmBt/B,IACxDk/B,EAAW9qC,YAAYkrC,EAAc,qBAAsBr/B,IAC3Di/B,EAAW9qC,YAAYkrC,EAAc,mBAAoBp/B,IAEzDtW,EAAE,YAAY+N,WAAW0zB,aACvB6T,EACAt1C,EAAE,YAAY+N,WAAW+V,WAAW,IAm+EtC6xB,GAx5EF,WACE,MAAMC,EAAc1oD,SAAS4D,cAAc,OAC3C8kD,EAAYv0B,GAAK,gBACjBu0B,EAAY/+C,MAAMkG,MAAQ,OAC1B64C,EAAY/+C,MAAMmG,OAAS,OAC3B44C,EAAY/+C,MAAM4U,gBAAkB,QACpCmqC,EAAY/+C,MAAMqV,QAAU,OAC5B0pC,EAAY/+C,MAAMyU,OAAS,aAC3BsqC,EAAY/+C,MAAMgI,SAAW,WAC7BmB,EAAE,WAAWwK,YAAYorC,GAg5EzBC,GAjwIF,WACE,MAAMtX,EAAUrxC,SAAS4D,cAAc,QACvCytC,EAAQld,GAAK,YACbkd,EAAQz5B,IAAM,gBACdy5B,EAAQwC,KAAO,uDACf7zC,SAAS4oD,qBAAqB,QAAQ,GAAGtrC,YAAY+zB,GA6vIrDwX,GACA,IAAK,MAAMnnD,KAAKwD,OAAO6C,KAAKyhB,GAC1BmU,GACEnU,EAAY9nB,GAAG,GACf8nB,EAAY9nB,GAAG,GACf8nB,EAAY9nB,GAAG,KAl9ErB,WACE,MAAM6/C,EAAUvhD,SAAS4D,cAAc,KACvC29C,EAAQptB,GAAK,6BACbotB,EAAQx8C,YAAc,iBACtBw8C,EAAQp/C,UAAY,SACpBo/C,EAAQnL,QAAU,WAChB4D,MAEFlnC,EAAE,oBAAoB0vB,SAAS,GAAGsmB,OAAOvH,GACzC,MAAME,EAAczhD,SAAS4D,cAAc,KAC3C69C,EAAYttB,GAAK,2BACjBstB,EAAY18C,YAAc,qBAC1B08C,EAAYt/C,UAAY,SACxBs/C,EAAYrL,QAAU,WACa,OAA7B5lB,GAAsB,KACxBmC,KAAK8E,UAAUjH,GAAsB,IAAIypB,GAAK,IAElDnnC,EAAE,oBAAoB0vB,SAAS,GAAGsmB,OAAOrH,GAo8EzCsH,GA76EAj2C,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,aAAanJ,MAAMmsB,QAAU,MAE/BhjB,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,YAAYnJ,MAAM,aAAe,OAiIrC,WACE,IAAK,MAAMjI,KAAKwD,OAAO6C,KAAK4qB,KAAKoB,SAAU,CACzC,MAAM0C,EAAK9D,KAAKoB,QAAQryB,GACiB,OAArCoR,EAAE,UAAU2jB,EAAGtC,MAAMmiB,cACvB9tB,EAAmB9mB,GAAKoR,EAAE,UAAU2jB,EAAGtC,MAAMmiB,YAC7CxjC,EAAE,UAAU2jB,EAAGtC,MAAMmiB,YAAc,WACjC3jB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,IAAK,GAAGhhC,OAE/B,SAEFixB,KAAK4H,QAAQ6f,YA+DnB4O,GArDIr2B,KAAKs2B,aACPzhC,EAAoB1U,EAAE,SAASwjC,YAC/BxjC,EAAE,SAASwjC,YAAc,WACvB3jB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,IAAK,UAE5B,QAEF/P,KAAK4H,QAAQ6f,WA+CjBtyB,EAAgB6K,KAAK7K,cACrB6K,KAAK7K,cAAgB,WACnBA,IAxCE6K,KAAKoB,QAAQkM,KAAKxL,iBACpB3hB,EAAE,gBAAgBwjC,YAAc,WAC9B3jB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,KAAM,sBAE7B,QAEF/P,KAAK4H,QAAQ6f,UAEflvC,MAAMk5C,KAAKtxC,EAAE,cAAc0vB,UAAU0mB,SAASC,IAC5C,MAAMC,EAASD,EAAMh1B,GAAG1O,OAAO,GAC/B0jC,EAAM7S,YAAc,WAClB3jB,KAAK4H,QAAQ4f,QAAU,EACvBxnB,KAAK4H,QAAQrhB,KACX9Y,MACA,WACE,OAAOsiC,GAAc,IAAK,CAAC,GAAG0mB,EAAO,KAAM,GAAGA,EAAO,SAEvD,QAEFz2B,KAAK4H,QAAQ6f,cAmBjBF,KACAK,MAEF5nB,KAAK7K,gBAmpELhV,EAAE,wBAAwBwjC,YAAc,WACtC3sB,EAAsB,GAExB7W,EAAE,wBAAwB2jC,WAAa,WACrC9sB,EAAsB,EACtBgJ,KAAK4H,QAAQ7hB,OACb,IAAK,MAAMhX,KAAKwD,OAAO6C,KAAK4qB,KAAK8E,WAC/B5N,EAA0BnoB,GAAK,GA4DnCwiD,KACA3J,KACA5nB,KAAKoV,iBAEL8R,KACApwB,EAAoBkJ,KAAKskB,SAErBtkB,KAAK6Q,MAAM6lB,OACb12B,KAAK22B,MACH,0CAGF32B,KAAK42B,OACH,yCACA,GACA,GACA,EACA,GAGJ52B,KAAK62B,IAAI,eAoEX,MAAMC,GAAK,CACTzoD,KApDF,WACEq0C,IAAiB,EACjB,IAAIqU,GAAU,EACV/2B,KAAKiiB,UAAYhpB,OA/lSF,WAgmSjB89B,EAAUC,QACR,8JAGAD,IACFnC,KACA50B,KAAKi3B,aAAa,OAAQrmB,IAC1B5Q,KAAKi3B,aAAa,QAAS5S,IAC3B3B,IAAiB,IAyCnBwU,KA5BF,SAAc/mD,GACZ,MAAM2xC,EAAO1xC,KAAKC,MAAMF,GACxBsyC,KACAyE,GAAWpF,EAAKE,UACK,YAAjBF,EAAKG,UACHjiB,KAAK6Q,MAAM6lB,OACb12B,KAAK22B,MACH,iGAGF32B,KAAK42B,OACH,gGACA,GACA,GACA,EACA,KAcN9U,KAAMA,IAGR9hB,KAAKm3B,YAAY,gBAAiBL,KA3pSlC,IAvgHS","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateSimpleTooltip","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Disp/Draw.js b/src/Disp/Draw.js index 2d7261c5..baee9920 100644 --- a/src/Disp/Draw.js +++ b/src/Disp/Draw.js @@ -5,7 +5,7 @@ import UpdateUpgrades from './BuildingsUpgrades/Upgrades'; import { UpdateBotBar } from './InfoBars/BottomBar'; import { UpdateTimerBar } from './InfoBars/TimerBar'; import RefreshMenu from './MenuSections/Refreshmenu'; -import { UpdateTooltips } from './Tooltips/Tooltip'; +import UpdateTooltips from './Tooltips/UpdateTooltips'; import { CheckWrinklerTooltip, UpdateWrinklerTooltip, diff --git a/src/Disp/Initialization/CreateWrinklerButton.js b/src/Disp/Initialization/CreateWrinklerButton.js index 3b783b71..f4b2beb4 100644 --- a/src/Disp/Initialization/CreateWrinklerButton.js +++ b/src/Disp/Initialization/CreateWrinklerButton.js @@ -1,5 +1,6 @@ import { CacheWrinklersFattest } from '../../Cache/VariablesAndData'; import PopAllNormalWrinklers from '../HelperFunctions/PopWrinklers'; +import { CreateTooltip } from '../Tooltips/Tooltip'; /** * This function creates two objects at the bottom of the left column that allowing popping of wrinklers @@ -12,6 +13,20 @@ export default function CreateWrinklerButtons() { popAllA.onclick = function () { PopAllNormalWrinklers(); }; + popAllA.onmouseout = function () { + Game.tooltip.shouldHide = 1; + }; + popAllA.onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('wb', 'PopAll'); + }, + 'this', + ); + Game.tooltip.wobble(); + }; l('sectionLeftExtra').children[0].append(popAllA); const popFattestA = document.createElement('a'); popFattestA.id = 'PopFattestWrinklerButton'; @@ -21,5 +36,19 @@ export default function CreateWrinklerButtons() { if (CacheWrinklersFattest[1] !== null) Game.wrinklers[CacheWrinklersFattest[1]].hp = 0; }; + popFattestA.onmouseout = function () { + Game.tooltip.shouldHide = 1; + }; + popFattestA.onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('wb', 'PopFattest'); + }, + 'this', + ); + Game.tooltip.wobble(); + }; l('sectionLeftExtra').children[0].append(popFattestA); } diff --git a/src/Disp/Tooltips/Tooltip.js b/src/Disp/Tooltips/Tooltip.js index cd044da0..935f244f 100644 --- a/src/Disp/Tooltips/Tooltip.js +++ b/src/Disp/Tooltips/Tooltip.js @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -import * as UpdateTooltip from './UpdateTooltips'; +import UpdateTooltips, * as UpdateTooltip from './UpdateTooltips'; import { TooltipCreateTooltipBox } from './CreateTooltip'; import { Beautify, @@ -32,38 +32,6 @@ export function CreateSimpleTooltip(placeholder, text, minWidth) { Tooltip.appendChild(desc); } -/** - * This function updates the sections of the tooltips created by CookieMonster - */ -export function UpdateTooltips() { - CopyData(); - if (l('tooltipAnchor').style.display !== 'none' && l('CMTooltipArea')) { - l('CMTooltipArea').innerHTML = ''; - const tooltipBox = TooltipCreateTooltipBox(); - l('CMTooltipArea').appendChild(tooltipBox); - - if (TooltipType === 'b') { - UpdateTooltip.Building(); - } else if (TooltipType === 'u') { - UpdateTooltip.Upgrade(); - } else if (TooltipType === 's') { - UpdateTooltip.SugarLump(); - } else if (TooltipType === 'g') { - UpdateTooltip.Grimoire(); - } else if (TooltipType === 'p') { - UpdateTooltip.GardenPlots(); - } else if (TooltipType === 'ha') { - UpdateTooltip.HarvestAll(); - } - UpdateTooltip.Warnings(); - } else if (l('CMTooltipArea') === null) { - // Remove warnings if its a basic tooltip - if (l('CMDispTooltipWarningParent') !== null) { - l('CMDispTooltipWarningParent').remove(); - } - } -} - /** * This function enhance the standard tooltips by creating and changing l('tooltip') * The function is called by .onmouseover events that have replaced original code to use CM.Disp.Tooltip() @@ -141,9 +109,10 @@ export function CreateTooltip(type, name) { name[0], name[1], )(); - // Garden plots + // Harvest all button in garden else if (type === 'ha') - l('tooltip').innerHTML = Game.ObjectsById[2].minigame.toolTooltip(1)(); // Harvest all button in garden + l('tooltip').innerHTML = Game.ObjectsById[2].minigame.toolTooltip(1)(); + else if (type === 'wb') l('tooltip').innerHTML = ''; // Adds area for extra tooltip-sections if ( @@ -152,7 +121,8 @@ export function CreateTooltip(type, name) { type === 's' || type === 'g' || (type === 'p' && !Game.keys[16]) || - type === 'ha' + type === 'ha' || + type === 'wb' ) { const area = document.createElement('div'); area.id = 'CMTooltipArea'; diff --git a/src/Disp/Tooltips/UpdateTooltips.js b/src/Disp/Tooltips/UpdateTooltips.js index 82042793..b1a0cb5a 100644 --- a/src/Disp/Tooltips/UpdateTooltips.js +++ b/src/Disp/Tooltips/UpdateTooltips.js @@ -8,9 +8,12 @@ import { CacheObjects10, CacheObjects100, CacheUpgrades, + CacheWrinklersFattest, + CacheWrinklersTotal, } from '../../Cache/VariablesAndData'; import ToggleToolWarnPos from '../../Config/Toggles/ToggleToolWarnPos'; import { CMOptions } from '../../Config/VariablesAndData'; +import CopyData from '../../Sim/SimulationData/CopyData'; import { SimObjects } from '../../Sim/VariablesAndData'; import { Beautify, @@ -37,7 +40,7 @@ import * as Create from './CreateTooltip'; /** * This function adds extra info to the Building tooltips */ -export function Building() { +function Building() { if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { const tooltipBox = l('CMTooltipBorder'); Create.TooltipCreateCalculationSection(tooltipBox); @@ -111,7 +114,7 @@ export function Building() { /** * This function adds extra info to the Upgrade tooltips */ -export function Upgrade() { +function Upgrade() { const tooltipBox = l('CMTooltipBorder'); Create.TooltipCreateCalculationSection(tooltipBox); @@ -200,7 +203,7 @@ export function Upgrade() { * This function adds extra info to the Sugar Lump tooltip * It adds to the additional information to l('CMTooltipArea') */ -export function SugarLump() { +function SugarLump() { if (CMOptions.TooltipLump === 1) { const tooltipBox = l('CMTooltipBorder'); @@ -219,7 +222,7 @@ export function SugarLump() { * This function adds extra info to the Grimoire tooltips * It adds to the additional information to l('CMTooltipArea') */ -export function Grimoire() { +function Grimoire() { const minigame = Game.Objects['Wizard tower'].minigame; const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); @@ -289,7 +292,7 @@ export function Grimoire() { * This function adds extra info to the Garden plots tooltips * It adds to the additional information to l('CMTooltipArea') */ -export function GardenPlots() { +function GardenPlots() { const minigame = Game.Objects.Farm.minigame; if ( CMOptions.TooltipPlots && @@ -341,7 +344,7 @@ export function GardenPlots() { * It is called when the Harvest All tooltip is created or refreshed by CM.Disp.UpdateTooltip() * It adds to the additional information to l('CMTooltipArea') */ -export function HarvestAll() { +function HarvestAll() { const minigame = Game.Objects.Farm.minigame; if (CMOptions.TooltipLump) { l('CMTooltipBorder').appendChild( @@ -390,11 +393,29 @@ export function HarvestAll() { } else l('CMTooltipArea').style.display = 'none'; } +/** + * This function adds extra info to the wrinkler button tooltip + * It adds to the additional information to l('CMTooltipArea') + */ +function WrinklerButton() { + l('tooltip').innerHTML = ''; + l('tooltip').appendChild(Create.TooltipCreateHeader('Reward:')); + + const WrinklerReward = document.createElement('div'); + WrinklerReward.id = 'CMWrinklerReward'; + if (TooltipName === 'PopAll') { + WrinklerReward.textContent = CacheWrinklersTotal; + } else if (TooltipName === 'PopFattest') { + WrinklerReward.textContent = CacheWrinklersFattest[0]; + } + + l('tooltip').appendChild(WrinklerReward); +} + /** * This function updates the warnings section of the building and upgrade tooltips - * It is called by CM.Disp.UpdateTooltip() */ -export function Warnings() { +function Warnings() { if (TooltipType === 'b' || TooltipType === 'u') { if (document.getElementById('CMDispTooltipWarningParent') === null) { l('tooltipAnchor').appendChild(Create.TooltipCreateWarningSection()); @@ -517,3 +538,38 @@ export function Warnings() { l('CMDispTooltipWarningParent').remove(); } } + +/** + * This function updates the sections of the tooltips created by CookieMonster + */ +export default function UpdateTooltips() { + CopyData(); + if (l('tooltipAnchor').style.display !== 'none' && l('CMTooltipArea')) { + l('CMTooltipArea').innerHTML = ''; + const tooltipBox = Create.TooltipCreateTooltipBox(); + l('CMTooltipArea').appendChild(tooltipBox); + + if (TooltipType === 'b') { + Building(); + } else if (TooltipType === 'u') { + Upgrade(); + } else if (TooltipType === 's') { + SugarLump(); + } else if (TooltipType === 'g') { + Grimoire(); + } else if (TooltipType === 'p') { + GardenPlots(); + } else if (TooltipType === 'ha') { + HarvestAll(); + } else if (TooltipType === 'wb') { + l('CMTooltipArea').innerHTML = ''; + WrinklerButton(); + } + Warnings(); + } else if (l('CMTooltipArea') === null) { + // Remove warnings if its a basic tooltip + if (l('CMDispTooltipWarningParent') !== null) { + l('CMDispTooltipWarningParent').remove(); + } + } +} From eee72bceb6215ca39e339e14a6b74359a4e36bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Mon, 15 Mar 2021 23:32:52 +0100 Subject: [PATCH 04/25] Added tooltips to Pantheon #597 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- package-lock.json | 11 +- src/Cache/PantheonGods/CacheGods.js | 13 + src/Cache/VariablesAndData.js | 14 + src/Data/SettingsData.js | 10 + src/Data/SettingsDefault.js | 1 + src/Disp/Tooltips/Tooltip.js | 10 +- src/Disp/Tooltips/TypesOfTooltips/Building.js | 95 +++ .../Tooltips/TypesOfTooltips/GardenPlots.js | 55 ++ src/Disp/Tooltips/TypesOfTooltips/Grimoire.js | 80 +++ .../Tooltips/TypesOfTooltips/HarvestAll.js | 57 ++ .../Tooltips/TypesOfTooltips/PantheonGods.js | 76 +++ .../Tooltips/TypesOfTooltips/SugarLump.js | 22 + src/Disp/Tooltips/TypesOfTooltips/Upgrade.js | 108 ++++ src/Disp/Tooltips/TypesOfTooltips/Warnings.js | 144 +++++ .../TypesOfTooltips/WrinklerButton.js | 25 + src/Disp/Tooltips/UpdateTooltips.js | 554 +----------------- src/Main/Loop.js | 2 + src/Main/ReplaceGameElements/Tooltips.js | 35 ++ src/Sim/ReplacedGameFunctions/SimHasGod.js | 14 +- src/Sim/SimulationData/CopyData.js | 8 + src/Sim/SimulationEvents/GodChange.js | 34 ++ src/Sim/VariablesAndData.js | 3 + 25 files changed, 823 insertions(+), 554 deletions(-) create mode 100644 src/Cache/PantheonGods/CacheGods.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/Building.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/Grimoire.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/SugarLump.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/Upgrade.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/Warnings.js create mode 100644 src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js create mode 100644 src/Sim/SimulationEvents/GodChange.js diff --git a/CookieMonster.js b/CookieMonster.js index 31b2849a..b0094140 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=bo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=ko(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=Co(e),o=Xt[e]),o.won=t.won,Xt[e]=o}go(),Le=He,Ae=$e}function vo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),To(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class So{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Bo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Eo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Po(e[t],e[t].price)}function No(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Po(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Po(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Fo("Elder"),!Ro("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ro("Mathematician")||Vt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),Ee>=20&&Fo("Enhancer"),Ee>=50&&Fo("Augmenter"),Ee>=100&&Fo("Upgrader"),Ee>=200&&Fo("Lord of Progress"),Ee>=300&&Fo("The full picture"),Ee>=400&&Fo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Fo("Polymath"),t>=8e3&&Ee>=400&&Fo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;for(const e of Object.keys(Ao))Zt(Ao[e])||(a=!1);a&&Fo("Spooky cookies");let r=!0;for(const e of Object.keys(jo))Zt(jo[e])||(r=!1);if(r&&Fo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Fo("O Fortuna")}}function $o(e,t){Go(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Wo(),Ho(),n!==Oe&&Wo(),De-Game.cookiesPs}function Io(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Fo("Elder nap"),Ne>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=Oe;Wo(),Ho(),t!==Oe&&Wo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function zo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=$o(t,e),1!==e&&(Se=1);return o}function Vo(){for(const e of Object.keys(Game.Objects))ct[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function _o(){ct=zo(1),dt=zo(10),pt=zo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Io(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Xo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Xo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Xo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Xo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Xo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function qo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Ko(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function en(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function on(){go(),tn(),Zo(),en(),Qo(),Ko(),Jo(),ce=new So(Q[Q.length-1]),de=new So(Q[Q.length-1]),pe=new So(Q[Q.length-1]),ue=new So(Q[Q.length-1]),me=new So(q[q.length-1]),he=new So(5),qo(),Bo(),_o(),Vo(),No()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function sn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new pn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new pn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){No()})),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function gn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Vo(),Se=0),function(){tn(),No(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Bo(),qo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?bn(3,"WrinklerMaxFlash"):bn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?kn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):kn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in nn)if(void 0===e[t])o=!0,e[t]=nn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n]);else for(const n in nn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n]);o&&xn(),wn();for(const e in nn)"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}else Tn(nn)}function Mn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Sn(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Oo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t&&(l("tooltip").innerHTML="");if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,To(),l("tooltip").innerHTML}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Wo(),t=De,Go()),Wt>=1e6&&Fo("Sacrifice"),Wt>=1e9&&Fo("Oblivion"),Wt>=1e12&&Fo("From scratch"),Wt>=1e15&&Fo("Nihilism"),Wt>=1e18&&Fo("Dematerialize"),Wt>=1e21&&Fo("Nil zero zilch"),Wt>=1e24&&Fo("Transcendence"),Wt>=1e27&&Fo("Obliterate"),Wt>=1e30&&Fo("Negative void"),Wt>=1e33&&Fo("To crumbs, you say?"),Wt>=1e36&&Fo("You get nothing"),Wt>=1e39&&Fo("Humble rebeginnings"),Wt>=1e42&&Fo("The end of the world"),Wt>=1e45&&Fo("Oh, you're back"),Wt>=1e48&&Fo("Lazarus"),Wt>=1e51&&Fo("Smurf account"),Wt>=1e54&&Fo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Wo(),Ho(),o!==Oe&&Wo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ao))Game.Has(Ao[e])||(i.push(Ao[e]),n=!0);const a=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(a.push(jo[e]),n=!0);const r=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(r.push(Uo[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Do))Game.HasUnlocked(Do[e])||(d.push(Do[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Lo))Game.Has(Lo[t])||e.push(Lo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Wn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Wo(),Ho(),o!==Oe&&Wo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in hn)hn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(hn))hn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){Cn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Sn(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){yn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Mo),Game.registerHook("logic",wn),yn=!1)},load:function(e){const t=JSON.parse(e);Cn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 31b2849a..b0094140 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=bo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=ko(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=Co(e),o=Xt[e]),o.won=t.won,Xt[e]=o}go(),Le=He,Ae=$e}function vo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),To(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class So{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Bo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Eo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Po(e[t],e[t].price)}function No(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Po(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Po(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Fo("Elder"),!Ro("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),Ro("Mathematician")||Vt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),Ee>=20&&Fo("Enhancer"),Ee>=50&&Fo("Augmenter"),Ee>=100&&Fo("Upgrader"),Ee>=200&&Fo("Lord of Progress"),Ee>=300&&Fo("The full picture"),Ee>=400&&Fo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Fo("Polymath"),t>=8e3&&Ee>=400&&Fo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;for(const e of Object.keys(Ao))Zt(Ao[e])||(a=!1);a&&Fo("Spooky cookies");let r=!0;for(const e of Object.keys(jo))Zt(jo[e])||(r=!1);if(r&&Fo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Fo("O Fortuna")}}function $o(e,t){Go(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Wo(),Ho(),n!==Oe&&Wo(),De-Game.cookiesPs}function Io(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Fo("Elder nap"),Ne>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=Oe;Wo(),Ho(),t!==Oe&&Wo();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function zo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=$o(t,e),1!==e&&(Se=1);return o}function Vo(){for(const e of Object.keys(Game.Objects))ct[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=Oo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function _o(){ct=zo(1),dt=zo(10),pt=zo(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Io(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function Xo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=Xo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=Xo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=Xo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=Xo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function qo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Ko(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function en(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function on(){go(),tn(),Zo(),en(),Qo(),Ko(),Jo(),ce=new So(Q[Q.length-1]),de=new So(Q[Q.length-1]),pe=new So(Q[Q.length-1]),ue=new So(Q[Q.length-1]),me=new So(q[q.length-1]),he=new So(5),qo(),Bo(),_o(),Vo(),No()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function sn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new pn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new pn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){No()})),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function gn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Vo(),Se=0),function(){tn(),No(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Bo(),qo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?bn(3,"WrinklerMaxFlash"):bn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?kn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):kn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in nn)if(void 0===e[t])o=!0,e[t]=nn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n]);else for(const n in nn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n]);o&&xn(),wn();for(const e in nn)"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}else Tn(nn)}function Mn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Sn(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Oo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t&&(l("tooltip").innerHTML="");if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,To(),l("tooltip").innerHTML}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Wo(),t=De,Go()),Wt>=1e6&&Fo("Sacrifice"),Wt>=1e9&&Fo("Oblivion"),Wt>=1e12&&Fo("From scratch"),Wt>=1e15&&Fo("Nihilism"),Wt>=1e18&&Fo("Dematerialize"),Wt>=1e21&&Fo("Nil zero zilch"),Wt>=1e24&&Fo("Transcendence"),Wt>=1e27&&Fo("Obliterate"),Wt>=1e30&&Fo("Negative void"),Wt>=1e33&&Fo("To crumbs, you say?"),Wt>=1e36&&Fo("You get nothing"),Wt>=1e39&&Fo("Humble rebeginnings"),Wt>=1e42&&Fo("The end of the world"),Wt>=1e45&&Fo("Oh, you're back"),Wt>=1e48&&Fo("Lazarus"),Wt>=1e51&&Fo("Smurf account"),Wt>=1e54&&Fo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Wo(),Ho(),o!==Oe&&Wo();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ao))Game.Has(Ao[e])||(i.push(Ao[e]),n=!0);const a=[];for(const e of Object.keys(jo))Game.Has(jo[e])||(a.push(jo[e]),n=!0);const r=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(r.push(Uo[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Do))Game.HasUnlocked(Do[e])||(d.push(Do[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Lo))Game.Has(Lo[t])||e.push(Lo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Wn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Wo(),Ho(),o!==Oe&&Wo(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in hn)hn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(hn))hn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){Cn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Sn(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){yn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Mo),Game.registerHook("logic",wn),yn=!1)},load:function(e){const t=JSON.parse(e);Cn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),l("cookies").innerHTML=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies))}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index d5f4ddea..2005765e 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateSimpleTooltip","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateSimpleTooltip","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAU7mB,QAG3C,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOinB,WAC7B,IAAOjnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBG,EAAExL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBG,EAAI,CAAC/mB,EAASgnB,KACjC,IAAI,IAAIC,KAAOD,EACXJ,EAAoBM,EAAEF,EAAYC,KAASL,EAAoBM,EAAElnB,EAASinB,IAC5E9hB,OAAOC,eAAepF,EAASinB,EAAK,CAAEE,YAAY,EAAM9hB,IAAK2hB,EAAWC,MAQ3EL,EAAoBM,EAAI,CAACzhB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAoCA,IAAIuhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6834be4e..55866b46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "cookiemonster-mod", - "version": "2.031.6", + "version": "2.031.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cookiemonster-mod", - "version": "2.031.6", + "version": "2.031.5", "license": "MIT", "dependencies": { - "@eastdesire/jscolor": "^2.4.5" + "@eastdesire/jscolor": "^2.4.5", + "lodash": "^4.17.20" }, "devDependencies": { "eslint": "^7.19.0", @@ -1758,7 +1759,6 @@ }, "node_modules/lodash": { "version": "4.17.20", - "dev": true, "license": "MIT" }, "node_modules/lru-cache": { @@ -4271,8 +4271,7 @@ } }, "lodash": { - "version": "4.17.20", - "dev": true + "version": "4.17.20" }, "lru-cache": { "version": "6.0.0", diff --git a/src/Cache/PantheonGods/CacheGods.js b/src/Cache/PantheonGods/CacheGods.js new file mode 100644 index 00000000..afe87669 --- /dev/null +++ b/src/Cache/PantheonGods/CacheGods.js @@ -0,0 +1,13 @@ +import CalculateChangeGod from '../../Sim/SimulationEvents/GodChange'; +import { CacheGods } from '../VariablesAndData'; + +/** + * This functions caches the cps effect of each God in slot 1, 2 or 3 + */ +export default function CachePantheonGods() { + for (let god = 0; god < 11; god += 1) { + for (let slot = 0; slot < 3; slot += 1) { + CacheGods[god][slot] = CalculateChangeGod(god, slot); + } + } +} diff --git a/src/Cache/VariablesAndData.js b/src/Cache/VariablesAndData.js index 4bbf1796..5c885806 100644 --- a/src/Cache/VariablesAndData.js +++ b/src/Cache/VariablesAndData.js @@ -99,3 +99,17 @@ export let CacheLastHeavenlyChips; export let CacheDoRemakeBuildPrices; export let CacheHadBuildAura; + +export let CacheGods = { + 0: [0, 0, 0], + 1: [0, 0, 0], + 2: [0, 0, 0], + 3: [0, 0, 0], + 4: [0, 0, 0], + 5: [0, 0, 0], + 6: [0, 0, 0], + 7: [0, 0, 0], + 8: [0, 0, 0], + 9: [0, 0, 0], + 10: [0, 0, 0], +}; diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index aafe5bbc..87bde73b 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -585,6 +585,16 @@ const Config = { 'Shows a tooltip for plants that have a cookie reward.', true, ), + TooltipPantheon: new SettingStandard( + 'bool', + 'Tooltip', + [ + 'Show Extra Info Pantheon Tooltip OFF', + 'Show Extra Info Pantheon Tooltip ON', + ], + 'Shows additional info in the pantheon tooltip', + true, + ), DragonAuraInfo: new SettingStandard( 'bool', 'Tooltip', diff --git a/src/Data/SettingsDefault.js b/src/Data/SettingsDefault.js index 65da2d4c..e9891034 100644 --- a/src/Data/SettingsDefault.js +++ b/src/Data/SettingsDefault.js @@ -71,6 +71,7 @@ const ConfigDefault = { TooltipWrink: 1, TooltipLump: 1, TooltipPlots: 1, + TooltipPantheon: 1, DragonAuraInfo: 1, TooltipAscendButton: 1, Stats: 1, diff --git a/src/Disp/Tooltips/Tooltip.js b/src/Disp/Tooltips/Tooltip.js index 935f244f..3353fa98 100644 --- a/src/Disp/Tooltips/Tooltip.js +++ b/src/Disp/Tooltips/Tooltip.js @@ -113,6 +113,12 @@ export function CreateTooltip(type, name) { else if (type === 'ha') l('tooltip').innerHTML = Game.ObjectsById[2].minigame.toolTooltip(1)(); else if (type === 'wb') l('tooltip').innerHTML = ''; + else if (type === 'pag') + l('tooltip').innerHTML = Game.Objects.Temple.minigame.godTooltip(name)(); + else if (type === 'pas') + l('tooltip').innerHTML = Game.Objects.Temple.minigame.slotTooltip( + name[0], + )(); // Adds area for extra tooltip-sections if ( @@ -122,7 +128,9 @@ export function CreateTooltip(type, name) { type === 'g' || (type === 'p' && !Game.keys[16]) || type === 'ha' || - type === 'wb' + type === 'wb' || + type === 'pag' || + (type === 'pas' && name[1] !== -1) ) { const area = document.createElement('div'); area.id = 'CMTooltipArea'; diff --git a/src/Disp/Tooltips/TypesOfTooltips/Building.js b/src/Disp/Tooltips/TypesOfTooltips/Building.js new file mode 100644 index 00000000..ba7ddb86 --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/Building.js @@ -0,0 +1,95 @@ +import { + CacheObjects1, + CacheObjects10, + CacheObjects100, +} from '../../../Cache/VariablesAndData'; +import { CMOptions } from '../../../Config/VariablesAndData'; +import { SimObjects } from '../../../Sim/VariablesAndData'; +import { + Beautify, + GetTimeColor, +} from '../../BeautifyAndFormatting/BeautifyFormatting'; +import GetCPS from '../../HelperFunctions/GetCPS'; +import GetWrinkConfigBank from '../../HelperFunctions/GetWrinkConfigBank'; +import { + ColorTextPre, + LastTargetTooltipBuilding, + TooltipBonusIncome, + TooltipName, + TooltipPrice, +} from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Building tooltips + */ +export default function Building() { + if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { + const tooltipBox = l('CMTooltipBorder'); + Create.TooltipCreateCalculationSection(tooltipBox); + + let target; + if (Game.buyMode === 1) { + LastTargetTooltipBuilding = target; + } else { + target = LastTargetTooltipBuilding; + } + if (Game.buyBulk === 1) target = CacheObjects1; + else if (Game.buyBulk === 10) target = CacheObjects10; + else if (Game.buyBulk === 100) target = CacheObjects100; + + TooltipPrice = Game.Objects[TooltipName].bulkPrice; + TooltipBonusIncome = target[TooltipName].bonus; + + if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { + l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); + const increase = Math.round( + (TooltipBonusIncome / Game.cookiesPs) * 10000, + ); + if (Number.isFinite(increase) && increase !== 0) { + l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; + } else { + l('CMTooltipIncome').textContent += ` (<0${ + CMOptions.ScaleSeparator ? ',' : '.' + }01% of income)`; + } + l('CMTooltipBorder').className = ColorTextPre + target[TooltipName].color; + l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); + l('CMTooltipPP').className = ColorTextPre + target[TooltipName].color; + const timeColor = GetTimeColor( + (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ); + l('CMTooltipTime').textContent = timeColor.text; + if ( + timeColor.text === 'Done!' && + Game.cookies < target[TooltipName].price + ) { + l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; + } else l('CMTooltipTime').textContent = timeColor.text; + l('CMTooltipTime').className = ColorTextPre + timeColor.color; + } + + // Add "production left till next achievement"-bar + l('CMTooltipProductionHeader').style.display = 'none'; + l('CMTooltipTime').style.marginBottom = '0px'; + for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) { + if ( + !Game.HasAchiev( + Game.Objects[TooltipName].productionAchievs[i].achiev.name, + ) + ) { + const nextProductionAchiev = + Game.Objects[TooltipName].productionAchievs[i]; + l('CMTooltipTime').style.marginBottom = '4px'; + l('CMTooltipProductionHeader').style.display = ''; + l('CMTooltipProduction').className = `ProdAchievement${TooltipName}`; + l('CMTooltipProduction').textContent = Beautify( + nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies, + 15, + ); + l('CMTooltipProduction').style.color = 'white'; + break; + } + } + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js b/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js new file mode 100644 index 00000000..d68021db --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js @@ -0,0 +1,55 @@ +import { CMOptions } from '../../../Config/VariablesAndData'; +import { Beautify } from '../../BeautifyAndFormatting/BeautifyFormatting'; +import { TooltipName } from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Garden plots tooltips + * It adds to the additional information to l('CMTooltipArea') + */ +export default function GardenPlots() { + const minigame = Game.Objects.Farm.minigame; + if ( + CMOptions.TooltipPlots && + minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0 + ) { + const mature = + minigame.plot[TooltipName[1]][TooltipName[0]][1] > + minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] + .matureBase; + const plantName = + minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] + .name; + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Reward (Current / Maximum)'), + ); + const reward = document.createElement('div'); + reward.id = 'CMTooltipPlantReward'; + l('CMTooltipBorder').appendChild(reward); + if (plantName === 'Bakeberry') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 30)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 30)}`; + } else if (plantName === 'Chocoroot' || plantName === 'White chocoroot') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 3)}`; + } else if (plantName === 'Queenbeet') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.04, Game.cookiesPs * 60 * 60)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 60)}`; + } else if (plantName === 'Duketater') { + l('CMTooltipPlantReward').textContent = `${ + mature + ? Beautify(Math.min(Game.cookies * 0.08, Game.cookiesPs * 60 * 120)) + : '0' + } / ${Beautify(Game.cookiesPs * 60 * 120)}`; + } else l('CMTooltipArea').style.display = 'none'; + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js b/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js new file mode 100644 index 00000000..887100b3 --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js @@ -0,0 +1,80 @@ +import { CacheNoGoldSwitchCookiesPS } from '../../../Cache/VariablesAndData'; +import { CMOptions } from '../../../Config/VariablesAndData'; +import { + Beautify, + GetTimeColor, +} from '../../BeautifyAndFormatting/BeautifyFormatting'; +import CalculateGrimoireRefillTime from '../../HelperFunctions/CalculateGrimoireRefillTime'; +import GetWrinkConfigBank from '../../HelperFunctions/GetWrinkConfigBank'; +import { ColorTextPre, TooltipName } from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Grimoire tooltips + * It adds to the additional information to l('CMTooltipArea') + */ +export default function Grimoire() { + const minigame = Game.Objects['Wizard tower'].minigame; + const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); + + if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) { + const tooltipBox = l('CMTooltipBorder'); + + // Time left till enough magic for spell + tooltipBox.appendChild(Create.TooltipCreateHeader('Time Left')); + const time = document.createElement('div'); + time.id = 'CMTooltipTime'; + tooltipBox.appendChild(time); + const timeColor = GetTimeColor( + CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, spellCost), + ); + time.textContent = timeColor.text; + time.className = ColorTextPre + timeColor.color; + + // Time left untill magic spent is recovered + if (spellCost <= minigame.magic) { + tooltipBox.appendChild(Create.TooltipCreateHeader('Recover Time')); + const recover = document.createElement('div'); + recover.id = 'CMTooltipRecover'; + tooltipBox.appendChild(recover); + const recoverColor = GetTimeColor( + CalculateGrimoireRefillTime( + Math.max(0, minigame.magic - spellCost), + minigame.magicM, + minigame.magic, + ), + ); + recover.textContent = recoverColor.text; + recover.className = ColorTextPre + recoverColor.color; + } + + // Extra information on cookies gained when spell is Conjure Baked Goods (Name === 0) + if (TooltipName === '0') { + tooltipBox.appendChild( + Create.TooltipCreateHeader('Cookies to be gained/lost'), + ); + const conjure = document.createElement('div'); + conjure.id = 'x'; + tooltipBox.appendChild(conjure); + const reward = document.createElement('span'); + reward.style.color = '#33FF00'; + reward.textContent = Beautify( + Math.min( + (Game.cookies + GetWrinkConfigBank()) * 0.15, + CacheNoGoldSwitchCookiesPS * 60 * 30, + ), + 2, + ); + conjure.appendChild(reward); + const seperator = document.createElement('span'); + seperator.textContent = ' / '; + conjure.appendChild(seperator); + const loss = document.createElement('span'); + loss.style.color = 'red'; + loss.textContent = Beautify(CacheNoGoldSwitchCookiesPS * 60 * 15, 2); + conjure.appendChild(loss); + } + + l('CMTooltipArea').appendChild(tooltipBox); + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js b/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js new file mode 100644 index 00000000..b9a9984d --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js @@ -0,0 +1,57 @@ +import { CMOptions } from '../../../Config/VariablesAndData'; +import { Beautify } from '../../BeautifyAndFormatting/BeautifyFormatting'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Garden Harvest All tooltip + * It is called when the Harvest All tooltip is created or refreshed by CM.Disp.UpdateTooltip() + * It adds to the additional information to l('CMTooltipArea') + */ +export default function HarvestAll() { + const minigame = Game.Objects.Farm.minigame; + if (CMOptions.TooltipLump) { + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Cookies gained from harvesting:'), + ); + let totalGain = 0; + let mortal = 0; + if (Game.keys[16] && Game.keys[17]) mortal = 1; + for (let y = 0; y < 6; y++) { + for (let x = 0; x < 6; x++) { + if (minigame.plot[y][x][0] >= 1) { + const tile = minigame.plot[y][x]; + const me = minigame.plantsById[tile[0] - 1]; + const plantName = me.name; + + let count = true; + if (mortal && me.immortal) count = false; + if (tile[1] < me.matureBase) count = false; + if (count && plantName === 'Bakeberry') { + totalGain += Math.min( + Game.cookies * 0.03, + Game.cookiesPs * 60 * 30, + ); + } else if ( + (count && plantName === 'Chocoroot') || + plantName === 'White chocoroot' + ) { + totalGain += Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3); + } else if (count && plantName === 'Queenbeet') { + totalGain += Math.min( + Game.cookies * 0.04, + Game.cookiesPs * 60 * 60, + ); + } else if (count && plantName === 'Duketater') { + totalGain += Math.min( + Game.cookies * 0.08, + Game.cookiesPs * 60 * 120, + ); + } + } + } + } + l('CMTooltipBorder').appendChild( + document.createTextNode(Beautify(totalGain)), + ); + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js b/src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js new file mode 100644 index 00000000..aace50a1 --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js @@ -0,0 +1,76 @@ +import { CacheGods } from '../../../Cache/VariablesAndData'; +import { CMOptions } from '../../../Config/VariablesAndData'; +import { Beautify } from '../../BeautifyAndFormatting/BeautifyFormatting'; +import { TooltipName, TooltipType } from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Pantheon Gods tooltip + * It is called when the Harvest All tooltip is created or refreshed by CM.Disp.UpdateTooltip() + * It adds to the additional information to l('CMTooltipArea') + */ +export default function PantheonGods() { + if (CMOptions.TooltipPantheon === 1) { + const tooltipBox = l('CMTooltipBorder'); + let GodID; + if (TooltipType === 'pas') GodID = TooltipName[1]; + else GodID = TooltipName; + + // Time left till enough magic for spell + tooltipBox.appendChild(Create.TooltipCreateHeader('Effect in position 1:')); + const cps1 = document.createElement('div'); + cps1.id = 'CMPantheonTooltipPosition1'; + if (CacheGods[GodID][0] !== 0) { + cps1.textContent = Beautify(CacheGods[GodID][0]); + const increase = Math.round( + (CacheGods[GodID][0] / Game.cookiesPs) * 10000, + ); + if (Number.isFinite(increase) && increase !== 0) { + cps1.textContent += ` (${increase / 100}% of income)`; + } else { + cps1.textContent += ` (<0${ + CMOptions.ScaleSeparator ? ',' : '.' + }01% of income)`; + } + } else cps1.textContent = 'No effect to CPS'; + tooltipBox.appendChild(cps1); + + tooltipBox.appendChild(Create.TooltipCreateHeader('Effect in position 2:')); + const cps2 = document.createElement('div'); + cps2.id = 'CMPantheonTooltipPosition2'; + if (CacheGods[GodID][1] !== 0) { + cps2.textContent = Beautify(CacheGods[GodID][1]); + const increase = Math.round( + (CacheGods[GodID][1] / Game.cookiesPs) * 10000, + ); + if (Number.isFinite(increase) && increase !== 0) { + cps2.textContent += ` (${increase / 100}% of income)`; + } else { + cps2.textContent += ` (<0${ + CMOptions.ScaleSeparator ? ',' : '.' + }01% of income)`; + } + } else cps2.textContent = 'No effect to CPS'; + tooltipBox.appendChild(cps2); + + tooltipBox.appendChild(Create.TooltipCreateHeader('Effect in position 3:')); + const cps3 = document.createElement('div'); + cps3.id = 'CMPantheonTooltipPosition2'; + if (CacheGods[GodID][2] !== 0) { + cps3.textContent = Beautify(CacheGods[GodID][2]); + const increase = Math.round( + (CacheGods[GodID][2] / Game.cookiesPs) * 10000, + ); + if (Number.isFinite(increase) && increase !== 0) { + cps3.textContent += ` (${increase / 100}% of income)`; + } else { + cps3.textContent += ` (<0${ + CMOptions.ScaleSeparator ? ',' : '.' + }01% of income)`; + } + } else cps3.textContent = 'No effect to CPS'; + tooltipBox.appendChild(cps3); + + l('CMTooltipArea').appendChild(tooltipBox); + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/SugarLump.js b/src/Disp/Tooltips/TypesOfTooltips/SugarLump.js new file mode 100644 index 00000000..405bb394 --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/SugarLump.js @@ -0,0 +1,22 @@ +import { CMOptions } from '../../../Config/VariablesAndData'; +import GetLumpColor from '../../HelperFunctions/GetLumpColor'; +import { ColorTextPre } from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; +/** + * This function adds extra info to the Sugar Lump tooltip + * It adds to the additional information to l('CMTooltipArea') + */ +export default function SugarLump() { + if (CMOptions.TooltipLump === 1) { + const tooltipBox = l('CMTooltipBorder'); + + tooltipBox.appendChild(Create.TooltipCreateHeader('Current Sugar Lump')); + + const lumpType = document.createElement('div'); + lumpType.id = 'CMTooltipTime'; + tooltipBox.appendChild(lumpType); + const lumpColor = GetLumpColor(Game.lumpCurrentType); + lumpType.textContent = lumpColor.text; + lumpType.className = ColorTextPre + lumpColor.color; + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js b/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js new file mode 100644 index 00000000..908f6937 --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js @@ -0,0 +1,108 @@ +import { + CacheLastChoEgg, + CacheUpgrades, +} from '../../../Cache/VariablesAndData'; +import { CMOptions } from '../../../Config/VariablesAndData'; +import { + Beautify, + GetTimeColor, +} from '../../BeautifyAndFormatting/BeautifyFormatting'; +import GetCPS from '../../HelperFunctions/GetCPS'; +import GetWrinkConfigBank from '../../HelperFunctions/GetWrinkConfigBank'; +import { + ColorTextPre, + TooltipBonusIncome, + TooltipBonusMouse, + TooltipName, + TooltipPrice, + TooltipType, +} from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the Upgrade tooltips + */ +export default function Upgrade() { + const tooltipBox = l('CMTooltipBorder'); + Create.TooltipCreateCalculationSection(tooltipBox); + + TooltipBonusIncome = + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonus; + TooltipPrice = Game.Upgrades[ + Game.UpgradesInStore[TooltipName].name + ].getPrice(); + TooltipBonusMouse = + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonusMouse; + + if (CMOptions.TooltipBuildUpgrade === 1) { + l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); + const increase = Math.round((TooltipBonusIncome / Game.cookiesPs) * 10000); + // Don't display certain parts of tooltip if not applicable + if ( + l('CMTooltipIncome').textContent === '0' && + (TooltipType === 'b' || TooltipType === 'u') + ) { + l('Bonus IncomeTitle').style.display = 'none'; + l('CMTooltipIncome').style.display = 'none'; + l('Payback PeriodTitle').style.display = 'none'; + l('CMTooltipPP').style.display = 'none'; + } else { + if (Number.isFinite(increase) && increase !== 0) { + l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; + } else { + l('CMTooltipIncome').textContent += ` (<0${ + CMOptions.ScaleSeparator ? ',' : '.' + }01% of income)`; + } + l('CMTooltipBorder').className = + ColorTextPre + + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; + // If clicking power upgrade + if (TooltipBonusMouse) { + l('CMTooltipCookiePerClick').textContent = Beautify(TooltipBonusMouse); + l('CMTooltipCookiePerClick').style.display = 'block'; + l('CMTooltipCookiePerClick').previousSibling.style.display = 'block'; + } + // If only a clicking power upgrade change PP to click-based period + if (TooltipBonusIncome === 0 && TooltipBonusMouse) { + l('CMTooltipPP').textContent = `${Beautify( + TooltipPrice / TooltipBonusMouse, + )} Clicks`; + l('CMTooltipPP').style.color = 'white'; + } else { + l('CMTooltipPP').textContent = Beautify( + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, + 2, + ); + l('CMTooltipPP').className = + ColorTextPre + + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; + } + } + const timeColor = GetTimeColor( + (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), + ); + l('CMTooltipTime').textContent = timeColor.text; + if ( + timeColor.text === 'Done!' && + Game.cookies < Game.UpgradesInStore[TooltipName].getPrice() + ) { + l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; + } else l('CMTooltipTime').textContent = timeColor.text; + l('CMTooltipTime').className = ColorTextPre + timeColor.color; + + // Add extra info to Chocolate egg tooltip + if (Game.UpgradesInStore[TooltipName].name === 'Chocolate egg') { + l('CMTooltipBorder').lastChild.style.marginBottom = '4px'; + l('CMTooltipBorder').appendChild( + Create.TooltipCreateHeader('Cookies to be gained (Currently/Max)'), + ); + const chocolate = document.createElement('div'); + chocolate.style.color = 'white'; + chocolate.textContent = `${Beautify(Game.cookies * 0.05)} / ${Beautify( + CacheLastChoEgg, + )}`; + l('CMTooltipBorder').appendChild(chocolate); + } + } else l('CMTooltipArea').style.display = 'none'; +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/Warnings.js b/src/Disp/Tooltips/TypesOfTooltips/Warnings.js new file mode 100644 index 00000000..3a3d11cb --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/Warnings.js @@ -0,0 +1,144 @@ +import GetCPSBuffMult from '../../../Cache/CPS/GetCPSBuffMult'; +import { CacheEdifice, CacheLucky } from '../../../Cache/VariablesAndData'; +import ToggleToolWarnPos from '../../../Config/Toggles/ToggleToolWarnPos'; +import { CMOptions } from '../../../Config/VariablesAndData'; + +import { + Beautify, + FormatTime, +} from '../../BeautifyAndFormatting/BeautifyFormatting'; +import GetCPS from '../../HelperFunctions/GetCPS'; +import GetWrinkConfigBank from '../../HelperFunctions/GetWrinkConfigBank'; +import { + TooltipBonusIncome, + TooltipPrice, + TooltipType, +} from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function updates the warnings section of the building and upgrade tooltips + */ +export default function Warnings() { + if (TooltipType === 'b' || TooltipType === 'u') { + if (document.getElementById('CMDispTooltipWarningParent') === null) { + l('tooltipAnchor').appendChild(Create.TooltipCreateWarningSection()); + ToggleToolWarnPos(); + } + + if (CMOptions.ToolWarnPos === 0) + l('CMDispTooltipWarningParent').style.right = '0px'; + else + l('CMDispTooltipWarningParent').style.top = `${ + l('tooltip').offsetHeight + }px`; + + l('CMDispTooltipWarningParent').style.width = `${ + l('tooltip').offsetWidth - 6 + }px`; + + const amount = Game.cookies + GetWrinkConfigBank() - TooltipPrice; + const bonusIncomeUsed = CMOptions.ToolWarnBon ? TooltipBonusIncome : 0; + let limitLucky = CacheLucky; + if (CMOptions.ToolWarnBon === 1) { + let bonusNoFren = TooltipBonusIncome; + bonusNoFren /= GetCPSBuffMult(); + limitLucky += (bonusNoFren * 60 * 15) / 0.15; + } + + if (CMOptions.ToolWarnLucky === 1) { + if (amount < limitLucky && (TooltipType !== 'b' || Game.buyMode === 1)) { + l('CMDispTooltipWarnLucky').style.display = ''; + l('CMDispTooltipWarnLuckyText').textContent = `${Beautify( + limitLucky - amount, + )} (${FormatTime( + (limitLucky - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnLucky').style.display = 'none'; + } else l('CMDispTooltipWarnLucky').style.display = 'none'; + + if (CMOptions.ToolWarnLuckyFrenzy === 1) { + const limitLuckyFrenzy = limitLucky * 7; + if ( + amount < limitLuckyFrenzy && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnLuckyFrenzy').style.display = ''; + l('CMDispTooltipWarnLuckyFrenzyText').textContent = `${Beautify( + limitLuckyFrenzy - amount, + )} (${FormatTime( + (limitLuckyFrenzy - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; + } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; + + if (CMOptions.ToolWarnConjure === 1) { + const limitConjure = limitLucky * 2; + if ( + amount < limitConjure && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnConjure').style.display = ''; + l('CMDispTooltipWarnConjureText').textContent = `${Beautify( + limitConjure - amount, + )} (${FormatTime( + (limitConjure - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnConjure').style.display = 'none'; + } else l('CMDispTooltipWarnConjure').style.display = 'none'; + + if (CMOptions.ToolWarnConjureFrenzy === 1) { + const limitConjureFrenzy = limitLucky * 2 * 7; + if ( + amount < limitConjureFrenzy && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnConjureFrenzy').style.display = ''; + l('CMDispTooltipWarnConjureFrenzyText').textContent = `${Beautify( + limitConjureFrenzy - amount, + )} (${FormatTime( + (limitConjureFrenzy - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; + } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; + + if ( + CMOptions.ToolWarnEdifice === 1 && + Game.Objects['Wizard tower'].minigameLoaded + ) { + if ( + CacheEdifice && + amount < CacheEdifice && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnEdifice').style.display = ''; + l('CMDispTooltipWarnEdificeText').textContent = `${Beautify( + CacheEdifice - amount, + )} (${FormatTime( + (CacheEdifice - amount) / (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnEdifice').style.display = 'none'; + } else l('CMDispTooltipWarnEdifice').style.display = 'none'; + + if (CMOptions.ToolWarnUser > 0) { + if ( + amount < CMOptions.ToolWarnUser * GetCPS() && + (TooltipType !== 'b' || Game.buyMode === 1) + ) { + l('CMDispTooltipWarnUser').style.display = ''; + // Need to update tooltip text dynamically + l( + 'CMDispTooltipWarnUser', + ).children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`; + l('CMDispTooltipWarnUserText').textContent = `${Beautify( + CMOptions.ToolWarnUser * GetCPS() - amount, + )} (${FormatTime( + (CMOptions.ToolWarnUser * GetCPS() - amount) / + (GetCPS() + bonusIncomeUsed), + )})`; + } else l('CMDispTooltipWarnUser').style.display = 'none'; + } else l('CMDispTooltipWarnUser').style.display = 'none'; + } else if (l('CMDispTooltipWarningParent') !== null) { + l('CMDispTooltipWarningParent').remove(); + } +} diff --git a/src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js b/src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js new file mode 100644 index 00000000..4d248cdf --- /dev/null +++ b/src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js @@ -0,0 +1,25 @@ +import { + CacheWrinklersFattest, + CacheWrinklersTotal, +} from '../../../Cache/VariablesAndData'; +import { TooltipName } from '../../VariablesAndData'; +import * as Create from '../CreateTooltip'; + +/** + * This function adds extra info to the wrinkler button tooltip + * It adds to the additional information to l('CMTooltipArea') + */ +export default function WrinklerButton() { + l('tooltip').innerHTML = ''; + l('tooltip').appendChild(Create.TooltipCreateHeader('Reward:')); + + const WrinklerReward = document.createElement('div'); + WrinklerReward.id = 'CMWrinklerReward'; + if (TooltipName === 'PopAll') { + WrinklerReward.textContent = CacheWrinklersTotal; + } else if (TooltipName === 'PopFattest') { + WrinklerReward.textContent = CacheWrinklersFattest[0]; + } + + l('tooltip').appendChild(WrinklerReward); +} diff --git a/src/Disp/Tooltips/UpdateTooltips.js b/src/Disp/Tooltips/UpdateTooltips.js index b1a0cb5a..9088f805 100644 --- a/src/Disp/Tooltips/UpdateTooltips.js +++ b/src/Disp/Tooltips/UpdateTooltips.js @@ -1,543 +1,15 @@ -import GetCPSBuffMult from '../../Cache/CPS/GetCPSBuffMult'; -import { - CacheEdifice, - CacheLastChoEgg, - CacheLucky, - CacheNoGoldSwitchCookiesPS, - CacheObjects1, - CacheObjects10, - CacheObjects100, - CacheUpgrades, - CacheWrinklersFattest, - CacheWrinklersTotal, -} from '../../Cache/VariablesAndData'; -import ToggleToolWarnPos from '../../Config/Toggles/ToggleToolWarnPos'; -import { CMOptions } from '../../Config/VariablesAndData'; import CopyData from '../../Sim/SimulationData/CopyData'; -import { SimObjects } from '../../Sim/VariablesAndData'; -import { - Beautify, - FormatTime, - GetTimeColor, -} from '../BeautifyAndFormatting/BeautifyFormatting'; -import CalculateGrimoireRefillTime from '../HelperFunctions/CalculateGrimoireRefillTime'; -import GetCPS from '../HelperFunctions/GetCPS'; -import GetLumpColor from '../HelperFunctions/GetLumpColor'; -import GetWrinkConfigBank from '../HelperFunctions/GetWrinkConfigBank'; -import { - ColorTextPre, - LastTargetTooltipBuilding, - TooltipBonusIncome, - TooltipBonusMouse, - TooltipName, - TooltipPrice, - TooltipType, -} from '../VariablesAndData'; +import { TooltipName, TooltipType } from '../VariablesAndData'; import * as Create from './CreateTooltip'; - -/** Functions that update specific types of tooltips */ - -/** - * This function adds extra info to the Building tooltips - */ -function Building() { - if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { - const tooltipBox = l('CMTooltipBorder'); - Create.TooltipCreateCalculationSection(tooltipBox); - - let target; - if (Game.buyMode === 1) { - LastTargetTooltipBuilding = target; - } else { - target = LastTargetTooltipBuilding; - } - if (Game.buyBulk === 1) target = CacheObjects1; - else if (Game.buyBulk === 10) target = CacheObjects10; - else if (Game.buyBulk === 100) target = CacheObjects100; - - TooltipPrice = Game.Objects[TooltipName].bulkPrice; - TooltipBonusIncome = target[TooltipName].bonus; - - if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) { - l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); - const increase = Math.round( - (TooltipBonusIncome / Game.cookiesPs) * 10000, - ); - if (Number.isFinite(increase) && increase !== 0) { - l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; - } else { - l('CMTooltipIncome').textContent += ` (<0${ - CMOptions.ScaleSeparator ? ',' : '.' - }01% of income)`; - } - l('CMTooltipBorder').className = ColorTextPre + target[TooltipName].color; - l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); - l('CMTooltipPP').className = ColorTextPre + target[TooltipName].color; - const timeColor = GetTimeColor( - (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), - ); - l('CMTooltipTime').textContent = timeColor.text; - if ( - timeColor.text === 'Done!' && - Game.cookies < target[TooltipName].price - ) { - l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; - } else l('CMTooltipTime').textContent = timeColor.text; - l('CMTooltipTime').className = ColorTextPre + timeColor.color; - } - - // Add "production left till next achievement"-bar - l('CMTooltipProductionHeader').style.display = 'none'; - l('CMTooltipTime').style.marginBottom = '0px'; - for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) { - if ( - !Game.HasAchiev( - Game.Objects[TooltipName].productionAchievs[i].achiev.name, - ) - ) { - const nextProductionAchiev = - Game.Objects[TooltipName].productionAchievs[i]; - l('CMTooltipTime').style.marginBottom = '4px'; - l('CMTooltipProductionHeader').style.display = ''; - l('CMTooltipProduction').className = `ProdAchievement${TooltipName}`; - l('CMTooltipProduction').textContent = Beautify( - nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies, - 15, - ); - l('CMTooltipProduction').style.color = 'white'; - break; - } - } - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the Upgrade tooltips - */ -function Upgrade() { - const tooltipBox = l('CMTooltipBorder'); - Create.TooltipCreateCalculationSection(tooltipBox); - - TooltipBonusIncome = - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonus; - TooltipPrice = Game.Upgrades[ - Game.UpgradesInStore[TooltipName].name - ].getPrice(); - TooltipBonusMouse = - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonusMouse; - - if (CMOptions.TooltipBuildUpgrade === 1) { - l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2); - const increase = Math.round((TooltipBonusIncome / Game.cookiesPs) * 10000); - // Don't display certain parts of tooltip if not applicable - if ( - l('CMTooltipIncome').textContent === '0' && - (TooltipType === 'b' || TooltipType === 'u') - ) { - l('Bonus IncomeTitle').style.display = 'none'; - l('CMTooltipIncome').style.display = 'none'; - l('Payback PeriodTitle').style.display = 'none'; - l('CMTooltipPP').style.display = 'none'; - } else { - if (Number.isFinite(increase) && increase !== 0) { - l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`; - } else { - l('CMTooltipIncome').textContent += ` (<0${ - CMOptions.ScaleSeparator ? ',' : '.' - }01% of income)`; - } - l('CMTooltipBorder').className = - ColorTextPre + - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; - // If clicking power upgrade - if (TooltipBonusMouse) { - l('CMTooltipCookiePerClick').textContent = Beautify(TooltipBonusMouse); - l('CMTooltipCookiePerClick').style.display = 'block'; - l('CMTooltipCookiePerClick').previousSibling.style.display = 'block'; - } - // If only a clicking power upgrade change PP to click-based period - if (TooltipBonusIncome === 0 && TooltipBonusMouse) { - l('CMTooltipPP').textContent = `${Beautify( - TooltipPrice / TooltipBonusMouse, - )} Clicks`; - l('CMTooltipPP').style.color = 'white'; - } else { - l('CMTooltipPP').textContent = Beautify( - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, - 2, - ); - l('CMTooltipPP').className = - ColorTextPre + - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; - } - } - const timeColor = GetTimeColor( - (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), - ); - l('CMTooltipTime').textContent = timeColor.text; - if ( - timeColor.text === 'Done!' && - Game.cookies < Game.UpgradesInStore[TooltipName].getPrice() - ) { - l('CMTooltipTime').textContent = `${timeColor.text} (with Wrink)`; - } else l('CMTooltipTime').textContent = timeColor.text; - l('CMTooltipTime').className = ColorTextPre + timeColor.color; - - // Add extra info to Chocolate egg tooltip - if (Game.UpgradesInStore[TooltipName].name === 'Chocolate egg') { - l('CMTooltipBorder').lastChild.style.marginBottom = '4px'; - l('CMTooltipBorder').appendChild( - Create.TooltipCreateHeader('Cookies to be gained (Currently/Max)'), - ); - const chocolate = document.createElement('div'); - chocolate.style.color = 'white'; - chocolate.textContent = `${Beautify(Game.cookies * 0.05)} / ${Beautify( - CacheLastChoEgg, - )}`; - l('CMTooltipBorder').appendChild(chocolate); - } - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the Sugar Lump tooltip - * It adds to the additional information to l('CMTooltipArea') - */ -function SugarLump() { - if (CMOptions.TooltipLump === 1) { - const tooltipBox = l('CMTooltipBorder'); - - tooltipBox.appendChild(Create.TooltipCreateHeader('Current Sugar Lump')); - - const lumpType = document.createElement('div'); - lumpType.id = 'CMTooltipTime'; - tooltipBox.appendChild(lumpType); - const lumpColor = GetLumpColor(Game.lumpCurrentType); - lumpType.textContent = lumpColor.text; - lumpType.className = ColorTextPre + lumpColor.color; - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the Grimoire tooltips - * It adds to the additional information to l('CMTooltipArea') - */ -function Grimoire() { - const minigame = Game.Objects['Wizard tower'].minigame; - const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); - - if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) { - const tooltipBox = l('CMTooltipBorder'); - - // Time left till enough magic for spell - tooltipBox.appendChild(Create.TooltipCreateHeader('Time Left')); - const time = document.createElement('div'); - time.id = 'CMTooltipTime'; - tooltipBox.appendChild(time); - const timeColor = GetTimeColor( - CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, spellCost), - ); - time.textContent = timeColor.text; - time.className = ColorTextPre + timeColor.color; - - // Time left untill magic spent is recovered - if (spellCost <= minigame.magic) { - tooltipBox.appendChild(Create.TooltipCreateHeader('Recover Time')); - const recover = document.createElement('div'); - recover.id = 'CMTooltipRecover'; - tooltipBox.appendChild(recover); - const recoverColor = GetTimeColor( - CalculateGrimoireRefillTime( - Math.max(0, minigame.magic - spellCost), - minigame.magicM, - minigame.magic, - ), - ); - recover.textContent = recoverColor.text; - recover.className = ColorTextPre + recoverColor.color; - } - - // Extra information on cookies gained when spell is Conjure Baked Goods (Name === 0) - if (TooltipName === '0') { - tooltipBox.appendChild( - Create.TooltipCreateHeader('Cookies to be gained/lost'), - ); - const conjure = document.createElement('div'); - conjure.id = 'x'; - tooltipBox.appendChild(conjure); - const reward = document.createElement('span'); - reward.style.color = '#33FF00'; - reward.textContent = Beautify( - Math.min( - (Game.cookies + GetWrinkConfigBank()) * 0.15, - CacheNoGoldSwitchCookiesPS * 60 * 30, - ), - 2, - ); - conjure.appendChild(reward); - const seperator = document.createElement('span'); - seperator.textContent = ' / '; - conjure.appendChild(seperator); - const loss = document.createElement('span'); - loss.style.color = 'red'; - loss.textContent = Beautify(CacheNoGoldSwitchCookiesPS * 60 * 15, 2); - conjure.appendChild(loss); - } - - l('CMTooltipArea').appendChild(tooltipBox); - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the Garden plots tooltips - * It adds to the additional information to l('CMTooltipArea') - */ -function GardenPlots() { - const minigame = Game.Objects.Farm.minigame; - if ( - CMOptions.TooltipPlots && - minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0 - ) { - const mature = - minigame.plot[TooltipName[1]][TooltipName[0]][1] > - minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] - .matureBase; - const plantName = - minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1] - .name; - l('CMTooltipBorder').appendChild( - Create.TooltipCreateHeader('Reward (Current / Maximum)'), - ); - const reward = document.createElement('div'); - reward.id = 'CMTooltipPlantReward'; - l('CMTooltipBorder').appendChild(reward); - if (plantName === 'Bakeberry') { - l('CMTooltipPlantReward').textContent = `${ - mature - ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 30)) - : '0' - } / ${Beautify(Game.cookiesPs * 60 * 30)}`; - } else if (plantName === 'Chocoroot' || plantName === 'White chocoroot') { - l('CMTooltipPlantReward').textContent = `${ - mature - ? Beautify(Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3)) - : '0' - } / ${Beautify(Game.cookiesPs * 60 * 3)}`; - } else if (plantName === 'Queenbeet') { - l('CMTooltipPlantReward').textContent = `${ - mature - ? Beautify(Math.min(Game.cookies * 0.04, Game.cookiesPs * 60 * 60)) - : '0' - } / ${Beautify(Game.cookiesPs * 60 * 60)}`; - } else if (plantName === 'Duketater') { - l('CMTooltipPlantReward').textContent = `${ - mature - ? Beautify(Math.min(Game.cookies * 0.08, Game.cookiesPs * 60 * 120)) - : '0' - } / ${Beautify(Game.cookiesPs * 60 * 120)}`; - } else l('CMTooltipArea').style.display = 'none'; - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the Garden Harvest All tooltip - * It is called when the Harvest All tooltip is created or refreshed by CM.Disp.UpdateTooltip() - * It adds to the additional information to l('CMTooltipArea') - */ -function HarvestAll() { - const minigame = Game.Objects.Farm.minigame; - if (CMOptions.TooltipLump) { - l('CMTooltipBorder').appendChild( - Create.TooltipCreateHeader('Cookies gained from harvesting:'), - ); - let totalGain = 0; - let mortal = 0; - if (Game.keys[16] && Game.keys[17]) mortal = 1; - for (let y = 0; y < 6; y++) { - for (let x = 0; x < 6; x++) { - if (minigame.plot[y][x][0] >= 1) { - const tile = minigame.plot[y][x]; - const me = minigame.plantsById[tile[0] - 1]; - const plantName = me.name; - - let count = true; - if (mortal && me.immortal) count = false; - if (tile[1] < me.matureBase) count = false; - if (count && plantName === 'Bakeberry') { - totalGain += Math.min( - Game.cookies * 0.03, - Game.cookiesPs * 60 * 30, - ); - } else if ( - (count && plantName === 'Chocoroot') || - plantName === 'White chocoroot' - ) { - totalGain += Math.min(Game.cookies * 0.03, Game.cookiesPs * 60 * 3); - } else if (count && plantName === 'Queenbeet') { - totalGain += Math.min( - Game.cookies * 0.04, - Game.cookiesPs * 60 * 60, - ); - } else if (count && plantName === 'Duketater') { - totalGain += Math.min( - Game.cookies * 0.08, - Game.cookiesPs * 60 * 120, - ); - } - } - } - } - l('CMTooltipBorder').appendChild( - document.createTextNode(Beautify(totalGain)), - ); - } else l('CMTooltipArea').style.display = 'none'; -} - -/** - * This function adds extra info to the wrinkler button tooltip - * It adds to the additional information to l('CMTooltipArea') - */ -function WrinklerButton() { - l('tooltip').innerHTML = ''; - l('tooltip').appendChild(Create.TooltipCreateHeader('Reward:')); - - const WrinklerReward = document.createElement('div'); - WrinklerReward.id = 'CMWrinklerReward'; - if (TooltipName === 'PopAll') { - WrinklerReward.textContent = CacheWrinklersTotal; - } else if (TooltipName === 'PopFattest') { - WrinklerReward.textContent = CacheWrinklersFattest[0]; - } - - l('tooltip').appendChild(WrinklerReward); -} - -/** - * This function updates the warnings section of the building and upgrade tooltips - */ -function Warnings() { - if (TooltipType === 'b' || TooltipType === 'u') { - if (document.getElementById('CMDispTooltipWarningParent') === null) { - l('tooltipAnchor').appendChild(Create.TooltipCreateWarningSection()); - ToggleToolWarnPos(); - } - - if (CMOptions.ToolWarnPos === 0) - l('CMDispTooltipWarningParent').style.right = '0px'; - else - l('CMDispTooltipWarningParent').style.top = `${ - l('tooltip').offsetHeight - }px`; - - l('CMDispTooltipWarningParent').style.width = `${ - l('tooltip').offsetWidth - 6 - }px`; - - const amount = Game.cookies + GetWrinkConfigBank() - TooltipPrice; - const bonusIncomeUsed = CMOptions.ToolWarnBon ? TooltipBonusIncome : 0; - let limitLucky = CacheLucky; - if (CMOptions.ToolWarnBon === 1) { - let bonusNoFren = TooltipBonusIncome; - bonusNoFren /= GetCPSBuffMult(); - limitLucky += (bonusNoFren * 60 * 15) / 0.15; - } - - if (CMOptions.ToolWarnLucky === 1) { - if (amount < limitLucky && (TooltipType !== 'b' || Game.buyMode === 1)) { - l('CMDispTooltipWarnLucky').style.display = ''; - l('CMDispTooltipWarnLuckyText').textContent = `${Beautify( - limitLucky - amount, - )} (${FormatTime( - (limitLucky - amount) / (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnLucky').style.display = 'none'; - } else l('CMDispTooltipWarnLucky').style.display = 'none'; - - if (CMOptions.ToolWarnLuckyFrenzy === 1) { - const limitLuckyFrenzy = limitLucky * 7; - if ( - amount < limitLuckyFrenzy && - (TooltipType !== 'b' || Game.buyMode === 1) - ) { - l('CMDispTooltipWarnLuckyFrenzy').style.display = ''; - l('CMDispTooltipWarnLuckyFrenzyText').textContent = `${Beautify( - limitLuckyFrenzy - amount, - )} (${FormatTime( - (limitLuckyFrenzy - amount) / (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; - } else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none'; - - if (CMOptions.ToolWarnConjure === 1) { - const limitConjure = limitLucky * 2; - if ( - amount < limitConjure && - (TooltipType !== 'b' || Game.buyMode === 1) - ) { - l('CMDispTooltipWarnConjure').style.display = ''; - l('CMDispTooltipWarnConjureText').textContent = `${Beautify( - limitConjure - amount, - )} (${FormatTime( - (limitConjure - amount) / (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnConjure').style.display = 'none'; - } else l('CMDispTooltipWarnConjure').style.display = 'none'; - - if (CMOptions.ToolWarnConjureFrenzy === 1) { - const limitConjureFrenzy = limitLucky * 2 * 7; - if ( - amount < limitConjureFrenzy && - (TooltipType !== 'b' || Game.buyMode === 1) - ) { - l('CMDispTooltipWarnConjureFrenzy').style.display = ''; - l('CMDispTooltipWarnConjureFrenzyText').textContent = `${Beautify( - limitConjureFrenzy - amount, - )} (${FormatTime( - (limitConjureFrenzy - amount) / (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; - } else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none'; - - if ( - CMOptions.ToolWarnEdifice === 1 && - Game.Objects['Wizard tower'].minigameLoaded - ) { - if ( - CacheEdifice && - amount < CacheEdifice && - (TooltipType !== 'b' || Game.buyMode === 1) - ) { - l('CMDispTooltipWarnEdifice').style.display = ''; - l('CMDispTooltipWarnEdificeText').textContent = `${Beautify( - CacheEdifice - amount, - )} (${FormatTime( - (CacheEdifice - amount) / (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnEdifice').style.display = 'none'; - } else l('CMDispTooltipWarnEdifice').style.display = 'none'; - - if (CMOptions.ToolWarnUser > 0) { - if ( - amount < CMOptions.ToolWarnUser * GetCPS() && - (TooltipType !== 'b' || Game.buyMode === 1) - ) { - l('CMDispTooltipWarnUser').style.display = ''; - // Need to update tooltip text dynamically - l( - 'CMDispTooltipWarnUser', - ).children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`; - l('CMDispTooltipWarnUserText').textContent = `${Beautify( - CMOptions.ToolWarnUser * GetCPS() - amount, - )} (${FormatTime( - (CMOptions.ToolWarnUser * GetCPS() - amount) / - (GetCPS() + bonusIncomeUsed), - )})`; - } else l('CMDispTooltipWarnUser').style.display = 'none'; - } else l('CMDispTooltipWarnUser').style.display = 'none'; - } else if (l('CMDispTooltipWarningParent') !== null) { - l('CMDispTooltipWarningParent').remove(); - } -} +import Building from './TypesOfTooltips/Building'; +import GardenPlots from './TypesOfTooltips/GardenPlots'; +import Grimoire from './TypesOfTooltips/Grimoire'; +import HarvestAll from './TypesOfTooltips/HarvestAll'; +import PantheonGods from './TypesOfTooltips/PantheonGods'; +import SugarLump from './TypesOfTooltips/SugarLump'; +import Upgrade from './TypesOfTooltips/Upgrade'; +import Warnings from './TypesOfTooltips/Warnings'; +import WrinklerButton from './TypesOfTooltips/WrinklerButton'; /** * This function updates the sections of the tooltips created by CookieMonster @@ -562,8 +34,12 @@ export default function UpdateTooltips() { } else if (TooltipType === 'ha') { HarvestAll(); } else if (TooltipType === 'wb') { - l('CMTooltipArea').innerHTML = ''; WrinklerButton(); + } else if ( + TooltipType === 'pag' || + (TooltipType === 'pas' && TooltipName[1] !== -1) + ) { + PantheonGods(); } Warnings(); } else if (l('CMTooltipArea') === null) { diff --git a/src/Main/Loop.js b/src/Main/Loop.js index 1718873d..b16e1c8a 100644 --- a/src/Main/Loop.js +++ b/src/Main/Loop.js @@ -3,6 +3,7 @@ import LoopCache from '../Cache/CacheLoop'; import CacheNoGoldSwitchCPS from '../Cache/CPS/NoGoldSwitchCPS'; import CacheSellAllForChoEgg from '../Cache/CPS/SellChoEgg'; import CacheDragonCost from '../Cache/Dragon/Dragon'; +import CachePantheonGods from '../Cache/PantheonGods/CacheGods'; import { CacheBuildingsPrices, CacheIncome, @@ -57,6 +58,7 @@ export default function CMLoop() { CacheAllMissingUpgrades(); CacheChain(); CacheDragonCost(); + CachePantheonGods(); CacheSeasonSpec(); CacheSellAllForChoEgg(); diff --git a/src/Main/ReplaceGameElements/Tooltips.js b/src/Main/ReplaceGameElements/Tooltips.js index d9f764d7..ad928619 100644 --- a/src/Main/ReplaceGameElements/Tooltips.js +++ b/src/Main/ReplaceGameElements/Tooltips.js @@ -86,6 +86,40 @@ function ReplaceTooltipGarden() { } } +function ReplaceTooltipPantheon() { + if (Game.Objects.Temple.minigameLoaded) { + for (let i = 0; i < 11; i += 1) { + l(`templeGod${i}`).onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('pag', i); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + } + for (let i = 0; i < 3; i += 1) { + l(`templeSlot${i}`).onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('pas', [ + i, + Game.Objects.Temple.minigame.slot[i], + ]); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + } + } +} + /** * This function call all functions that replace Game-tooltips with Cookie Monster enhanced tooltips */ @@ -100,6 +134,7 @@ export default function ReplaceTooltips() { LoadMinigames(); ReplaceTooltipGarden(); ReplaceTooltipGrimoire(); + ReplaceTooltipPantheon(); ReplaceNativeGrimoire(); }; Game.LoadMinigames(); diff --git a/src/Sim/ReplacedGameFunctions/SimHasGod.js b/src/Sim/ReplacedGameFunctions/SimHasGod.js index c863875a..ffcd8600 100644 --- a/src/Sim/ReplacedGameFunctions/SimHasGod.js +++ b/src/Sim/ReplacedGameFunctions/SimHasGod.js @@ -1,4 +1,4 @@ -import { SimObjects } from '../VariablesAndData'; +import { SimGod1, SimGod2, SimGod3, SimObjects } from '../VariablesAndData'; /** * This function checks for the current God level in the sim data @@ -11,10 +11,14 @@ export default function SimHasGod(what) { SimObjects.Temple.minigame = Game.Objects.Temple.minigame; } const god = SimObjects.Temple.minigame.gods[what]; - for (let i = 0; i < 3; i++) { - if (SimObjects.Temple.minigame.slot[i] === god.id) { - return i + 1; - } + if (SimGod1 === god.id) { + return 1; + } + if (SimGod2 === god.id) { + return 2; + } + if (SimGod3 === god.id) { + return 3; } } return false; diff --git a/src/Sim/SimulationData/CopyData.js b/src/Sim/SimulationData/CopyData.js index 3af0ea49..3a912c19 100644 --- a/src/Sim/SimulationData/CopyData.js +++ b/src/Sim/SimulationData/CopyData.js @@ -13,6 +13,9 @@ import { SimAchievementsOwned, SimDragonAura, SimDragonAura2, + SimGod1, + SimGod2, + SimGod3, SimHeavenlyPower, SimObjects, SimPledges, @@ -49,6 +52,11 @@ export default function CopyData() { you.basePrice = me.basePrice; you.free = me.free; if (me.minigameLoaded) { + if (me.name === 'Temple') { + SimGod1 = me.minigame.slot[0]; + SimGod2 = me.minigame.slot[1]; + SimGod3 = me.minigame.slot[2]; + } you.minigameLoaded = me.minigameLoaded; you.minigame = me.minigame; } diff --git a/src/Sim/SimulationEvents/GodChange.js b/src/Sim/SimulationEvents/GodChange.js new file mode 100644 index 00000000..b86e7800 --- /dev/null +++ b/src/Sim/SimulationEvents/GodChange.js @@ -0,0 +1,34 @@ +/* eslint-disable no-unused-vars */ +import CalculateGains from '../Calculations/CalculateGains'; +import CheckOtherAchiev from '../Calculations/CheckOtherAchiev'; +import CopyData from '../SimulationData/CopyData'; +import { + SimAchievementsOwned, + SimCookiesPs, + SimGod1, + SimGod2, + SimGod3, +} from '../VariablesAndData'; + +/** + * This functions calculates the cps and cost of changing a Dragon Aura + * It is called by CM.Disp.AddAuraInfo() + * @param {number} god The number of the slot to be swapped in + * * @param {number slot The slot the god will go to + * @returns {number} CM.Sim.cookiesPs - Game.cookiesPs The bonus cps and the price of the change + */ +export default function CalculateChangeGod(god, slot) { + CopyData(); + if (slot === 0) SimGod1 = god; + else if (slot === 1) SimGod2 = god; + else if (slot === 2) SimGod3 = god; + + const lastAchievementsOwned = SimAchievementsOwned; + CalculateGains(); + + CheckOtherAchiev(); + if (lastAchievementsOwned !== SimAchievementsOwned) { + CalculateGains(); + } + return SimCookiesPs - Game.cookiesPs; +} diff --git a/src/Sim/VariablesAndData.js b/src/Sim/VariablesAndData.js index 44f19ab3..0fafbeca 100644 --- a/src/Sim/VariablesAndData.js +++ b/src/Sim/VariablesAndData.js @@ -12,6 +12,9 @@ export let SimHeavenlyPower; export let SimPrestige; export let SimDragonAura; export let SimDragonAura2; +export let SimGod1; +export let SimGod2; +export let SimGod3; export let SimDoSims; export let SimEffs; export let SimDateCentury = Game.startDate; From 87eac02185e1a53f6b065eb33fb7ffbbf43f7c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Mon, 15 Mar 2021 23:47:48 +0100 Subject: [PATCH 05/25] Fix dev build --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 93a56918..87b95060 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function xo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=vo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=wo(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=ko(e),o=Xt[e]),o.won=t.won,Xt[e]=o}bo(),Le=He,Ae=$e}function To(e,t,o,n,i){let a=0;for(let r=0;rt.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Po(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Fo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Oo(e[t],e[t].price)}function Wo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Oo(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Oo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Lo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Lo("Elder"),!$o("Veteran")&&e>=14&&Lo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),$o("Mathematician")||Vt[e].amount=1&&Lo("One with everything"),1===o&&Lo("Mathematician"),1===n&&Lo("Base 10"),i>=100&&Lo("Centennial"),i>=150&&Lo("Centennial and a half"),i>=200&&Lo("Bicentennial"),i>=250&&Lo("Bicentennial and a half"),i>=300&&Lo("Tricentennial"),i>=350&&Lo("Tricentennial and a half"),i>=400&&Lo("Quadricentennial"),i>=450&&Lo("Quadricentennial and a half"),i>=500&&Lo("Quincentennial"),i>=550&&Lo("Quincentennial and a half"),i>=600&&Lo("Sexcentennial"),t>=100&&Lo("Builder"),t>=500&&Lo("Architect"),t>=1e3&&Lo("Engineer"),t>=2e3&&Lo("Lord of Constructs"),t>=4e3&&Lo("Grand design"),t>=8e3&&Lo("Ecumenopolis"),Ee>=20&&Lo("Enhancer"),Ee>=50&&Lo("Augmenter"),Ee>=100&&Lo("Upgrader"),Ee>=200&&Lo("Lord of Progress"),Ee>=300&&Lo("The full picture"),Ee>=400&&Lo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Lo("Polymath"),t>=8e3&&Ee>=400&&Lo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Lo("The elder scrolls");let a=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(a=!1);a&&Lo("Spooky cookies");let r=!0;for(const e of Object.keys(Do))Zt(Do[e])||(r=!1);if(r&&Lo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Lo("O Fortuna")}}function zo(e,t){xo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Lo("Click"),o.amount>=2&&Lo("Double-click"),o.amount>=50&&Lo("Mouse wheel"),o.amount>=100&&Lo("Of Mice and Men"),o.amount>=200&&Lo("The Digital"),o.amount>=300&&Lo("Extreme polydactyly"),o.amount>=400&&Lo("Dr. T"),o.amount>=500&&Lo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Lo("With her finger and her thumb"),o.amount>=700&&Lo("Gotta hand it to you"),o.amount>=800&&Lo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Lo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Ao(),Io(),n!==Oe&&Ao(),De-Game.cookiesPs}function Vo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){xo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Lo("Elder nap"),Ne>=5&&Lo("Elder slumber")):"Elder Covenant"===e?Lo("Elder calm"):"Prism heart biscuits"===e?Lo("Lovely cookies"):"Heavenly key"===e&&Lo("Wholesome");const t=Oe;Ao(),Io(),t!==Oe&&Ao();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function _o(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=zo(t,e),1!==e&&(Se=1);return o}function Xo(){for(const e of Object.keys(Game.Objects))ct[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Qo(){ct=_o(1),dt=_o(10),pt=_o(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Vo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Zo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function on(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function nn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function an(){bo(),nn(),tn(),on(),Yo(),Zo(),en(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Ko(),No(),Qo(),Xo(),Wo()}const rn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},ln=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function sn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function dn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class un{constructor(e,t){this.type=e,this.group=t}}class mn extends un{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class hn extends un{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class fn extends un{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new mn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){sn()})),TimerBar:new mn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new mn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new mn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new mn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new mn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new mn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new mn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new mn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends un{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){dn()})),UpgradeBarFixedPos:new mn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new mn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new mn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new mn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new mn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new mn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Wo()})),PPExcludeTop:new mn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new fn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new mn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new mn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new mn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new mn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new mn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){ln(e.GCNotification)})),GCFlash:new mn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new mn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new hn("vol","NotificationGC",[],"Volume"),GCSoundURL:new mn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new mn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){ln(e.FortuneNotification)})),FortuneFlash:new mn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new mn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new hn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new mn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new mn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){ln(e.SeaNotification)})),SeaFlash:new mn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new mn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new hn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new mn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new mn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new mn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new hn("vol","NotificationGard",[],"Volume"),GardSoundURL:new mn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new mn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){ln(e.MagicNotification)})),MagicFlash:new mn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new mn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new hn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new mn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new mn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){ln(e.WrinklerNotification)})),WrinklerFlash:new mn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new mn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new hn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new mn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new mn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){ln(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new mn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new mn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new hn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new mn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new mn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new mn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new mn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new mn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new mn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new mn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new mn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new fn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new mn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new mn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new mn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new mn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new mn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new mn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new mn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new mn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new mn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new mn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new mn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new mn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new mn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new fn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new mn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new mn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){cn()})),ScaleDecimals:new mn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){cn()})),ScaleSeparator:new mn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){cn()})),ScaleCutoff:new fn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new mn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new mn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){pn()})),WrinklerButtons:new mn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new mn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function Cn(){return JSON.stringify({settings:e,version:"2.031.5"})}function yn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){nn(),Wo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?xn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):xn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Mn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${Cn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Sn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in rn)if(void 0===e[t])o=!0,e[t]=rn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=rn[t][n]);else for(const n in rn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=rn[t][n]);o&&Mn(),Tn();for(const e in rn)"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}else Sn(rn)}function Bn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Mn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;xo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Ao(),t=De,xo()),Wt>=1e6&&Lo("Sacrifice"),Wt>=1e9&&Lo("Oblivion"),Wt>=1e12&&Lo("From scratch"),Wt>=1e15&&Lo("Nihilism"),Wt>=1e18&&Lo("Dematerialize"),Wt>=1e21&&Lo("Nil zero zilch"),Wt>=1e24&&Lo("Transcendence"),Wt>=1e27&&Lo("Obliterate"),Wt>=1e30&&Lo("Negative void"),Wt>=1e33&&Lo("To crumbs, you say?"),Wt>=1e36&&Lo("You get nothing"),Wt>=1e39&&Lo("Humble rebeginnings"),Wt>=1e42&&Lo("The end of the world"),Wt>=1e45&&Lo("Oh, you're back"),Wt>=1e48&&Lo("Lazarus"),Wt>=1e51&&Lo("Smurf account"),Wt>=1e54&&Lo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Ao(),Io(),o!==Oe&&Ao();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Bn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(i.push(Uo[e]),n=!0);const a=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(a.push(Do[e]),n=!0);const r=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(r.push(Ro[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ho))Game.HasUnlocked(Ho[e])||(d.push(Ho[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(jo))Game.Has(jo[t])||e.push(jo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Mn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Mn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Mn(),cn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Ao(),Io(),o!==Oe&&Ao(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in gn)gn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(gn))gn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Sn(rn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),tn(),an(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Mo(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Bn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Sn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",Tn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Sn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Cn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 93a56918..87b95060 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He=0,$e=0,Ie=0,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=1,nt=1,it=1,at=0,rt=0,lt=0,st=0,ct={},dt={},pt={},ut=0,mt=0,ht=[0,null],ft=0,gt=0,Ct={},yt={},bt={},kt={},Gt={},vt=0,wt=0,xt=[],Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At={},jt={},Ut=0,Dt=0,Rt=0,Ht=0,$t=[],It={},zt=0,Vt=[],_t=[],Xt=[],Qt=Game.startDate,qt=Game.startDate;function Yt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Kt(){let e=.25;return e*=1+Yt("Earth Shatterer"),e}function Jt(e,t){return void 0===Ue[e]?void 0===t?1:t:Ue[e]}function Zt(e){const t=_t[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function eo(e){if(Game.hasGod){void 0===Vt.Temple.minigame&&(Vt.Temple.minigame=Game.Objects.Temple.minigame);const t=Vt.Temple.minigame.gods[e];for(let e=0;e<3;e++)if(Vt.Temple.minigame.slot[e]===t.id)return e+1}return!1}function to(e,t){if(Zt("Season savings")&&(t*=.99),Zt("Santa's dominion")&&(t*=.99),Zt("Faberge egg")&&(t*=.99),Zt("Divine discount")&&(t*=.99),Zt("Fortune #100")&&(t*=.99),t*=1-.02*Yt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&Zt(e.fortune.name)&&(t*=.93),t*=Jt("buildingCost"),Vt.Temple.minigameLoaded){const e=eo("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function oo(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function no(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ct:10===t?t=dt:100===t&&(t=pt),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ct)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(oo(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ct[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(Zt("Starlove")&&(e=3),Game.hasGod){const t=eo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function xo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=Vt[e];void 0===o&&(Vt[e]=vo(e),o=Vt[e],so(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&(o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Vt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=_t[e];void 0===o&&(_t[e]=wo(e),o=_t[e]),o.bought=t.bought,_t[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Xt[e];void 0===o&&(Xt[e]=ko(e),o=Xt[e]),o.won=t.won,Xt[e]=o}bo(),Le=He,Ae=$e}function To(e,t,o,n,i){let a=0;for(let r=0;rt.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(Co("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z&&function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Co("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t&&(l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Po(){if(Game.prefs.autosave&&Game.drawT%10==0&&"stats"===Game.onMenu&&e.Stats){const e=document.getElementById("CMStatsAutosaveTimer");e&&(e.innerText=Game.sayTime(60*Game.fps-Game.T%(60*Game.fps),4))}no(),io(),function(){if(1===e.TimerBar){const t=l("CMTimerBar").offsetWidth-163,o=l("CMTimerBar").offsetWidth-133;let n=0;0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=lo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,uo())}}(),co(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Vt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+zt;Game.cpsSucked>0&&(o+=ut),Wt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ut-Ce)/n,r=Math.max(0,ht[0]-ye)/n,l=Math.max(0,o-st)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eHt?W:t.pp>Rt?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/ao()0&&(n=F),n}function Fo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+ro()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Oo(e[t],e[t].price)}function Wo(){!function(){if(Dt=1/0,Ht=1,$t=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ct))Game.cookiesPs?ct[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ct[e].bonus:ct[e].pp=Game.Objects[e].getPrice()/ct[e].bonus,$t.push([ct[e].pp,Game.Objects[e].getPrice()]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const t of Object.keys(ct)){ct[t].color=Oo(ct[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ct:10===Game.buyBulk?t=dt:100===Game.buyBulk&&(t=pt);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+ro()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,$t.push([t[e].pp,Game.Objects[e].bulkPrice]);if($t.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;$t[0][1]>Game.cookies&&1!==$t.length;)$t.shift();Dt=$t[e.PPExcludeTop][0],Ht=$t[$t.length-1][0],Rt=(Ht-Dt)/2+Dt;for(const o of Object.keys(ct)){t[o].color=Oo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&Lo(Game.CpsAchievements[e].name);Re=l;const s=Game.shimmerTypes.golden.n,c=Yt("Dragon's Fortune");for(let t=0;t=7&&Lo("Elder"),!$o("Veteran")&&e>=14&&Lo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(Vt))t+=Vt[e].amount,i=Math.min(Vt[e].amount,i),$o("Mathematician")||Vt[e].amount=1&&Lo("One with everything"),1===o&&Lo("Mathematician"),1===n&&Lo("Base 10"),i>=100&&Lo("Centennial"),i>=150&&Lo("Centennial and a half"),i>=200&&Lo("Bicentennial"),i>=250&&Lo("Bicentennial and a half"),i>=300&&Lo("Tricentennial"),i>=350&&Lo("Tricentennial and a half"),i>=400&&Lo("Quadricentennial"),i>=450&&Lo("Quadricentennial and a half"),i>=500&&Lo("Quincentennial"),i>=550&&Lo("Quincentennial and a half"),i>=600&&Lo("Sexcentennial"),t>=100&&Lo("Builder"),t>=500&&Lo("Architect"),t>=1e3&&Lo("Engineer"),t>=2e3&&Lo("Lord of Constructs"),t>=4e3&&Lo("Grand design"),t>=8e3&&Lo("Ecumenopolis"),Ee>=20&&Lo("Enhancer"),Ee>=50&&Lo("Augmenter"),Ee>=100&&Lo("Upgrader"),Ee>=200&&Lo("Lord of Progress"),Ee>=300&&Lo("The full picture"),Ee>=400&&Lo("When there's nothing left to add"),t>=4e3&&Ee>=300&&Lo("Polymath"),t>=8e3&&Ee>=400&&Lo("Renaissance baker"),Vt.Cursor.amount+Vt.Grandma.amount>=777&&Lo("The elder scrolls");let a=!0;for(const e of Object.keys(Uo))Zt(Uo[e])||(a=!1);a&&Lo("Spooky cookies");let r=!0;for(const e of Object.keys(Do))Zt(Do[e])||(r=!1);if(r&&Lo("Let it snow"),Zt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))Zt(e[o].name)&&t++;t>=e.length&&Lo("O Fortuna")}}function zo(e,t){xo(),Vt[e].amount+=t;const o=Vt[e];if("Cursor"===e)o.amount>=1&&Lo("Click"),o.amount>=2&&Lo("Double-click"),o.amount>=50&&Lo("Mouse wheel"),o.amount>=100&&Lo("Of Mice and Men"),o.amount>=200&&Lo("The Digital"),o.amount>=300&&Lo("Extreme polydactyly"),o.amount>=400&&Lo("Dr. T"),o.amount>=500&&Lo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Lo("With her finger and her thumb"),o.amount>=700&&Lo("Gotta hand it to you"),o.amount>=800&&Lo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Lo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Ao(),Io(),n!==Oe&&Ao(),De-Game.cookiesPs}function Vo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){xo(),"Shimmering veil [on]"===_t[e].name?_t["Shimmering veil [off]"].bought=0:"Golden switch [on]"===_t[e].name?_t["Golden switch [off]"].bought=0:_t[e].bought=(_t[e].bought+1)%2,_t[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&Lo("Elder nap"),Ne>=5&&Lo("Elder slumber")):"Elder Covenant"===e?Lo("Elder calm"):"Prism heart biscuits"===e?Lo("Lovely cookies"):"Heavenly key"===e&&Lo("Wholesome");const t=Oe;Ao(),Io(),t!==Oe&&Ao();const o=function(){let e=0;Zt("Thousand fingers")&&(e+=.1),Zt("Million fingers")&&(e*=5),Zt("Billion fingers")&&(e*=10),Zt("Trillion fingers")&&(e*=20),Zt("Quadrillion fingers")&&(e*=20),Zt("Quintillion fingers")&&(e*=20),Zt("Sextillion fingers")&&(e*=20),Zt("Septillion fingers")&&(e*=20),Zt("Octillion fingers")&&(e*=20),Zt("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(Vt))t+=Vt[e].amount;t-=Vt.Cursor.amount,e*=t,Zt("Plastic mouse")&&(e+=.01*De),Zt("Iron mouse")&&(e+=.01*De),Zt("Titanium mouse")&&(e+=.01*De),Zt("Adamantium mouse")&&(e+=.01*De),Zt("Unobtainium mouse")&&(e+=.01*De),Zt("Eludium mouse")&&(e+=.01*De),Zt("Wishalloy mouse")&&(e+=.01*De),Zt("Fantasteel mouse")&&(e+=.01*De),Zt("Nevercrack mouse")&&(e+=.01*De),Zt("Armythril mouse")&&(e+=.01*De),Zt("Technobsidian mouse")&&(e+=.01*De),Zt("Plasmarble mouse")&&(e+=.01*De),Zt("Miraculite mouse")&&(e+=.01*De),Zt("Fortune #104")&&(e+=.01*De);let o=1;if(Zt("Santa's helpers")&&(o*=1.1),Zt("Cookie egg")&&(o*=1.1),Zt("Halo gloves")&&(o*=1.1),Zt("Dragon claw")&&(o*=1.03),Zt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,Zt("Luminous gloves")?20:10)),o*=Jt("click"),Vt.Temple.minigameLoaded&&eo){const e=eo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*Yt("Dragon Cursor");let n=o*Game.ComputeCps(1,Zt("Reinforced index finger")+Zt("Carpal tunnel prevention cream")+Zt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[De-Game.cookiesPs,o]:[De-Game.cookiesPs]}return[]}function _o(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=zo(t,e),1!==e&&(Se=1);return o}function Xo(){for(const e of Object.keys(Game.Objects))ct[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),dt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),pt[e].price=To(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Qo(){ct=_o(1),dt=_o(10),pt=_o(100),function(){Ct=[];for(const e of Object.keys(Game.Upgrades)){const t=Vo(e);Ct[e]={},t[0]&&(Ct[e].bonus=t[0]),t[1]&&(Ct[e].bonusMouse=t[1])}}()}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,xt=qo(7,e,nt),vt=2*xt[1]/nt,wt=xt[2]/60/60/6/ot,St=qo(6,e,it),Tt=2*St[1]/it,Mt=St[2]/60/60/6/ot,Et=qo(7,7*e,nt),Bt=2*Et[1]/nt,Pt=Et[2]/60/60/6/ot,Ft=qo(6,7*e,it),Nt=2*Ft[1]/it,Ot=Ft[2]/60/60/6/ot}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function Zo(){bt="",Gt="",kt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Ve/=e:Ve=0,_e=nt*(.15*Ve)+13,Xe=it*(.15*Ve)+13,Qe=7*Ve,qe=nt*(.15*Qe)+13,Ye=it*(.15*Qe)+13,Ke=2*Ve,Je=.15*Ke,Ze=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountZe&&(Ze=2*Game.Objects[e].price,et=e)}function on(){let e=1,t=1,o=1;Zt("Green yeast digestives")&&(o*=1.01),Zt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),nt=o*e,it=o*t,ot=1,0===Game.shimmerTypes.golden.n&&(ot*=1+1.23*Game.auraMult("Dragon's Fortune"))}function nn(){ut=0,mt=0,ht=[0,null];for(let e=0;eht[0]&&(ht=[t,e]))}}function an(){bo(),nn(),tn(),on(),Yo(),Zo(),en(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Ko(),No(),Qo(),Xo(),Wo()}const rn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},ln=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function sn(){1===e.BotBar?(l("CMBotBar").style.display="",co()):l("CMBotBar").style.display="none",uo()}function cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),co(),no(),io()}function dn(){let t="";for(let o=0;o0?At.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class un{constructor(e,t){this.type=e,this.group=t}}class mn extends un{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class hn extends un{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class fn extends un{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new mn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){sn()})),TimerBar:new mn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){mo()})),TimerBarPos:new mn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),uo()})),TimerBarOverlay:new mn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new mn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){no()})),SortUpgrades:new mn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){io()})),BuildColor:new mn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){no()})),BulkBuildColor:new mn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){no()})),UpBarColor:new mn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",io()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",io()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends un{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){dn()})),UpgradeBarFixedPos:new mn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new mn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new mn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new mn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new mn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new mn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Wo()})),PPExcludeTop:new mn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new fn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new mn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new mn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new mn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new mn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new mn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){ln(e.GCNotification)})),GCFlash:new mn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new mn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new hn("vol","NotificationGC",[],"Volume"),GCSoundURL:new mn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new mn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){ln(e.FortuneNotification)})),FortuneFlash:new mn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new mn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new hn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new mn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new mn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){ln(e.SeaNotification)})),SeaFlash:new mn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new mn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new hn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new mn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new mn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new mn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new hn("vol","NotificationGard",[],"Volume"),GardSoundURL:new mn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new mn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){ln(e.MagicNotification)})),MagicFlash:new mn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new mn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new hn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new mn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new mn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){ln(e.WrinklerNotification)})),WrinklerFlash:new mn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new mn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new hn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new mn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new mn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){ln(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new mn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new mn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new hn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new mn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new mn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new mn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new mn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new mn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new mn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new mn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new mn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new fn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new mn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){fo()})),TooltipGrim:new mn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new mn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new mn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new mn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),DragonAuraInfo:new mn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new mn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new mn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new mn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new mn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new mn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new mn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new mn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new fn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new mn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new mn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){cn()})),ScaleDecimals:new mn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){cn()})),ScaleSeparator:new mn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){cn()})),ScaleCutoff:new fn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new mn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=It[e].l.style.left,ie[e].style.top=It[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new mn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){pn()})),WrinklerButtons:new mn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new mn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function Cn(){return JSON.stringify({settings:e,version:"2.031.5"})}function yn(){if(Ie!==Game.dragonLevel||je){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);Vt[e].amount--,Pe--}for(const t of Object.keys(Vt)){const o=Vt[t];e+=oo(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),zt=e}(),je=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){nn(),Wo(),function(){ft=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(Vt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}gt=e,ft=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ut=le(e/ao())}(),function(){!function(){k=0,It={};for(const e of Object.keys(Game.shimmers))It[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(At=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===It[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?xn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):xn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Mn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${Cn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Sn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in rn)if(void 0===e[t])o=!0,e[t]=rn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=rn[t][n]);else for(const n in rn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=rn[t][n]);o&&Mn(),Tn();for(const e in rn)"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}else Sn(rn)}function Bn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function Pn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Mn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+ro()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/at)))))}const l=function(e){let t=Game.cookiesPs;xo(),0===_t["Heavenly key"].bought&&(_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,Ao(),t=De,xo()),Wt>=1e6&&Lo("Sacrifice"),Wt>=1e9&&Lo("Oblivion"),Wt>=1e12&&Lo("From scratch"),Wt>=1e15&&Lo("Nihilism"),Wt>=1e18&&Lo("Dematerialize"),Wt>=1e21&&Lo("Nil zero zilch"),Wt>=1e24&&Lo("Transcendence"),Wt>=1e27&&Lo("Obliterate"),Wt>=1e30&&Lo("Negative void"),Wt>=1e33&&Lo("To crumbs, you say?"),Wt>=1e36&&Lo("You get nothing"),Wt>=1e39&&Lo("Humble rebeginnings"),Wt>=1e42&&Lo("The end of the world"),Wt>=1e45&&Lo("Oh, you're back"),Wt>=1e48&&Lo("Lazarus"),Wt>=1e51&&Lo("Smurf account"),Wt>=1e54&&Lo("If at first you don't succeed"),_t["Heavenly chip secret"].bought=1,_t["Heavenly cookie stand"].bought=1,_t["Heavenly bakery"].bought=1,_t["Heavenly confectionery"].bought=1,_t["Heavenly key"].bought=1,We=e;const o=Oe;Ao(),Io(),o!==Oe&&Ao();const n=De-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ut)} / ${re(mt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Bn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(ht[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==ht[1]?ht[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Uo))Game.Has(Uo[e])||(i.push(Uo[e]),n=!0);const a=[];for(const e of Object.keys(Do))Game.Has(Do[e])||(a.push(Do[e]),n=!0);const r=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(r.push(Ro[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Ho))Game.HasUnlocked(Ho[e])||(d.push(Ho[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(lt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(st)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(rt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(ao(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(yt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(jo))Game.Has(jo[t])||e.push(jo[t]);0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&kt){const t=kt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=kt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(bt){const t=bt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=bt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Gt){const t=Gt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Gt,e.appendChild(i)}}}()}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]++,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Mn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Mn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Mn(),cn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),je=1,qt=Date.now(),Qt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Vt[Game.ObjectsById[e].name].name;Vt[o].amount-=1,Pe-=1,t=Vt[o].basePrice*Game.priceIncrease**Math.max(0,Vt[o].amount-1-Vt[o].free),t=Game.modifyBuildingPrice(Vt[o],t),t=Math.ceil(t);break}const o=Oe;return Ao(),Io(),o!==Oe&&Ao(),[De-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${ze}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(Hn)){const n=In(t,Hn[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys($n)){const n=In(t,$n[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in gn)gn[e].group===t&&o.appendChild(zn(e))}else for(const e of Object.keys(gn))gn[e].group===t&&o.appendChild(zn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Sn(rn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=At?At.wrath?`[W${Math.ceil(At.life/Game.fps)}]`:`[G${Math.ceil(At.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(jt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;At&&(t=!0,At.wrath?e+=`[W${Math.ceil(At.life/Game.fps)}]`:e+=`[G${Math.ceil(At.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(jt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ut} to reach the next level and you are making ${re(at,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),tn(),an(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))so(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=lo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=lo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))Mo(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Bn()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==ht[1]&&(Game.wrinklers[ht[1]].hp=0)},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bo("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},_n(),Nn(),Game.CalculateGains(),Sn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",Tn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Sn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Cn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index f71c40b2..401648c5 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","slot","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","GetCPSBuffMult","mult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","won","BuildingGetPrice","increase","CreateSimpleTooltip","placeholder","minWidth","Tooltip","desc","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CreateTooltip","TooltipAmor","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","ObjectsById","tileTooltip","toolTooltip","area","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","wrinkler","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateSimpleTooltip","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file From a65af049b67a1ce0d1e4a3ada9f9bc79a857b867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 09:32:50 +0100 Subject: [PATCH 06/25] Changes according to Eslint --- .eslintrc.js | 9 ++--- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Cache/CPS/AverageQueue.js | 9 ++--- src/Cache/CPS/CurrWrinklerCPS.js | 6 ++-- src/Cache/CPS/GetCPSBuffMult.js | 4 +-- src/Cache/CPS/SellChoEgg.js | 4 +-- src/Cache/Dragon/Dragon.js | 5 +-- src/Cache/PP/Building.js | 21 +++++------ src/Cache/PP/Upgrade.js | 4 +-- src/Cache/PriceAndIncome/PriceAndIncome.js | 12 +++---- src/Cache/Stats/ChainCookies.js | 2 +- src/Cache/Stats/MissingUpgrades.js | 8 ++--- src/Cache/Stats/Stats.js | 10 +++--- src/Cache/Wrinklers/Wrinklers.js | 2 +- .../SaveLoadReload/SaveLoadReloadSettings.js | 20 +++++------ src/Config/ToggleSetting.js | 6 ++-- src/Config/Toggles/ToggleGCTimer.js | 7 ++-- .../BeautifyFormatting.js | 19 +++++----- src/Disp/BuildingsUpgrades/Buildings.js | 13 +++---- src/Disp/BuildingsUpgrades/Upgrades.js | 25 ++++++------- .../GoldenCookieTimers/GoldenCookieTimers.js | 1 + .../CalculateGrimoireRefillTime.js | 8 ++--- src/Disp/HelperFunctions/PopWrinklers.js | 4 +-- src/Disp/InfoBars/BottomBar.js | 10 +++--- src/Disp/InfoBars/TimerBar.js | 14 ++++---- src/Disp/MenuSections/AddStatsPage.js | 28 +++++++-------- src/Disp/MenuSections/CreateDOMElements.js | 4 +-- .../MenuSections/CreateMissingUpgrades.js | 6 ++-- src/Disp/MenuSections/SettingsPage.js | 18 +++++----- src/Disp/Notifications/Notification.js | 3 +- src/Disp/Tooltips/CreateTooltip.js | 1 + src/Disp/Tooltips/TypesOfTooltips/Building.js | 1 + .../Tooltips/TypesOfTooltips/GardenPlots.js | 2 +- src/Disp/Tooltips/TypesOfTooltips/Grimoire.js | 2 +- .../Tooltips/TypesOfTooltips/HarvestAll.js | 2 +- src/Disp/Tooltips/WrinklerTooltips.js | 8 ++--- src/Main/CheckStates/GoldenCookie.js | 20 +++++------ src/Main/CheckStates/Grimoire.js | 6 ++-- src/Main/CheckStates/Season.js | 9 +++-- src/Main/CheckStates/Ticker.js | 4 +-- src/Main/CheckStates/Wrinkler.js | 12 +++---- src/Main/Initialization.js | 4 +-- .../ReplaceGameElements/NativeGrimoire.js | 4 +-- .../ReplaceGameElements/TooltipGrimoire.js | 34 +++++++++--------- .../ReplaceGameElements/TooltipUpgrades.js | 4 +-- src/Main/ReplaceGameElements/Tooltips.js | 6 ++-- src/Main/WrinklerArea/AddDetectArea.js | 4 +-- src/Sim/Calculations/CalculateGains.js | 26 +++++++------- src/Sim/Calculations/CheckOtherAchiev.js | 24 ++++++------- src/Sim/InitializeData/InitData.js | 12 +++---- src/Sim/InitializeData/InitUpgrade.js | 4 +-- src/Sim/InitializeData/InitialBuildingData.js | 12 +++---- .../SimGetTieredCpsMult.js | 8 ++--- .../SimModifyBuidlingPrice.js | 35 ++++++++++--------- src/Sim/SimulationData/CopyData.js | 12 +++---- src/Sim/SimulationData/SimWin.js | 2 +- src/Sim/SimulationEvents/BuyBuilding.js | 8 +++-- .../BuyBuildingBonusIncome.js | 4 +-- src/Sim/SimulationEvents/BuyUpgrades.js | 12 +++---- src/Sim/SimulationEvents/SellBuilding.js | 23 +++++++----- .../SimulationEvents/SellBuildingForChoEgg.js | 16 ++++----- 63 files changed, 314 insertions(+), 295 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 8c45ee69..e944c8f2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -18,18 +18,13 @@ module.exports = { ecmaVersion: 12, }, rules: { - 'import/no-named-default': 'off', 'import/no-mutable-exports': 'off', - 'no-param-reassign': 'off', - 'no-plusplus': 'off', + 'no-plusplus': ['error', { allowForLoopAfterthoughts: true }], 'no-new-func': 'off', - 'no-restricted-syntax': 'off', - 'prefer-destructuring': 'off', 'func-names': 'off', 'no-console': 'off', - 'no-nested-ternary': 'off', - 'no-new': 'off', 'no-alert': 'off', 'no-restricted-globals': 'off', + 'prefer-destructuring': ['error', { object: true, array: false }], }, }; diff --git a/CookieMonster.js b/CookieMonster.js index 87b95060..2330e808 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n){if(1===e[o]&&!1===kn){const o=new realAudio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume"),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume"),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 87b95060..2330e808 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],f=o.fixed?"fixed":"absolute",g=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var f=m[h];if(f)if(i.pub.presets.hasOwnProperty(f)){for(var u in i.pub.presets[f])if(i.pub.presets[f].hasOwnProperty(u))try{a(u,i.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,f,g,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";s+=(n<10?"0":"")+n+":",s+=(i<10?"0":"")+i+":",s+=(a<10?"0":"")+a+":",s+=(r<10?"0":"")+r+":",s+=(l<10?"0":"")+l}else{if(t>7776e5)return o?"Over 9000 days!":">9000d";s+=n>0?n+(o?1===n?" year":" years":"y")+", ":"",s+=i>0?i+(o?1===i?" day":" days":"d")+", ":"",(s.length>0||a>0)&&(s+=a+(o?1===a?" hour":" hours":"h")+", "),(s.length>0||r>0)&&(s+=r+(o?1===r?" minute":" minutes":"m")+", "),s+=l+(o?1===l?" second":" seconds":"s")}return s}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,fe,ge,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},ft=0,gt=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){if(no("Season savings")&&(t*=.99),no("Santa's dominion")&&(t*=.99),no("Faberge egg")&&(t*=.99),no("Divine discount")&&(t*=.99),no("Fortune #100")&&(t*=.99),t*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(t*=.95),Game.hasBuff("Crafty pixies")&&(t*=.98),Game.hasBuff("Nasty goblins")&&(t*=1.02),e.fortune&&no(e.fortune.name)&&(t*=.93),t*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?t*=.93:2===e?t*=.95:3===e&&(t*=.98)}return t}function ro(e,t,o,n,i,a){a=void 0===a?0:a;let r=0;-1===i&&(i=o),i||(i=Game.buyBulk);for(let l=0;l0&&(r+=i,o--)}return r}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode)if(1===e.BuildColor)for(const o of Object.keys(t))l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color];else for(const e of Object.keys(Game.Objects))l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color");else if(-1===Game.buyMode)for(const e of Object.keys(ut)){const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))}if(1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;for(const s of Object.keys(Game.UpgradesInStore)){const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e=10&&(e+=1);return e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige;for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o}for(const e of Object.keys(Game.Upgrades)){const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o}for(const e of Object.keys(Game.Achievements)){const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o}yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=0;for(;et.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const t=Game.Objects.Farm.minigame;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n++),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n++):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="";for(const t of Object.keys(Game.buffs))if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n++,i[Game.buffs[t].name]=a}for(const e of Object.keys(i))l("CMTimerBarBuffTimers").appendChild(i[e]);0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,go())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;for(const t of Object.keys(Game.wrinklers)){const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0!==z[t]&&void 0!==z[t])break;{const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0}e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let e=Game.wrinklers[I].sucked,t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){e>this.maxLength&&(e=this.maxLength),e>this.queue.length&&(e=this.queue.length);let t=0;for(let o=this.queue.length-1;o>=0&&o>this.queue.length-1-e;o--)t+=this.queue[o];return 0===t?0:t/e}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=ft),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-ge)/n,a=Math.max(0,ft-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){for(const t of Object.keys(e))Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){for(const e of Object.keys(ut))Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const t of Object.keys(ut)){ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht);for(const e of Object.keys(t))Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice]);if(Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t;for(const o of Object.keys(ut)){t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name);Ie=l;const s=Game.shimmerTypes.golden.n,c=eo("Dragon's Fortune");for(let t=0;t=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;for(const e of Object.keys(qt))t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;for(const e of Object.keys(Ro))no(Ro[e])||(a=!1);a&&jo("Spooky cookies");let r=!0;for(const e of Object.keys(Ho))no(Ho[e])||(r=!1);if(r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;for(const o of Object.keys(e))no(e[o].name)&&t++;t>=e.length&&jo("O Fortuna")}}function _o(e,t){wo(),qt[e].amount+=t;const o=qt[e];if("Cursor"===e)o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop");else for(const e in Game.Objects[o.name].tieredAchievs)o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name);const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}function Xo(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&Ee++,"Elder Pledge"===e?(Ne++,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;for(const e of Object.keys(qt))t+=qt[e].amount;t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}for(const e of Object.keys(Game.buffs))void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick);o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}function Qo(e,t){const o=[];for(const t of Object.keys(Game.Objects))o[t]={},o[t].bonus=_o(t,e),1!==e&&(Se=1);return o}function qo(){for(const e of Object.keys(Game.Objects))ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}function Yo(){ut=Qo(1),mt=Qo(10),ht=Qo(100),function(){kt=[];for(const e of Object.keys(Game.Upgrades)){const t=Xo(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}}()}function Ko(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Ko(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=Ko(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=Ko(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Ko(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Zo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e\n\t`}function tn(){vt="",xt="",wt="";const e=[];for(const t of Object.keys(Game.Upgrades))e.push(Game.Upgrades[t]);e.sort((function(e,t){return e.order>t.order?1:e.order0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;for(const e of Object.keys(Game.Objects))Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&o++;for(const e of Object.keys(Game.Objects))(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}function an(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function rn(){ft=0,gt=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function ln(){yo(),rn(),nn(),an(),Jo(),tn(),on(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Zo(),Oo(),Yo(),qo(),Lo()}const sn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},cn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function dn(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",go()}function pn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function un(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class hn{constructor(e,t){this.type=e,this.group=t}}class fn extends hn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class gn extends hn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class Cn extends hn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const yn={BotBar:new fn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){dn()})),TimerBar:new fn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new fn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new fn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new fn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new fn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new fn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new fn("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new fn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends hn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){un()})),UpgradeBarFixedPos:new fn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new fn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new fn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new fn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new fn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new fn("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new fn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new Cn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new fn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new fn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new fn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new fn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new fn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){cn(e.GCNotification)})),GCFlash:new fn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new fn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new gn("vol","NotificationGC",[],"Volume"),GCSoundURL:new fn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new fn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){cn(e.FortuneNotification)})),FortuneFlash:new fn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new fn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new gn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new fn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new fn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){cn(e.SeaNotification)})),SeaFlash:new fn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new fn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new gn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new fn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new fn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new fn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new gn("vol","NotificationGard",[],"Volume"),GardSoundURL:new fn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new fn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){cn(e.MagicNotification)})),MagicFlash:new fn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new fn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new gn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new fn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new fn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){cn(e.WrinklerNotification)})),WrinklerFlash:new fn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new fn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new gn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new fn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new fn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){cn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new fn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new fn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new gn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new fn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new fn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new fn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new fn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new fn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new fn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new fn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new fn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Cn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new fn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new fn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new fn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new fn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new fn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new fn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new fn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new fn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new fn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new fn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new fn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new fn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new fn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new fn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new Cn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new fn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new fn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){pn()})),ScaleDecimals:new fn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){pn()})),ScaleSeparator:new fn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){pn()})),ScaleCutoff:new Cn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new fn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){!function(){if(1===e.GCTimer)for(const e of Object.keys(ie))ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top;else for(const e of Object.keys(ie))ie[e].style.display="none"}()})),Favicon:new fn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){mn()})),WrinklerButtons:new fn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new fn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function bn(){return JSON.stringify({settings:e,version:"2.031.5"})}function kn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount0&&(e=t);qt[e].amount--,Pe--}for(const t of Object.keys(qt)){const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)}return e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(qo(),Se=0),function(){rn(),Lo(),function(){yt=0;let e=0;for(const t in Game.wrinklers)2===Game.wrinklers[t].phase&&e++;let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Zo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),function(){!function(){k=0,_t={};for(const e of Object.keys(Game.shimmers))_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)}();for(const e of Object.keys(ie))void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e]);if(C!==Game.shimmerTypes.golden.n){if(C=Game.shimmerTypes.golden.n,C){y0){let t=0;for(const e in Game.wrinklers)2===Game.wrinklers[e].phase&&t++;t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?xn(3,"WrinklerMaxFlash"):xn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Tn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):Tn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Sn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Sn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Pn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${bn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function En(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;for(const t in sn)if(void 0===e[t])o=!0,e[t]=sn[t];else if("Header"!==t&&"Colors"!==t)-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]-1&&e[t][n]<2||(o=!0,e[t][n]=sn[t][n]);else for(const n in sn.Colors)void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=sn[t][n]);o&&Pn(),Bn();for(const e in sn)"Header"!==e&&void 0!==yn[e].func&&yn[e].func()}else En(sn)}function Nn(){for(const e of Object.keys(Game.wrinklers))Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}function On(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}function Fn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Wn(){if(Game.Objects["Wizard tower"].minigameLoaded)for(const e in Game.Objects["Wizard tower"].minigame.spellsById)null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}function Ln(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const t=Game.Objects["Wizard tower"].minigame;d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Pn()}function $n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Hn(o),Game.UpdateMenu()},n.appendChild(i),n}function In(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function zn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a);for(const t of Object.keys(e)){const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)}return n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Vn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild($n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(In("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(In("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(In("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(In("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild($n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(ft)} / ${re(gt)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Nn()},e.appendChild(t),o.appendChild(In("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(In("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];for(const e of Object.keys(Ro))Game.Has(Ro[e])||(i.push(Ro[e]),n=!0);const a=[];for(const e of Object.keys(Ho))Game.Has(Ho[e])||(a.push(Ho[e]),n=!0);const r=[];for(const e of Object.keys($o))Game.Has($o[e])||(r.push($o[e]),n=!0);const s=[];for(const e of Object.keys(Game.eggDrops))Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0);const c=[];for(const e of Object.keys(Game.rareEggDrops))Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0);const d=[];for(const e of Object.keys(Io))Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0);const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild($n("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(In("basic","Halloween Cookies Left to Buy",zn(i))),0!==a.length&&o.appendChild(In("basic","Christmas Cookies Left to Buy",zn(a))),0!==r.length&&o.appendChild(In("basic","Valentine Cookies Left to Buy",zn(r))),0!==s.length&&o.appendChild(In("basic","Normal Easter Eggs Left to Unlock",zn(s))),0!==c.length&&o.appendChild(In("basic","Rare Easter Eggs Left to Unlock",zn(c))),0!==d.length&&o.appendChild(In("basic","Rare Plant Drops Left to Unlock",zn(d))),"christmas"===Game.season&&o.appendChild(In("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(In("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(In("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild($n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(In("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(In("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];for(const t of Object.keys(Do))Game.Has(Do[t])||e.push(Do[t]);0!==e.length&&o.appendChild(In("basic","Fortune Upgrades Left to Buy",zn(e)))}if(e.ShowMissedGC&&o.appendChild(In("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(In("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&function(){for(const e of l("menu").children)if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}()}const _n={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Xn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Hn(t),Game.UpdateMenu()},n.appendChild(i),n}function qn(t){const o=document.createElement("div");if(o.className="listing","bool"===yn[t].type){const n=document.createElement("a");yn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Dn+t,n.onclick=function(){!function(t){e[t]++,e[t]===yn[t].label.length?(e[t]=0,yn[t].toggle&&(l(Dn+t).className="option off")):l(Dn+t).className="option",void 0!==yn[t].func&&yn[t].func(),l(Dn+t).innerHTML=yn[t].label[e[t]],Pn()}(t)},n.textContent=yn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=yn[t].desc,o.appendChild(i),o}if("vol"===yn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=yn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Rn(t)},r.onchange=function(){Rn(t)},n.appendChild(r),o.appendChild(n),o}if("url"===yn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${yn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Dn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Dn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Pn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=yn[t].desc,o.appendChild(s),o}if("color"===yn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Pn(),pn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=yn[t].desc,o.appendChild(a),o}return o}function Yn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Kn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Yn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Yn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Yn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),function(){T=[];for(const e of Object.keys(Game.UpgradesInStore))null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("u",`${e}`)}),"store"),Game.tooltip.wobble())})}(),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Un().picker&&void 0!==Un().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t);for(const t of Object.keys(_n)){const n=Qn(t,_n[t]);if(o.appendChild(n),e.Header[t])if("Notification"===t)for(const t of Object.keys(Xn)){const n=Qn(t,Xn[t]);if(n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t])for(const e in yn)yn[e].group===t&&o.appendChild(qn(e))}else for(const e of Object.keys(yn))yn[e].group===t&&o.appendChild(qn(e))}const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){En(sn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Vn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Hn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Jn(){vn(),nn(),ln(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e);for(const e of Object.keys(Game.Objects))mo(e)}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}();for(const e of Object.keys(D))On(D[e][0],D[e][1],D[e][2]);!function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Nn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",function(){for(const e of Object.keys(Game.Objects)){const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("b",`${e}`)}),"store"),Game.tooltip.wobble()})}}(),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Wn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Fn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),An()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide();for(const e of Object.keys(Game.wrinklers))z[e]=0},Kn(),An(),Game.CalculateGains(),En(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Zn={init:function(){wn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Jn(),Game.registerHook("draw",Eo),Game.registerHook("logic",Bn),wn=!1)},load:function(e){const t=JSON.parse(e);vn(),En(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:bn};Game.registerMod("CookieMonster",Zn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n){if(1===e[o]&&!1===kn){const o=new realAudio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume"),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume"),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 401648c5..1c91ee29 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","magic","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","CacheUpgradePP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyUpgradesBonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","CacheUpgradeIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","crateMissing","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","CacheAllMissingUpgrades","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","ToggleGCTimer","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateGCTimer","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","Notification_Notification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","FindShimmer","transform","life","CheckGoldenCookie","TickerEffect","CheckSeasonPopup","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateSimpleTooltip","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","AddMissingUpgrades","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ReplaceTooltipUpgrade","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","append","CreateWrinklerButtons","ReplaceTooltipBuild","canLumps","forEach","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Cache/CPS/AverageQueue.js b/src/Cache/CPS/AverageQueue.js index b7932a2f..ec0ae71e 100644 --- a/src/Cache/CPS/AverageQueue.js +++ b/src/Cache/CPS/AverageQueue.js @@ -34,12 +34,13 @@ export class CMAvgQueue { * @returns {number} ret The average */ calcAverage(timePeriod) { - if (timePeriod > this.maxLength) timePeriod = this.maxLength; - if (timePeriod > this.queue.length) timePeriod = this.queue.length; + let time = timePeriod; + if (time > this.maxLength) time = this.maxLength; + if (time > this.queue.length) time = this.queue.length; let ret = 0; for ( let i = this.queue.length - 1; - i >= 0 && i > this.queue.length - 1 - timePeriod; + i >= 0 && i > this.queue.length - 1 - time; i-- ) { ret += this.queue[i]; @@ -47,7 +48,7 @@ export class CMAvgQueue { if (ret === 0) { return 0; } - return ret / timePeriod; + return ret / time; } } diff --git a/src/Cache/CPS/CurrWrinklerCPS.js b/src/Cache/CPS/CurrWrinklerCPS.js index e508c0b9..b42a53d2 100644 --- a/src/Cache/CPS/CurrWrinklerCPS.js +++ b/src/Cache/CPS/CurrWrinklerCPS.js @@ -13,9 +13,9 @@ import { export default function CacheCurrWrinklerCPS() { CacheCurrWrinklerCPSMult = 0; let count = 0; - for (const i in Game.wrinklers) { - if (Game.wrinklers[i].phase === 2) count++; - } + Object.keys(Game.wrinklers).forEach((i) => { + if (Game.wrinklers[i].phase === 2) count += 1; + }); let godMult = 1; if (SimObjects.Temple.minigameLoaded) { const godLvl = Game.hasGod('scorn'); diff --git a/src/Cache/CPS/GetCPSBuffMult.js b/src/Cache/CPS/GetCPSBuffMult.js index 4a458d87..88db924f 100644 --- a/src/Cache/CPS/GetCPSBuffMult.js +++ b/src/Cache/CPS/GetCPSBuffMult.js @@ -4,9 +4,9 @@ */ export default function GetCPSBuffMult() { let mult = 1; - for (const i of Object.keys(Game.buffs)) { + Object.keys(Game.buffs).forEach((i) => { if (typeof Game.buffs[i].multCpS !== 'undefined') mult *= Game.buffs[i].multCpS; - } + }); return mult; } diff --git a/src/Cache/CPS/SellChoEgg.js b/src/Cache/CPS/SellChoEgg.js index 4dfaaf52..3825ce45 100644 --- a/src/Cache/CPS/SellChoEgg.js +++ b/src/Cache/CPS/SellChoEgg.js @@ -13,10 +13,10 @@ export default function CacheSellAllForChoEgg() { if (Game.Objects.Bank.minigameLoaded) { const marketGoods = Game.Objects.Bank.minigame.goods; let goodsVal = 0; - for (const i of Object.keys(marketGoods)) { + Object.keys(marketGoods).forEach((i) => { const marketGood = marketGoods[i]; goodsVal += marketGood.stock * marketGood.val; - } + }); sellTotal += goodsVal * Game.cookiesPsRawHighest; } // Compute cookies earned by selling all buildings with optimal auras (ES + RB) diff --git a/src/Cache/Dragon/Dragon.js b/src/Cache/Dragon/Dragon.js index 25e80025..405dcf91 100644 --- a/src/Cache/Dragon/Dragon.js +++ b/src/Cache/Dragon/Dragon.js @@ -1,3 +1,4 @@ +/* eslint-disable no-restricted-syntax */ /* eslint-disable no-unused-vars */ /** Functions related to the Dragon */ @@ -44,7 +45,7 @@ export default function CacheDragonCost() { price = Game.modifyBuildingPrice(SimObjects[target], price); price = Math.ceil(price); cost += price; - SimObjects[target].amount--; + SimObjects[target].amount -= 1; } CacheCostDragonUpgrade = `Cost to rebuy: ${cost}`; } @@ -68,7 +69,7 @@ export default function CacheDragonCost() { price = Game.modifyBuildingPrice(SimObjects[target], price); price = Math.ceil(price); cost += price; - SimObjects[target].amount--; + SimObjects[target].amount -= 1; } } CacheCostDragonUpgrade = `Cost to rebuy: ${Beautify(cost)}`; diff --git a/src/Cache/PP/Building.js b/src/Cache/PP/Building.js index 20495754..d676f211 100644 --- a/src/Cache/PP/Building.js +++ b/src/Cache/PP/Building.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ /* eslint-disable no-unused-vars */ import { CMOptions } from '../../Config/VariablesAndData'; import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank'; @@ -19,7 +20,7 @@ import ColourOfPP from './ColourOfPP'; * It is called by CM.Cache.CacheBuildingsPP() */ function CacheBuildingsBulkPP(target) { - for (const i of Object.keys(target)) { + Object.keys(target).forEach((i) => { if (Game.cookiesPs) { target[i].pp = Math.max(target[i].price - (Game.cookies + GetWrinkConfigBank()), 0) / @@ -28,7 +29,7 @@ function CacheBuildingsBulkPP(target) { } else target[i].pp = target[i].price / target[i].bonus; target[i].color = ColourOfPP(target[i], target[i].price); - } + }); } /** @@ -43,7 +44,7 @@ export default function CacheBuildingsPP() { // Calculate PP and colors when compared to purchase of optimal building in single-purchase mode if (CMOptions.ColorPPBulkMode === 0 && Game.buyMode > 0) { - for (const i of Object.keys(CacheObjects1)) { + Object.keys(CacheObjects1).forEach((i) => { if (Game.cookiesPs) { CacheObjects1[i].pp = Math.max( @@ -56,7 +57,7 @@ export default function CacheBuildingsPP() { CacheObjects1[i].pp = Game.Objects[i].getPrice() / CacheObjects1[i].bonus; CacheArrayOfPPs.push([CacheObjects1[i].pp, Game.Objects[i].getPrice()]); - } + }); // Set CM.Cache.min to best non-excluded buidliung CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); if (CMOptions.PPOnlyConsiderBuyable) { @@ -70,7 +71,7 @@ export default function CacheBuildingsPP() { CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; - for (const i of Object.keys(CacheObjects1)) { + Object.keys(CacheObjects1).forEach((i) => { CacheObjects1[i].color = ColourOfPP( CacheObjects1[i], Game.Objects[i].getPrice(), @@ -80,7 +81,7 @@ export default function CacheBuildingsPP() { if (CacheObjects1[i].pp === CacheArrayOfPPs[j][0]) CacheObjects1[i].color = ColorGray; } - } + }); // Calculate PP of bulk-buy modes CacheBuildingsBulkPP(CacheObjects10); CacheBuildingsBulkPP(CacheObjects100); @@ -90,7 +91,7 @@ export default function CacheBuildingsPP() { if (Game.buyBulk === 1) target = CacheObjects1; else if (Game.buyBulk === 10) target = CacheObjects10; else if (Game.buyBulk === 100) target = CacheObjects100; - for (const i of Object.keys(target)) { + Object.keys(target).forEach((i) => { if (Game.cookiesPs) { target[i].pp = Math.max( @@ -101,7 +102,7 @@ export default function CacheBuildingsPP() { Game.Objects[i].bulkPrice / target[i].bonus; } else target[i].pp = Game.Objects[i].bulkPrice / target[i].bonus; CacheArrayOfPPs.push([target[i].pp, Game.Objects[i].bulkPrice]); - } + }); // Set CM.Cache.min to best non-excluded buidliung CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); if (CMOptions.PPOnlyConsiderBuyable) { @@ -116,12 +117,12 @@ export default function CacheBuildingsPP() { CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; - for (const i of Object.keys(CacheObjects1)) { + Object.keys(CacheObjects1).forEach((i) => { target[i].color = ColourOfPP(target[i], Game.Objects[i].bulkPrice); // Colour based on excluding certain top-buildings for (let j = 0; j < CMOptions.PPExcludeTop; j++) { if (target[i].pp === CacheArrayOfPPs[j][0]) target[i].color = ColorGray; } - } + }); } } diff --git a/src/Cache/PP/Upgrade.js b/src/Cache/PP/Upgrade.js index 17d39546..9a3260fb 100644 --- a/src/Cache/PP/Upgrade.js +++ b/src/Cache/PP/Upgrade.js @@ -7,7 +7,7 @@ import ColourOfPP from './ColourOfPP'; * It is called by CM.Cache.CachePP() */ export default function CacheUpgradePP() { - for (const i of Object.keys(CacheUpgrades)) { + Object.keys(CacheUpgrades).forEach((i) => { if (Game.cookiesPs) { CacheUpgrades[i].pp = Math.max( @@ -25,5 +25,5 @@ export default function CacheUpgradePP() { CacheUpgrades[i], Game.Upgrades[i].getPrice(), ); - } + }); } diff --git a/src/Cache/PriceAndIncome/PriceAndIncome.js b/src/Cache/PriceAndIncome/PriceAndIncome.js index cefff600..d96469fd 100644 --- a/src/Cache/PriceAndIncome/PriceAndIncome.js +++ b/src/Cache/PriceAndIncome/PriceAndIncome.js @@ -20,13 +20,13 @@ import { */ function CacheBuildingIncome(amount, target) { const result = []; - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { result[i] = {}; result[i].bonus = BuyBuildingsBonusIncome(i, amount); if (amount !== 1) { CacheDoRemakeBuildPrices = 1; } - } + }); return result; } @@ -36,19 +36,19 @@ function CacheBuildingIncome(amount, target) { */ function CacheUpgradeIncome() { CacheUpgrades = []; - for (const i of Object.keys(Game.Upgrades)) { + Object.keys(Game.Upgrades).forEach((i) => { const bonusIncome = BuyUpgradesBonusIncome(i); CacheUpgrades[i] = {}; if (bonusIncome[0]) CacheUpgrades[i].bonus = bonusIncome[0]; if (bonusIncome[1]) CacheUpgrades[i].bonusMouse = bonusIncome[1]; - } + }); } /** * This functions caches the price of each building and stores it in the cache */ export function CacheBuildingsPrices() { - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { CacheObjects1[i].price = BuildingGetPrice( Game.Objects[i], Game.Objects[i].basePrice, @@ -70,7 +70,7 @@ export function CacheBuildingsPrices() { Game.Objects[i].free, 100, ); - } + }); } /** diff --git a/src/Cache/Stats/ChainCookies.js b/src/Cache/Stats/ChainCookies.js index 0af5d5d8..71011e1d 100644 --- a/src/Cache/Stats/ChainCookies.js +++ b/src/Cache/Stats/ChainCookies.js @@ -51,7 +51,7 @@ export function MaxChainCookieReward(digit, maxPayout, mult) { ); nextRequired = Math.floor((1 / 9) * 10 ** (chain + 1) * digit * mult); totalFromChain += moni; - chain++; + chain += 1; } return [totalFromChain, moni, nextRequired]; } diff --git a/src/Cache/Stats/MissingUpgrades.js b/src/Cache/Stats/MissingUpgrades.js index c7bd6727..6cf42359 100644 --- a/src/Cache/Stats/MissingUpgrades.js +++ b/src/Cache/Stats/MissingUpgrades.js @@ -19,9 +19,9 @@ export default function CacheAllMissingUpgrades() { CacheMissingUpgradesPrestige = ''; const list = []; // sort the upgrades - for (const i of Object.keys(Game.Upgrades)) { + Object.keys(Game.Upgrades).forEach((i) => { list.push(Game.Upgrades[i]); - } + }); const sortMap = function (a, b) { if (a.order > b.order) return 1; if (a.order < b.order) return -1; @@ -29,7 +29,7 @@ export default function CacheAllMissingUpgrades() { }; list.sort(sortMap); - for (const i of Object.keys(list)) { + Object.keys(list).forEach((i) => { const me = list[i]; if (me.bought === 0) { @@ -45,5 +45,5 @@ export default function CacheAllMissingUpgrades() { ) CacheMissingUpgrades += str; } - } + }); } diff --git a/src/Cache/Stats/Stats.js b/src/Cache/Stats/Stats.js index 9ba480a2..decbe0c8 100644 --- a/src/Cache/Stats/Stats.js +++ b/src/Cache/Stats/Stats.js @@ -42,11 +42,11 @@ export function CacheStatsCookies() { CacheEdifice = 0; let max = 0; let n = 0; - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { if (Game.Objects[i].amount > max) max = Game.Objects[i].amount; - if (Game.Objects[i].amount > 0) n++; - } - for (const i of Object.keys(Game.Objects)) { + if (Game.Objects[i].amount > 0) n += 1; + }); + Object.keys(Game.Objects).forEach((i) => { if ( (Game.Objects[i].amount < max || n === 1) && Game.Objects[i].amount < 400 && @@ -55,7 +55,7 @@ export function CacheStatsCookies() { CacheEdifice = Game.Objects[i].price * 2; CacheEdificeBuilding = i; } - } + }); } /** diff --git a/src/Cache/Wrinklers/Wrinklers.js b/src/Cache/Wrinklers/Wrinklers.js index 7e688772..5f593ee9 100644 --- a/src/Cache/Wrinklers/Wrinklers.js +++ b/src/Cache/Wrinklers/Wrinklers.js @@ -20,7 +20,7 @@ export default function CacheWrinklers() { CacheWrinklersNormal = 0; CacheWrinklersFattest = [0, null]; for (let i = 0; i < Game.wrinklers.length; i++) { - let sucked = Game.wrinklers[i].sucked; + let { sucked } = Game.wrinklers[i]; let toSuck = 1.1; if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; if (Game.wrinklers[i].type === 1) toSuck *= 3; // Shiny wrinklers diff --git a/src/Config/SaveLoadReload/SaveLoadReloadSettings.js b/src/Config/SaveLoadReload/SaveLoadReloadSettings.js index 1a708973..bf99c9ea 100644 --- a/src/Config/SaveLoadReload/SaveLoadReloadSettings.js +++ b/src/Config/SaveLoadReload/SaveLoadReloadSettings.js @@ -1,5 +1,5 @@ -import { default as ConfigDefault } from '../../Data/SettingsDefault'; -import { default as ConfigData } from '../../Data/SettingsData'; +import ConfigDefault from '../../Data/SettingsDefault'; +import ConfigData from '../../Data/SettingsData'; import { CMOptions } from '../VariablesAndData'; import save from '../../InitSaveLoad/save'; import CMLoop from '../../Main/Loop'; @@ -43,7 +43,7 @@ export function LoadConfig(settings) { // Check values let mod = false; - for (const i in ConfigDefault) { + Object.keys(ConfigDefault).forEach((i) => { if (typeof CMOptions[i] === 'undefined') { mod = true; CMOptions[i] = ConfigDefault[i]; @@ -61,7 +61,7 @@ export function LoadConfig(settings) { CMOptions[i] = ConfigDefault[i]; } } else if (i === 'Header') { - for (const j in ConfigDefault.Header) { + Object.keys(ConfigDefault.Header).forEach((j) => { if ( typeof CMOptions[i][j] === 'undefined' || !(CMOptions[i][j] > -1 && CMOptions[i][j] < 2) @@ -69,10 +69,10 @@ export function LoadConfig(settings) { mod = true; CMOptions[i][j] = ConfigDefault[i][j]; } - } + }); } else { // Colors - for (const j in ConfigDefault.Colors) { + Object.keys(ConfigDefault.Colors).forEach((j) => { if ( typeof CMOptions[i][j] === 'undefined' || typeof CMOptions[i][j] !== 'string' @@ -80,16 +80,16 @@ export function LoadConfig(settings) { mod = true; CMOptions[i][j] = ConfigDefault[i][j]; } - } + }); } - } + }); if (mod) SaveConfig(); CMLoop(); // Do loop once - for (const i in ConfigDefault) { + Object.keys(ConfigDefault).forEach((i) => { if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') { ConfigData[i].func(); } - } + }); } else { // Default values LoadConfig(ConfigDefault); diff --git a/src/Config/ToggleSetting.js b/src/Config/ToggleSetting.js index 3cd48b92..a98dfb7e 100644 --- a/src/Config/ToggleSetting.js +++ b/src/Config/ToggleSetting.js @@ -1,4 +1,4 @@ -import { default as ConfigData } from '../Data/SettingsData'; +import ConfigData from '../Data/SettingsData'; import { SaveConfig } from './SaveLoadReload/SaveLoadReloadSettings'; import { CMOptions } from './VariablesAndData'; @@ -13,7 +13,7 @@ export const ConfigPrefix = 'CMConfig'; * @param {string} config The name of the option */ export function ToggleConfig(config) { - CMOptions[config]++; + CMOptions[config] += 1; if (CMOptions[config] === ConfigData[config].label.length) { CMOptions[config] = 0; @@ -49,7 +49,7 @@ export function ToggleConfigVolume(config) { * @param {string} config The name of the header */ export function ToggleHeader(config) { - CMOptions.Header[config]++; + CMOptions.Header[config] += 1; if (CMOptions.Header[config] > 1) CMOptions.Header[config] = 0; SaveConfig(); } diff --git a/src/Config/Toggles/ToggleGCTimer.js b/src/Config/Toggles/ToggleGCTimer.js index 3f0f9835..044207f9 100644 --- a/src/Config/Toggles/ToggleGCTimer.js +++ b/src/Config/Toggles/ToggleGCTimer.js @@ -1,3 +1,4 @@ +/* eslint-disable no-return-assign */ import { CacheGoldenShimmersByID } from '../../Cache/VariablesAndData'; import { GCTimers } from '../../Disp/VariablesAndData'; import { CMOptions } from '../VariablesAndData'; @@ -8,12 +9,12 @@ import { CMOptions } from '../VariablesAndData'; */ export default function ToggleGCTimer() { if (CMOptions.GCTimer === 1) { - for (const i of Object.keys(GCTimers)) { + Object.keys(GCTimers).forEach((i) => { GCTimers[i].style.display = 'block'; GCTimers[i].style.left = CacheGoldenShimmersByID[i].l.style.left; GCTimers[i].style.top = CacheGoldenShimmersByID[i].l.style.top; - } + }); } else { - for (const i of Object.keys(GCTimers)) GCTimers[i].style.display = 'none'; + Object.keys(GCTimers).forEach((i) => (GCTimers[i].style.display = 'none')); } } diff --git a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js index 0a7a31d6..7741ab7c 100644 --- a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js +++ b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ /** General functions to format or beautify strings */ import { CMOptions } from '../../Config/VariablesAndData'; @@ -93,23 +94,25 @@ export function Beautify(num, floats, forced) { * @returns {string} Formatted time */ export function FormatTime(time, longFormat) { + let formattedTime = time; if (time === Infinity) return time; - time = Math.ceil(time); - const y = Math.floor(time / 31557600); - const d = Math.floor((time % 31557600) / 86400); - const h = Math.floor((time % 86400) / 3600); - const m = Math.floor((time % 3600) / 60); - const s = Math.floor(time % 60); + formattedTime = Math.ceil(time); + const y = Math.floor(formattedTime / 31557600); + const d = Math.floor((formattedTime % 31557600) / 86400); + const h = Math.floor((formattedTime % 86400) / 3600); + const m = Math.floor((formattedTime % 3600) / 60); + const s = Math.floor(formattedTime % 60); let str = ''; if (CMOptions.TimeFormat) { - if (time > 3155760000) return 'XX:XX:XX:XX:XX'; + if (formattedTime > 3155760000) return 'XX:XX:XX:XX:XX'; str += `${(y < 10 ? '0' : '') + y}:`; str += `${(d < 10 ? '0' : '') + d}:`; str += `${(h < 10 ? '0' : '') + h}:`; str += `${(m < 10 ? '0' : '') + m}:`; str += (s < 10 ? '0' : '') + s; } else { - if (time > 777600000) return longFormat ? 'Over 9000 days!' : '>9000d'; + if (formattedTime > 777600000) + return longFormat ? 'Over 9000 days!' : '>9000d'; str += y > 0 ? `${y + (longFormat ? (y === 1 ? ' year' : ' years') : 'y')}, ` diff --git a/src/Disp/BuildingsUpgrades/Buildings.js b/src/Disp/BuildingsUpgrades/Buildings.js index 2fef533f..20c55980 100644 --- a/src/Disp/BuildingsUpgrades/Buildings.js +++ b/src/Disp/BuildingsUpgrades/Buildings.js @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ import { CacheObjects1, CacheObjects10, @@ -30,17 +31,17 @@ export default function UpdateBuildings() { if (Game.buyMode === 1) { if (CMOptions.BuildColor === 1) { - for (const i of Object.keys(target)) { + Object.keys(target).forEach((i) => { l(`productPrice${Game.Objects[i].id}`).style.color = CMOptions.Colors[target[i].color]; - } + }); } else { - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color'); - } + }); } } else if (Game.buyMode === -1) { - for (const i of Object.keys(CacheObjects1)) { + Object.keys(CacheObjects1).forEach((i) => { const o = Game.Objects[i]; l(`productPrice${o.id}`).style.color = ''; /* @@ -54,7 +55,7 @@ export default function UpdateBuildings() { l(`productPrice${o.id}`).innerHTML = Beautify( BuildingSell(o, o.basePrice, o.amount, o.free, Game.buyBulk, 1), ); - } + }); } // Build array of pointers, sort by pp, use array index (+2) as the grid row number diff --git a/src/Disp/BuildingsUpgrades/Upgrades.js b/src/Disp/BuildingsUpgrades/Upgrades.js index 37792bb0..35c14227 100644 --- a/src/Disp/BuildingsUpgrades/Upgrades.js +++ b/src/Disp/BuildingsUpgrades/Upgrades.js @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ import { CacheUpgrades } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import { @@ -29,10 +30,10 @@ export default function UpdateUpgrades() { let purple = 0; let gray = 0; - for (const i of Object.keys(Game.UpgradesInStore)) { + Object.keys(Game.UpgradesInStore).forEach((i) => { const me = Game.UpgradesInStore[i]; let addedColor = false; - for (let j = 0; j < l(`upgrade${i}`).childNodes.length; j++) { + for (let j = 0; j < l(`upgrade${i}`).childNodes.length; j += 1) { if ( l(`upgrade${i}`).childNodes[j].className.indexOf(ColorBackPre) !== -1 ) { @@ -49,14 +50,14 @@ export default function UpdateUpgrades() { div.className = ColorBackPre + CacheUpgrades[me.name].color; l(`upgrade${i}`).appendChild(div); } - if (CacheUpgrades[me.name].color === ColorBlue) blue++; - else if (CacheUpgrades[me.name].color === ColorGreen) green++; - else if (CacheUpgrades[me.name].color === ColorYellow) yellow++; - else if (CacheUpgrades[me.name].color === ColorOrange) orange++; - else if (CacheUpgrades[me.name].color === ColorRed) red++; - else if (CacheUpgrades[me.name].color === ColorPurple) purple++; - else if (CacheUpgrades[me.name].color === ColorGray) gray++; - } + if (CacheUpgrades[me.name].color === ColorBlue) blue += 1; + else if (CacheUpgrades[me.name].color === ColorGreen) green += 1; + else if (CacheUpgrades[me.name].color === ColorYellow) yellow += 1; + else if (CacheUpgrades[me.name].color === ColorOrange) orange += 1; + else if (CacheUpgrades[me.name].color === ColorRed) red += 1; + else if (CacheUpgrades[me.name].color === ColorPurple) purple += 1; + else if (CacheUpgrades[me.name].color === ColorGray) gray += 1; + }); l('CMUpgradeBarBlue').textContent = blue; l('CMUpgradeBarGreen').textContent = green; @@ -70,7 +71,7 @@ export default function UpdateUpgrades() { const arr = []; // Build array of pointers, sort by pp, set flex positions // This regulates sorting of upgrades - for (let x = 0; x < Game.UpgradesInStore.length; x++) { + for (let x = 0; x < Game.UpgradesInStore.length; x += 1) { const o = {}; o.name = Game.UpgradesInStore[x].name; o.price = Game.UpgradesInStore[x].basePrice; @@ -95,7 +96,7 @@ export default function UpdateUpgrades() { const nameChecker = function (arr2, upgrade) { return arr2.findIndex((e) => e.name === upgrade.name); }; - for (let x = 0; x < Game.UpgradesInStore.length; x++) { + for (let x = 0; x < Game.UpgradesInStore.length; x += 1) { l(`upgrade${x}`).style.order = nameChecker(arr, Game.UpgradesInStore[x]) + 1; } diff --git a/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js b/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js index dc34f2c9..a15a2747 100644 --- a/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js +++ b/src/Disp/GoldenCookieTimers/GoldenCookieTimers.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ /** Section: Functions related to the Golden Cookie Timers */ import { CMOptions } from '../../Config/VariablesAndData'; diff --git a/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js b/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js index f7598aef..ccdffd66 100644 --- a/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js +++ b/src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js @@ -10,11 +10,11 @@ export default function CalculateGrimoireRefillTime( maxMagic, targetMagic, ) { + let magic = currentMagic; let count = 0; - while (currentMagic < targetMagic) { - currentMagic += - Math.max(0.002, (currentMagic / Math.max(maxMagic, 100)) ** 0.5) * 0.002; - count++; + while (magic < targetMagic) { + magic += Math.max(0.002, (magic / Math.max(maxMagic, 100)) ** 0.5) * 0.002; + count += 1; } return count / Game.fps; } diff --git a/src/Disp/HelperFunctions/PopWrinklers.js b/src/Disp/HelperFunctions/PopWrinklers.js index fb97fcf1..7fd531c6 100644 --- a/src/Disp/HelperFunctions/PopWrinklers.js +++ b/src/Disp/HelperFunctions/PopWrinklers.js @@ -3,9 +3,9 @@ * It is called by a click of the 'pop all' button created by CM.Disp.AddMenuStats() */ export default function PopAllNormalWrinklers() { - for (const i of Object.keys(Game.wrinklers)) { + Object.keys(Game.wrinklers).forEach((i) => { if (Game.wrinklers[i].sucked > 0 && Game.wrinklers[i].type === 0) { Game.wrinklers[i].hp = 0; } - } + }); } diff --git a/src/Disp/InfoBars/BottomBar.js b/src/Disp/InfoBars/BottomBar.js index 2aee5878..9bc1ef63 100644 --- a/src/Disp/InfoBars/BottomBar.js +++ b/src/Disp/InfoBars/BottomBar.js @@ -63,9 +63,9 @@ export function CreateBotBar() { l('wrapper').appendChild(BotBar); - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { CreateBotBarBuildingColumn(i); - } + }); } /** @@ -74,7 +74,7 @@ export function CreateBotBar() { export function UpdateBotBar() { if (CMOptions.BotBar === 1 && CacheObjects1 && Game.buyMode === 1) { let count = 0; - for (const i of Object.keys(CacheObjects1)) { + Object.keys(CacheObjects1).forEach((i) => { let target = Game.buyBulk; if (Game.buyMode === 1) { LastTargetBotBar = target; @@ -84,7 +84,7 @@ export function UpdateBotBar() { if (target === 1) target = CacheObjects1; if (target === 10) target = CacheObjects10; if (target === 100) target = CacheObjects100; - count++; + count += 1; l('CMBotBar').firstChild.firstChild.childNodes[0].childNodes[ count ].childNodes[1].textContent = Game.Objects[i].amount; @@ -115,6 +115,6 @@ export function UpdateBotBar() { l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[ count ].textContent = timeColor.text; - } + }); } } diff --git a/src/Disp/InfoBars/TimerBar.js b/src/Disp/InfoBars/TimerBar.js index fb0677c5..3c2bbb18 100644 --- a/src/Disp/InfoBars/TimerBar.js +++ b/src/Disp/InfoBars/TimerBar.js @@ -105,7 +105,7 @@ export function UpdateTimerBar() { (Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / Game.fps, ); - numberOfTimers++; + numberOfTimers += 1; } else l('CMTimerBarGC').style.display = 'none'; // Regulates visibility of Reindeer timer @@ -152,7 +152,7 @@ export function UpdateTimerBar() { (Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / Game.fps, ); - numberOfTimers++; + numberOfTimers += 1; } else { l('CMTimerBarRen').style.display = 'none'; } @@ -160,7 +160,7 @@ export function UpdateTimerBar() { // On every frame all buff-timers are deleted and re-created const BuffTimerBars = {}; l('CMTimerBarBuffTimers').innerHTML = ''; - for (const i of Object.keys(Game.buffs)) { + Object.keys(Game.buffs).forEach((i) => { if (Game.buffs[i]) { const timer = CreateTimer(Game.buffs[i].name, Game.buffs[i].name, [ { id: `${Game.buffs[i].name}Bar` }, @@ -187,13 +187,13 @@ export function UpdateTimerBar() { timer.lastChild.children[2].textContent = Math.ceil( Game.buffs[i].time / Game.fps, ); - numberOfTimers++; + numberOfTimers += 1; BuffTimerBars[Game.buffs[i].name] = timer; } - } - for (const i of Object.keys(BuffTimerBars)) { + }); + Object.keys(BuffTimerBars).forEach((i) => { l('CMTimerBarBuffTimers').appendChild(BuffTimerBars[i]); - } + }); if (numberOfTimers !== 0) { l('CMTimerBar').style.height = `${numberOfTimers * 12 + 2}px`; diff --git a/src/Disp/MenuSections/AddStatsPage.js b/src/Disp/MenuSections/AddStatsPage.js index 0c7c5188..2315b4b4 100644 --- a/src/Disp/MenuSections/AddStatsPage.js +++ b/src/Disp/MenuSections/AddStatsPage.js @@ -112,47 +112,47 @@ export default function AddMenuStats(title) { let specDisp = false; const missingHalloweenCookies = []; - for (const i of Object.keys(GameData.HalloCookies)) { + Object.keys(GameData.HalloCookies).forEach((i) => { if (!Game.Has(GameData.HalloCookies[i])) { missingHalloweenCookies.push(GameData.HalloCookies[i]); specDisp = true; } - } + }); const missingChristmasCookies = []; - for (const i of Object.keys(GameData.ChristCookies)) { + Object.keys(GameData.ChristCookies).forEach((i) => { if (!Game.Has(GameData.ChristCookies[i])) { missingChristmasCookies.push(GameData.ChristCookies[i]); specDisp = true; } - } + }); const missingValentineCookies = []; - for (const i of Object.keys(GameData.ValCookies)) { + Object.keys(GameData.ValCookies).forEach((i) => { if (!Game.Has(GameData.ValCookies[i])) { missingValentineCookies.push(GameData.ValCookies[i]); specDisp = true; } - } + }); const missingNormalEggs = []; - for (const i of Object.keys(Game.eggDrops)) { + Object.keys(Game.eggDrops).forEach((i) => { if (!Game.HasUnlocked(Game.eggDrops[i])) { missingNormalEggs.push(Game.eggDrops[i]); specDisp = true; } - } + }); const missingRareEggs = []; - for (const i of Object.keys(Game.rareEggDrops)) { + Object.keys(Game.rareEggDrops).forEach((i) => { if (!Game.HasUnlocked(Game.rareEggDrops[i])) { missingRareEggs.push(Game.rareEggDrops[i]); specDisp = true; } - } + }); const missingPlantDrops = []; - for (const i of Object.keys(GameData.PlantDrops)) { + Object.keys(GameData.PlantDrops).forEach((i) => { if (!Game.HasUnlocked(GameData.PlantDrops[i])) { missingPlantDrops.push(GameData.PlantDrops[i]); specDisp = true; } - } + }); const choEgg = Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'); const centEgg = Game.Has('Century egg'); @@ -266,11 +266,11 @@ export default function AddMenuStats(title) { ); if (Game.Has('Fortune cookies')) { const fortunes = []; - for (const i of Object.keys(GameData.Fortunes)) { + Object.keys(GameData.Fortunes).forEach((i) => { if (!Game.Has(GameData.Fortunes[i])) { fortunes.push(GameData.Fortunes[i]); } - } + }); if (fortunes.length !== 0) stats.appendChild( CreateElements.StatsListing( diff --git a/src/Disp/MenuSections/CreateDOMElements.js b/src/Disp/MenuSections/CreateDOMElements.js index 84ded84d..aefdd3e3 100644 --- a/src/Disp/MenuSections/CreateDOMElements.js +++ b/src/Disp/MenuSections/CreateDOMElements.js @@ -106,12 +106,12 @@ export function StatsMissDisp(theMissDisp) { title.style.textAlign = 'center'; title.textContent = 'Missing'; missing.appendChild(title); - for (const i of Object.keys(theMissDisp)) { + Object.keys(theMissDisp).forEach((i) => { const div = document.createElement('div'); div.style.textAlign = 'center'; div.appendChild(document.createTextNode(theMissDisp[i])); missing.appendChild(div); - } + }); placeholder.appendChild(missing); span.onmouseover = function () { Game.tooltip.draw(this, escape(placeholder.innerHTML)); diff --git a/src/Disp/MenuSections/CreateMissingUpgrades.js b/src/Disp/MenuSections/CreateMissingUpgrades.js index bdd0d453..ad8785c6 100644 --- a/src/Disp/MenuSections/CreateMissingUpgrades.js +++ b/src/Disp/MenuSections/CreateMissingUpgrades.js @@ -10,7 +10,7 @@ import { * This function creates the missing upgrades sections for prestige, normal and cookie upgrades */ export function AddMissingUpgrades() { - for (const menuSection of l('menu').children) { + l('menu').childNodes.forEach((menuSection) => { if (menuSection.children[0]) { if ( menuSection.children[0].innerHTML === 'Prestige' && @@ -82,7 +82,7 @@ export function AddMissingUpgrades() { } } } - } + }); } /** @@ -99,7 +99,7 @@ export function crateMissing(me) { if (!Game.prefs.crates) noFrame = 1; if (noFrame) classes += ' noFrame'; - let icon = me.icon; + let { icon } = me; if (me.iconFunction) icon = me.iconFunction(); const tooltip = `function() {return Game.crateTooltip(Game.UpgradesById[${me.id}], 'stats');}`; return `
{ const groupObject = CreatePrefHeader(group, ConfigGroups[group]); // (group, display-name of group) frag.appendChild(groupObject); if (CMOptions.Header[group]) { // 0 is show, 1 is collapsed // Make sub-sections of Notification section if (group === 'Notification') { - for (const subGroup of Object.keys(ConfigGroupsNotification)) { + Object.keys(ConfigGroupsNotification).forEach((subGroup) => { const subGroupObject = CreatePrefHeader( subGroup, ConfigGroupsNotification[subGroup], @@ -232,20 +232,20 @@ export default function AddMenuPref(title) { subGroupObject.style.opacity = '0.5'; frag.appendChild(subGroupObject); if (CMOptions.Header[subGroup]) { - for (const option in Config) { + Object.keys(Config).forEach((option) => { if (Config[option].group === subGroup) frag.appendChild(CreatePrefOption(option)); - } + }); } - } + }); } else { - for (const option of Object.keys(Config)) { + Object.keys(Config).forEach((option) => { if (Config[option].group === group) frag.appendChild(CreatePrefOption(option)); - } + }); } } - } + }); const resDef = document.createElement('div'); resDef.className = 'listing'; diff --git a/src/Disp/Notifications/Notification.js b/src/Disp/Notifications/Notification.js index 7f64697b..006889bc 100644 --- a/src/Disp/Notifications/Notification.js +++ b/src/Disp/Notifications/Notification.js @@ -10,7 +10,7 @@ import { isInitializing } from '../../InitSaveLoad/Variables'; * @param {string} title The title of the to-be created notifications * @param {string} message The text of the to-be created notifications */ -export default function Notification(notifyConfig, title, message) { +export default function CreateNotification(notifyConfig, title, message) { // The arguments check makes the sound not play upon initialization of the mod if ( CMOptions[notifyConfig] === 1 && @@ -18,6 +18,7 @@ export default function Notification(notifyConfig, title, message) { isInitializing === false ) { const CookieIcon = 'https://orteil.dashnet.org/cookieclicker/favicon.ico'; + // eslint-disable-next-line no-new new Notification(title, { body: message, badge: CookieIcon }); } } diff --git a/src/Disp/Tooltips/CreateTooltip.js b/src/Disp/Tooltips/CreateTooltip.js index cb18d6a4..609913d7 100644 --- a/src/Disp/Tooltips/CreateTooltip.js +++ b/src/Disp/Tooltips/CreateTooltip.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ import { CMOptions } from '../../Config/VariablesAndData'; import { ColorTextPre, diff --git a/src/Disp/Tooltips/TypesOfTooltips/Building.js b/src/Disp/Tooltips/TypesOfTooltips/Building.js index ba7ddb86..829c4ced 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/Building.js +++ b/src/Disp/Tooltips/TypesOfTooltips/Building.js @@ -1,3 +1,4 @@ +/* eslint-disable no-restricted-syntax */ import { CacheObjects1, CacheObjects10, diff --git a/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js b/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js index d68021db..c262ded8 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js +++ b/src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js @@ -8,7 +8,7 @@ import * as Create from '../CreateTooltip'; * It adds to the additional information to l('CMTooltipArea') */ export default function GardenPlots() { - const minigame = Game.Objects.Farm.minigame; + const { minigame } = Game.Objects.Farm; if ( CMOptions.TooltipPlots && minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0 diff --git a/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js b/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js index 887100b3..f2718520 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js +++ b/src/Disp/Tooltips/TypesOfTooltips/Grimoire.js @@ -14,7 +14,7 @@ import * as Create from '../CreateTooltip'; * It adds to the additional information to l('CMTooltipArea') */ export default function Grimoire() { - const minigame = Game.Objects['Wizard tower'].minigame; + const { minigame } = Game.Objects['Wizard tower']; const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]); if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) { diff --git a/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js b/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js index b9a9984d..b116ddb0 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js +++ b/src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js @@ -8,7 +8,7 @@ import * as Create from '../CreateTooltip'; * It adds to the additional information to l('CMTooltipArea') */ export default function HarvestAll() { - const minigame = Game.Objects.Farm.minigame; + const { minigame } = Game.Objects.Farm; if (CMOptions.TooltipLump) { l('CMTooltipBorder').appendChild( Create.TooltipCreateHeader('Cookies gained from harvesting:'), diff --git a/src/Disp/Tooltips/WrinklerTooltips.js b/src/Disp/Tooltips/WrinklerTooltips.js index cb48499c..79ed63ae 100644 --- a/src/Disp/Tooltips/WrinklerTooltips.js +++ b/src/Disp/Tooltips/WrinklerTooltips.js @@ -16,7 +16,7 @@ export function CheckWrinklerTooltip() { if (CMOptions.TooltipWrink === 1 && TooltipWrinklerArea === 1) { // Latter is set by CM.Main.AddWrinklerAreaDetect let showingTooltip = false; - for (const i of Object.keys(Game.wrinklers)) { + Object.keys(Game.wrinklers).forEach((i) => { const me = Game.wrinklers[i]; if (me.phase > 0 && me.selected) { showingTooltip = true; @@ -36,11 +36,11 @@ export function CheckWrinklerTooltip() { Game.tooltip.draw(this, escape(placeholder.innerHTML)); TooltipWrinkler = i; TooltipWrinklerBeingShown[i] = 1; - } else break; + } } else { TooltipWrinklerBeingShown[i] = 0; } - } + }); if (!showingTooltip) { Game.tooltip.hide(); } @@ -54,7 +54,7 @@ export function CheckWrinklerTooltip() { */ export function UpdateWrinklerTooltip() { if (CMOptions.TooltipWrink === 1 && l('CMTooltipWrinkler') !== null) { - let sucked = Game.wrinklers[TooltipWrinkler].sucked; + let { sucked } = Game.wrinklers[TooltipWrinkler]; let toSuck = 1.1; if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05; if (Game.wrinklers[TooltipWrinkler].type === 1) toSuck *= 3; // Shiny wrinklers diff --git a/src/Main/CheckStates/GoldenCookie.js b/src/Main/CheckStates/GoldenCookie.js index 18d1727d..f04c8935 100644 --- a/src/Main/CheckStates/GoldenCookie.js +++ b/src/Main/CheckStates/GoldenCookie.js @@ -6,7 +6,7 @@ import { import { CMOptions } from '../../Config/VariablesAndData'; import CreateGCTimer from '../../Disp/GoldenCookieTimers/GoldenCookieTimers'; import Flash from '../../Disp/Notifications/Flash'; -import Notification from '../../Disp/Notifications/Notification'; +import CreateNotification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { UpdateFavicon } from '../../Disp/TabTitle/FavIcon'; import { GCTimers } from '../../Disp/VariablesAndData'; @@ -24,13 +24,13 @@ import { function FindShimmer() { CurrSpawnedGoldenCookieState = 0; CacheGoldenShimmersByID = {}; - for (const i of Object.keys(Game.shimmers)) { + Object.keys(Game.shimmers).forEach((i) => { CacheGoldenShimmersByID[Game.shimmers[i].id] = Game.shimmers[i]; if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'golden') { CacheSpawnedGoldenShimmer = Game.shimmers[i]; CurrSpawnedGoldenCookieState += 1; } - } + }); } /** @@ -39,42 +39,42 @@ function FindShimmer() { */ export default function CheckGoldenCookie() { FindShimmer(); - for (const i of Object.keys(GCTimers)) { + Object.keys(GCTimers).forEach((i) => { if (typeof CacheGoldenShimmersByID[i] === 'undefined') { GCTimers[i].parentNode.removeChild(GCTimers[i]); delete GCTimers[i]; } - } + }); if (LastGoldenCookieState !== Game.shimmerTypes.golden.n) { LastGoldenCookieState = Game.shimmerTypes.golden.n; if (LastGoldenCookieState) { if (LastSpawnedGoldenCookieState < CurrSpawnedGoldenCookieState) { Flash(3, 'GCFlash'); PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume'); - Notification( + CreateNotification( 'GCNotification', 'Golden Cookie Spawned', 'A Golden Cookie has spawned. Click it now!', ); } - for (const i of Object.keys(Game.shimmers)) { + Object.keys(Game.shimmers).forEach((i) => { if (typeof GCTimers[Game.shimmers[i].id] === 'undefined') { CreateGCTimer(Game.shimmers[i]); } - } + }); } UpdateFavicon(); LastSpawnedGoldenCookieState = CurrSpawnedGoldenCookieState; if (CurrSpawnedGoldenCookieState === 0) CacheSpawnedGoldenShimmer = 0; } else if (CMOptions.GCTimer === 1 && LastGoldenCookieState) { - for (const i of Object.keys(GCTimers)) { + Object.keys(GCTimers).forEach((i) => { GCTimers[i].style.opacity = CacheGoldenShimmersByID[i].l.style.opacity; GCTimers[i].style.transform = CacheGoldenShimmersByID[i].l.style.transform; GCTimers[i].textContent = Math.ceil( CacheGoldenShimmersByID[i].life / Game.fps, ); - } + }); } } diff --git a/src/Main/CheckStates/Grimoire.js b/src/Main/CheckStates/Grimoire.js index 3835b726..d6bbde15 100644 --- a/src/Main/CheckStates/Grimoire.js +++ b/src/Main/CheckStates/Grimoire.js @@ -1,6 +1,6 @@ import { CMOptions } from '../../Config/VariablesAndData'; import Flash from '../../Disp/Notifications/Flash'; -import Notification from '../../Disp/Notifications/Notification'; +import CreateNotification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { LastMagicBarFull } from '../VariablesAndData'; @@ -13,13 +13,13 @@ export default function CheckMagicMeter() { Game.Objects['Wizard tower'].minigameLoaded && CMOptions.GrimoireBar === 1 ) { - const minigame = Game.Objects['Wizard tower'].minigame; + const { minigame } = Game.Objects['Wizard tower']; if (minigame.magic < minigame.magicM) LastMagicBarFull = false; else if (!LastMagicBarFull) { LastMagicBarFull = true; Flash(3, 'MagicFlash'); PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume'); - Notification( + CreateNotification( 'MagicNotification', 'Magic Meter full', 'Your Magic Meter is full. Cast a spell!', diff --git a/src/Main/CheckStates/Season.js b/src/Main/CheckStates/Season.js index 958a0b4f..5b0dbb4e 100644 --- a/src/Main/CheckStates/Season.js +++ b/src/Main/CheckStates/Season.js @@ -2,7 +2,7 @@ import { CacheSeasonPopShimmer } from '../../Cache/VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import Flash from '../../Disp/Notifications/Flash'; -import Notification from '../../Disp/Notifications/Notification'; +import CreateNotification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { LastSeasonPopupState } from '../VariablesAndData'; @@ -13,15 +13,14 @@ import { LastSeasonPopupState } from '../VariablesAndData'; export default function CheckSeasonPopup() { if (LastSeasonPopupState !== Game.shimmerTypes.reindeer.spawned) { LastSeasonPopupState = Game.shimmerTypes.reindeer.spawned; - for (const i of Object.keys(Game.shimmers)) { + Object.keys(Game.shimmers).forEach((i) => { if (Game.shimmers[i].spawnLead && Game.shimmers[i].type === 'reindeer') { CacheSeasonPopShimmer = Game.shimmers[i]; - break; } - } + }); Flash(3, 'SeaFlash'); PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume'); - Notification( + CreateNotification( 'SeaNotification', 'Reindeer sighted!', 'A Reindeer has spawned. Click it now!', diff --git a/src/Main/CheckStates/Ticker.js b/src/Main/CheckStates/Ticker.js index e26c9a5c..22dc0119 100644 --- a/src/Main/CheckStates/Ticker.js +++ b/src/Main/CheckStates/Ticker.js @@ -1,6 +1,6 @@ import { CMOptions } from '../../Config/VariablesAndData'; import Flash from '../../Disp/Notifications/Flash'; -import Notification from '../../Disp/Notifications/Notification'; +import CreateNotification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { LastTickerFortuneState } from '../VariablesAndData'; @@ -18,7 +18,7 @@ export default function CheckTickerFortune() { if (LastTickerFortuneState) { Flash(3, 'FortuneFlash'); PlaySound(CMOptions.FortuneSoundURL, 'FortuneSound', 'FortuneVolume'); - Notification( + CreateNotification( 'FortuneNotification', 'Fortune Cookie found', 'A Fortune Cookie has appeared on the Ticker.', diff --git a/src/Main/CheckStates/Wrinkler.js b/src/Main/CheckStates/Wrinkler.js index 6c1cf1b7..07bb4cf9 100644 --- a/src/Main/CheckStates/Wrinkler.js +++ b/src/Main/CheckStates/Wrinkler.js @@ -1,6 +1,6 @@ import { CMOptions } from '../../Config/VariablesAndData'; import Flash from '../../Disp/Notifications/Flash'; -import Notification from '../../Disp/Notifications/Notification'; +import CreateNotification from '../../Disp/Notifications/Notification'; import PlaySound from '../../Disp/Notifications/Sound'; import { LastWrinklerCount } from '../VariablesAndData'; @@ -11,9 +11,9 @@ import { LastWrinklerCount } from '../VariablesAndData'; export default function CheckWrinklerCount() { if (Game.elderWrath > 0) { let CurrentWrinklers = 0; - for (const i in Game.wrinklers) { - if (Game.wrinklers[i].phase === 2) CurrentWrinklers++; - } + Object.keys(Game.wrinklers).forEach((i) => { + if (Game.wrinklers[i].phase === 2) CurrentWrinklers += 1; + }); if (CurrentWrinklers > LastWrinklerCount) { LastWrinklerCount = CurrentWrinklers; if ( @@ -44,13 +44,13 @@ export default function CheckWrinklerCount() { CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxNotification ) { - Notification( + CreateNotification( 'WrinklerMaxNotification', 'Maximum Wrinklers Reached', 'You have reached your maximum ammount of wrinklers', ); } else { - Notification( + CreateNotification( 'WrinklerNotification', 'A Wrinkler appeared', 'A new wrinkler has appeared', diff --git a/src/Main/Initialization.js b/src/Main/Initialization.js index 71227fdf..f3677692 100644 --- a/src/Main/Initialization.js +++ b/src/Main/Initialization.js @@ -38,13 +38,13 @@ export default function InitializeCookieMonster() { CreateUpgradeBar(); CreateWhiteScreen(); CreateFavicon(); - for (const i of Object.keys(TooltipText)) { + Object.keys(TooltipText).forEach((i) => { CreateSimpleTooltip( TooltipText[i][0], TooltipText[i][1], TooltipText[i][2], ); - } + }); CreateWrinklerButtons(); UpdateBuildingUpgradeStyle(); diff --git a/src/Main/ReplaceGameElements/NativeGrimoire.js b/src/Main/ReplaceGameElements/NativeGrimoire.js index 1f5a9f43..c21f150f 100644 --- a/src/Main/ReplaceGameElements/NativeGrimoire.js +++ b/src/Main/ReplaceGameElements/NativeGrimoire.js @@ -20,7 +20,7 @@ function ReplaceNativeGrimoireDraw() { !HasReplaceNativeGrimoireDraw && Game.Objects['Wizard tower'].minigameLoaded ) { - const minigame = Game.Objects['Wizard tower'].minigame; + const { minigame } = Game.Objects['Wizard tower']; BackupGrimoireDraw = minigame.draw; Game.Objects['Wizard tower'].minigame.draw = function () { BackupGrimoireDraw(); @@ -46,7 +46,7 @@ function ReplaceNativeGrimoireLaunch() { !HasReplaceNativeGrimoireLaunch && Game.Objects['Wizard tower'].minigameLoaded ) { - const minigame = Game.Objects['Wizard tower'].minigame; + const { minigame } = Game.Objects['Wizard tower']; BackupGrimoireLaunch = minigame.launch; BackupGrimoireLaunchMod = new Function( `return ${minigame.launch diff --git a/src/Main/ReplaceGameElements/TooltipGrimoire.js b/src/Main/ReplaceGameElements/TooltipGrimoire.js index ac45ece2..37f76174 100644 --- a/src/Main/ReplaceGameElements/TooltipGrimoire.js +++ b/src/Main/ReplaceGameElements/TooltipGrimoire.js @@ -6,21 +6,23 @@ import { TooltipGrimoireBackup } from '../VariablesAndData'; */ export default function ReplaceTooltipGrimoire() { if (Game.Objects['Wizard tower'].minigameLoaded) { - for (const i in Game.Objects['Wizard tower'].minigame.spellsById) { - if (l(`grimoireSpell${i}`).onmouseover !== null) { - TooltipGrimoireBackup[i] = l(`grimoireSpell${i}`).onmouseover; - l(`grimoireSpell${i}`).onmouseover = function () { - Game.tooltip.dynamic = 1; - Game.tooltip.draw( - this, - function () { - return CreateTooltip('g', `${i}`); - }, - 'this', - ); - Game.tooltip.wobble(); - }; - } - } + Object.keys(Game.Objects['Wizard tower'].minigame.spellsById).forEach( + (i) => { + if (l(`grimoireSpell${i}`).onmouseover !== null) { + TooltipGrimoireBackup[i] = l(`grimoireSpell${i}`).onmouseover; + l(`grimoireSpell${i}`).onmouseover = function () { + Game.tooltip.dynamic = 1; + Game.tooltip.draw( + this, + function () { + return CreateTooltip('g', `${i}`); + }, + 'this', + ); + Game.tooltip.wobble(); + }; + } + }, + ); } } diff --git a/src/Main/ReplaceGameElements/TooltipUpgrades.js b/src/Main/ReplaceGameElements/TooltipUpgrades.js index c349dae1..5f01554c 100644 --- a/src/Main/ReplaceGameElements/TooltipUpgrades.js +++ b/src/Main/ReplaceGameElements/TooltipUpgrades.js @@ -8,7 +8,7 @@ import { TooltipUpgradeBackup } from '../VariablesAndData'; */ export default function ReplaceTooltipUpgrade() { TooltipUpgradeBackup = []; - for (const i of Object.keys(Game.UpgradesInStore)) { + Object.keys(Game.UpgradesInStore).forEach((i) => { if (l(`upgrade${i}`).onmouseover !== null) { TooltipUpgradeBackup[i] = l(`upgrade${i}`).onmouseover; l(`upgrade${i}`).onmouseover = function () { @@ -26,5 +26,5 @@ export default function ReplaceTooltipUpgrade() { } }; } - } + }); } diff --git a/src/Main/ReplaceGameElements/Tooltips.js b/src/Main/ReplaceGameElements/Tooltips.js index ad928619..69262882 100644 --- a/src/Main/ReplaceGameElements/Tooltips.js +++ b/src/Main/ReplaceGameElements/Tooltips.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ /* eslint-disable no-unused-vars */ /** Functions related to replacing tooltips */ @@ -14,7 +15,7 @@ import ReplaceTooltipGrimoire from './TooltipGrimoire'; * This function replaces the original .onmouseover functions of buildings */ function ReplaceTooltipBuild() { - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { const me = Game.Objects[i]; if (l(`product${me.id}`).onmouseover !== null) { TooltipBuildBackup[i] = l(`product${me.id}`).onmouseover; @@ -30,7 +31,7 @@ function ReplaceTooltipBuild() { Game.tooltip.wobble(); }; } - } + }); } /** @@ -129,6 +130,7 @@ export default function ReplaceTooltips() { // Replace Tooltips of Minigames. Nesting it in LoadMinigames makes sure to replace them even if // they were not loaded initially + // eslint-disable-next-line prefer-destructuring LoadMinigames = Game.LoadMinigames; Game.LoadMinigames = function () { LoadMinigames(); diff --git a/src/Main/WrinklerArea/AddDetectArea.js b/src/Main/WrinklerArea/AddDetectArea.js index c44f2ed4..79f54b84 100644 --- a/src/Main/WrinklerArea/AddDetectArea.js +++ b/src/Main/WrinklerArea/AddDetectArea.js @@ -15,8 +15,8 @@ export default function AddWrinklerAreaDetect() { l('backgroundLeftCanvas').onmouseout = function () { TooltipWrinklerArea = 0; Game.tooltip.hide(); - for (const i of Object.keys(Game.wrinklers)) { + Object.keys(Game.wrinklers).forEach((i) => { TooltipWrinklerBeingShown[i] = 0; - } + }); }; } diff --git a/src/Sim/Calculations/CalculateGains.js b/src/Sim/Calculations/CalculateGains.js index 70ed3fe7..35592a7b 100644 --- a/src/Sim/Calculations/CalculateGains.js +++ b/src/Sim/Calculations/CalculateGains.js @@ -31,15 +31,15 @@ export default function CalculateGains() { let mult = 1; // Include minigame effects const effs = {}; - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { if (Game.Objects[i].minigameLoaded && Game.Objects[i].minigame.effs) { const myEffs = Game.Objects[i].minigame.effs; - for (const ii in myEffs) { + Object.keys(myEffs).forEach((ii) => { if (effs[ii]) effs[ii] *= myEffs[ii]; else effs[ii] = myEffs[ii]; - } + }); } - } + }); SimEffs = effs; if (Game.ascensionMode !== 1) @@ -54,7 +54,7 @@ export default function CalculateGains() { if (SimHas('Heralds') && Game.ascensionMode !== 1) mult *= 1 + 0.01 * Game.heralds; - for (const i of Object.keys(Game.cookieUpgrades)) { + Object.keys(Game.cookieUpgrades).forEach((i) => { const me = Game.cookieUpgrades[i]; if (SimHas(me.name)) { // Some upgrades have a functio as .power (notably the valentine cookies) @@ -64,7 +64,7 @@ export default function CalculateGains() { mult *= 1 + SimUpgrades[me.name].power(SimUpgrades[me.name]) * 0.01; } else mult *= 1 + me.power * 0.01; } - } + }); if (SimHas('Specialized chocolate chips')) mult *= 1.01; if (SimHas('Designer cocoa beans')) mult *= 1.02; @@ -160,7 +160,7 @@ export default function CalculateGains() { if (SimHas('Kitten angels')) catMult *= 1 + milkProgress * 0.1 * milkMult; if (SimHas('Fortune #103')) catMult *= 1 + milkProgress * 0.05 * milkMult; - for (const i of Object.keys(SimObjects)) { + Object.keys(SimObjects).forEach((i) => { const me = SimObjects[i]; let storedCps = me.cps(me); if (Game.ascensionMode !== 1) @@ -171,7 +171,7 @@ export default function CalculateGains() { ) storedCps *= 1 + 0.05 * milkProgress * milkMult; SimCookiesPs += me.amount * storedCps; - } + }); if (SimHas('"egg"')) SimCookiesPs += 9; // "egg" @@ -210,14 +210,14 @@ export default function CalculateGains() { mult *= 1 + SimAuraMult('Radiant Appetite'); const rawCookiesPs = SimCookiesPs * mult; - for (const i of Object.keys(Game.CpsAchievements)) { + Object.keys(Game.CpsAchievements).forEach((i) => { if (rawCookiesPs >= Game.CpsAchievements[i].threshold) SimWin(Game.CpsAchievements[i].name); - } + }); SimCookiesPsRaw = rawCookiesPs; - const n = Game.shimmerTypes.golden.n; + const { n } = Game.shimmerTypes.golden; const auraMult = SimAuraMult("Dragon's Fortune"); for (let i = 0; i < n; i++) { mult *= 1 + auraMult * 1.23; @@ -233,9 +233,9 @@ export default function CalculateGains() { let goldenSwitchMult = 1.5; if (SimHas('Residual luck')) { const upgrades = Game.goldenCookieUpgrades; - for (const i of Object.keys(upgrades)) { + Object.keys(upgrades).forEach((i) => { if (SimHas(upgrades[i])) goldenSwitchMult += 0.1; - } + }); } mult *= goldenSwitchMult; } diff --git a/src/Sim/Calculations/CheckOtherAchiev.js b/src/Sim/Calculations/CheckOtherAchiev.js index 300ae6d4..58b17249 100644 --- a/src/Sim/Calculations/CheckOtherAchiev.js +++ b/src/Sim/Calculations/CheckOtherAchiev.js @@ -11,9 +11,9 @@ import { SimObjects, SimUpgradesOwned } from '../VariablesAndData'; */ export default function CheckOtherAchiev() { let grandmas = 0; - for (const i of Object.keys(Game.GrandmaSynergies)) { - if (SimHas(Game.GrandmaSynergies[i])) grandmas++; - } + Object.keys(Game.GrandmaSynergies).forEach((i) => { + if (SimHas(Game.GrandmaSynergies[i])) grandmas += 1; + }); if (!SimHasAchiev('Elder') && grandmas >= 7) SimWin('Elder'); if (!SimHasAchiev('Veteran') && grandmas >= 14) SimWin('Veteran'); @@ -21,7 +21,7 @@ export default function CheckOtherAchiev() { let mathematician = 1; let base10 = 1; let minAmount = 100000; - for (const i of Object.keys(SimObjects)) { + Object.keys(SimObjects).forEach((i) => { buildingsOwned += SimObjects[i].amount; minAmount = Math.min(SimObjects[i].amount, minAmount); if (!SimHasAchiev('Mathematician')) { @@ -38,7 +38,7 @@ export default function CheckOtherAchiev() { ) base10 = 0; } - } + }); if (minAmount >= 1) SimWin('One with everything'); if (mathematician === 1) SimWin('Mathematician'); if (base10 === 1) SimWin('Base 10'); @@ -76,23 +76,23 @@ export default function CheckOtherAchiev() { SimWin('The elder scrolls'); let hasAllHalloCook = true; - for (const i of Object.keys(HalloCookies)) { + Object.keys(HalloCookies).forEach((i) => { if (!SimHas(HalloCookies[i])) hasAllHalloCook = false; - } + }); if (hasAllHalloCook) SimWin('Spooky cookies'); let hasAllChristCook = true; - for (const i of Object.keys(ChristCookies)) { + Object.keys(ChristCookies).forEach((i) => { if (!SimHas(ChristCookies[i])) hasAllChristCook = false; - } + }); if (hasAllChristCook) SimWin('Let it snow'); if (SimHas('Fortune cookies')) { const list = Game.Tiers.fortune.upgrades; let fortunes = 0; - for (const i of Object.keys(list)) { - if (SimHas(list[i].name)) fortunes++; - } + Object.keys(list).forEach((i) => { + if (SimHas(list[i].name)) fortunes += 1; + }); if (fortunes >= list.length) SimWin('O Fortuna'); } } diff --git a/src/Sim/InitializeData/InitData.js b/src/Sim/InitializeData/InitData.js index 6a1f1ec0..af8232d0 100644 --- a/src/Sim/InitializeData/InitData.js +++ b/src/Sim/InitializeData/InitData.js @@ -12,20 +12,20 @@ import InitUpgrade from './InitUpgrade'; export default function InitData() { // Buildings SimObjects = []; - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { SimObjects[i] = InitialBuildingData(i); - } + }); // Upgrades SimUpgrades = []; - for (const i of Object.keys(Game.Upgrades)) { + Object.keys(Game.Upgrades).forEach((i) => { SimUpgrades[i] = InitUpgrade(i); - } + }); // Achievements SimAchievements = []; - for (const i of Object.keys(Game.Achievements)) { + Object.keys(Game.Achievements).forEach((i) => { SimAchievements[i] = InitAchievement(i); - } + }); CopyData(); } diff --git a/src/Sim/InitializeData/InitUpgrade.js b/src/Sim/InitializeData/InitUpgrade.js index 12503e2b..19704fdb 100644 --- a/src/Sim/InitializeData/InitUpgrade.js +++ b/src/Sim/InitializeData/InitUpgrade.js @@ -16,9 +16,9 @@ export default function InitUpgrade(upgradeName) { if (me.name === 'Sugar crystal cookies') { you.power = function () { let n = 5; - for (const i in SimObjects) { + Object.keys(SimObjects).forEach((i) => { if (SimObjects[i].level >= 10) n += 1; - } + }); return n; }; } else { diff --git a/src/Sim/InitializeData/InitialBuildingData.js b/src/Sim/InitializeData/InitialBuildingData.js index aee003e6..07f799d2 100644 --- a/src/Sim/InitializeData/InitialBuildingData.js +++ b/src/Sim/InitializeData/InitialBuildingData.js @@ -29,9 +29,9 @@ export default function InitialBuildingData(buildingName) { if (SimHas('Nonillion fingers')) add *= 20; let mult = 1; let num = 0; - for (const i in SimObjects) { + Object.keys(SimObjects).forEach((i) => { if (SimObjects[i].name !== 'Cursor') num += SimObjects[i].amount; - } + }); add *= num; mult *= SimGetTieredCpsMult(it); mult *= Game.magicCpS('Cursor'); @@ -49,9 +49,9 @@ export default function InitialBuildingData(buildingName) { } else if (me.name === 'Grandma') { you.cps = function (it) { let mult = 1; - for (const i in Game.GrandmaSynergies) { + Object.keys(Game.GrandmaSynergies).forEach((i) => { if (SimHas(Game.GrandmaSynergies[i])) mult *= 2; - } + }); if (SimHas('Bingo center/Research facility')) mult *= 4; if (SimHas('Ritual rolling pins')) mult *= 2; if (SimHas('Naughty list')) mult *= 2; @@ -75,9 +75,9 @@ export default function InitialBuildingData(buildingName) { if (SimHas('Elder Pact')) add += SimObjects.Portal.amount * 0.05; let num = 0; - for (const i in SimObjects) { + Object.keys(SimObjects).forEach((i) => { if (SimObjects[i].name !== 'Grandma') num += SimObjects[i].amount; - } + }); // if (Game.hasAura('Elder Battalion')) mult*=1+0.01*num; mult *= 1 + SimAuraMult('Elder Battalion') * 0.01 * num; diff --git a/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js b/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js index bc5009d2..6634972f 100644 --- a/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js +++ b/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js @@ -6,14 +6,14 @@ import SimHas from './SimHas'; */ export default function SimGetTieredCpsMult(me) { let mult = 1; - for (const i in me.tieredUpgrades) { + Object.keys(me.tieredUpgrades).forEach((i) => { if ( !Game.Tiers[me.tieredUpgrades[i].tier].special && SimHas(me.tieredUpgrades[i].name) ) mult *= 2; - } - for (const i in me.synergies) { + }); + Object.keys(me.synergies).forEach((i) => { if (SimHas(me.synergies[i].name)) { const syn = me.synergies[i]; if (syn.buildingTie1.name === me.name) @@ -21,7 +21,7 @@ export default function SimGetTieredCpsMult(me) { else if (syn.buildingTie2.name === me.name) mult *= 1 + 0.001 * syn.buildingTie1.amount; } - } + }); if (me.fortune && SimHas(me.fortune.name)) mult *= 1.07; if (me.grandma && SimHas(me.grandma.name)) mult *= 1 + SimObjects.Grandma.amount * 0.01 * (1 / (me.id - 1)); diff --git a/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js b/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js index bda3b83e..0bd7d5f6 100644 --- a/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js +++ b/src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js @@ -8,26 +8,27 @@ import SimHasGod from './SimHasGod'; * This function calculates the sell price of a building based on current "sim data" * @param {string} building Name of the building * @param {number} price Current price of building - * @returns {number} price The modified building price + * @returns {number} ModifiedPrice The modified building price */ export default function SimModifyBuildingPrice(building, price) { - if (SimHas('Season savings')) price *= 0.99; - if (SimHas("Santa's dominion")) price *= 0.99; - if (SimHas('Faberge egg')) price *= 0.99; - if (SimHas('Divine discount')) price *= 0.99; - if (SimHas('Fortune #100')) price *= 0.99; - // if (SimHasAura('Fierce Hoarder')) price *= 0.98; - price *= 1 - SimAuraMult('Fierce Hoarder') * 0.02; - if (Game.hasBuff('Everything must go')) price *= 0.95; - if (Game.hasBuff('Crafty pixies')) price *= 0.98; - if (Game.hasBuff('Nasty goblins')) price *= 1.02; - if (building.fortune && SimHas(building.fortune.name)) price *= 0.93; - price *= SimEff('buildingCost'); + let ModifiedPrice = price; + if (SimHas('Season savings')) ModifiedPrice *= 0.99; + if (SimHas("Santa's dominion")) ModifiedPrice *= 0.99; + if (SimHas('Faberge egg')) ModifiedPrice *= 0.99; + if (SimHas('Divine discount')) ModifiedPrice *= 0.99; + if (SimHas('Fortune #100')) ModifiedPrice *= 0.99; + // if (SimHasAura('Fierce Hoarder')) ModifiedPrice *= 0.98; + ModifiedPrice *= 1 - SimAuraMult('Fierce Hoarder') * 0.02; + if (Game.hasBuff('Everything must go')) ModifiedPrice *= 0.95; + if (Game.hasBuff('Crafty pixies')) ModifiedPrice *= 0.98; + if (Game.hasBuff('Nasty goblins')) ModifiedPrice *= 1.02; + if (building.fortune && SimHas(building.fortune.name)) ModifiedPrice *= 0.93; + ModifiedPrice *= SimEff('buildingCost'); if (SimObjects.Temple.minigameLoaded) { const godLvl = SimHasGod('creation'); - if (godLvl === 1) price *= 0.93; - else if (godLvl === 2) price *= 0.95; - else if (godLvl === 3) price *= 0.98; + if (godLvl === 1) ModifiedPrice *= 0.93; + else if (godLvl === 2) ModifiedPrice *= 0.95; + else if (godLvl === 3) ModifiedPrice *= 0.98; } - return price; + return ModifiedPrice; } diff --git a/src/Sim/SimulationData/CopyData.js b/src/Sim/SimulationData/CopyData.js index 3a912c19..74b74c50 100644 --- a/src/Sim/SimulationData/CopyData.js +++ b/src/Sim/SimulationData/CopyData.js @@ -37,7 +37,7 @@ export default function CopyData() { SimPrestige = Game.prestige; // Buildings - for (const i of Object.keys(Game.Objects)) { + Object.keys(Game.Objects).forEach((i) => { const me = Game.Objects[i]; let you = SimObjects[i]; if (you === undefined) { @@ -61,10 +61,10 @@ export default function CopyData() { you.minigame = me.minigame; } SimObjects[i] = you; - } + }); // Upgrades - for (const i of Object.keys(Game.Upgrades)) { + Object.keys(Game.Upgrades).forEach((i) => { const me = Game.Upgrades[i]; let you = SimUpgrades[i]; if (you === undefined) { @@ -73,10 +73,10 @@ export default function CopyData() { } you.bought = me.bought; SimUpgrades[i] = you; - } + }); // Achievements - for (const i of Object.keys(Game.Achievements)) { + Object.keys(Game.Achievements).forEach((i) => { const me = Game.Achievements[i]; let you = SimAchievements[i]; if (you === undefined) { @@ -85,7 +85,7 @@ export default function CopyData() { } you.won = me.won; SimAchievements[i] = you; - } + }); // Auras CacheDragonAuras(); diff --git a/src/Sim/SimulationData/SimWin.js b/src/Sim/SimulationData/SimWin.js index fa1b61b8..42218119 100644 --- a/src/Sim/SimulationData/SimWin.js +++ b/src/Sim/SimulationData/SimWin.js @@ -11,7 +11,7 @@ export default function SimWin(what) { if (SimAchievements[what]) { if (SimAchievements[what].won === 0) { SimAchievements[what].won = 1; - if (Game.Achievements[what].pool !== 'shadow') SimAchievementsOwned++; + if (Game.Achievements[what].pool !== 'shadow') SimAchievementsOwned += 1; } } } diff --git a/src/Sim/SimulationEvents/BuyBuilding.js b/src/Sim/SimulationEvents/BuyBuilding.js index 9609eaec..5142b37c 100644 --- a/src/Sim/SimulationEvents/BuyBuilding.js +++ b/src/Sim/SimulationEvents/BuyBuilding.js @@ -16,13 +16,15 @@ export default function BuildingGetPrice( free, increase, ) { + let startingAmount = start; let moni = 0; - for (let i = 0; i < increase; i++) { - let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); + for (let i = 0; i < increase; i += 1) { + let price = + basePrice * Game.priceIncrease ** Math.max(0, startingAmount - free); price = Game.modifyBuildingPrice(build, price); price = Math.ceil(price); moni += price; - start++; + startingAmount += 1; } return moni; } diff --git a/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js b/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js index 0e8539e7..ceb745c3 100644 --- a/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js +++ b/src/Sim/SimulationEvents/BuyBuildingBonusIncome.js @@ -33,14 +33,14 @@ export default function BuyBuildingsBonusIncome(building, amount) { if (me.amount >= 700) SimWin('Gotta hand it to you'); if (me.amount >= 800) SimWin("The devil's workshop"); } else { - for (const j in Game.Objects[me.name].tieredAchievs) { + Object.keys(Game.Objects[me.name].tieredAchievs).forEach((j) => { if ( me.amount >= Game.Tiers[Game.Objects[me.name].tieredAchievs[j].tier].achievUnlock ) { SimWin(Game.Objects[me.name].tieredAchievs[j].name); } - } + }); } const lastAchievementsOwned = SimAchievementsOwned; diff --git a/src/Sim/SimulationEvents/BuyUpgrades.js b/src/Sim/SimulationEvents/BuyUpgrades.js index e5448bde..9e03266d 100644 --- a/src/Sim/SimulationEvents/BuyUpgrades.js +++ b/src/Sim/SimulationEvents/BuyUpgrades.js @@ -34,9 +34,9 @@ function MouseCps() { if (SimHas('Octillion fingers')) add *= 20; if (SimHas('Nonillion fingers')) add *= 20; let num = 0; - for (const i of Object.keys(SimObjects)) { + Object.keys(SimObjects).forEach((i) => { num += SimObjects[i].amount; - } + }); num -= SimObjects.Cursor.amount; add *= num; @@ -83,10 +83,10 @@ function MouseCps() { } } - for (const i of Object.keys(Game.buffs)) { + Object.keys(Game.buffs).forEach((i) => { if (typeof Game.buffs[i].multClick !== 'undefined') mult *= Game.buffs[i].multClick; - } + }); // if (CM.Sim.auraMult('Dragon Cursor')) mult*=1.05; mult *= 1 + SimAuraMult('Dragon Cursor') * 0.05; @@ -132,10 +132,10 @@ export default function BuyUpgradesBonusIncome(upgrade) { } const me = SimUpgrades[upgrade]; if (Game.CountsAsUpgradeOwned(Game.Upgrades[upgrade].pool)) - SimUpgradesOwned++; + SimUpgradesOwned += 1; if (upgrade === 'Elder Pledge') { - SimPledges++; + SimPledges += 1; if (SimPledges > 0) SimWin('Elder nap'); if (SimPledges >= 5) SimWin('Elder slumber'); } else if (upgrade === 'Elder Covenant') { diff --git a/src/Sim/SimulationEvents/SellBuilding.js b/src/Sim/SimulationEvents/SellBuilding.js index 81e01e7b..c1386f19 100644 --- a/src/Sim/SimulationEvents/SellBuilding.js +++ b/src/Sim/SimulationEvents/SellBuilding.js @@ -22,21 +22,26 @@ export default function BuildingSell( ) { // Calculate money gains from selling buildings // If noSim is set, use Game methods to compute price instead of Sim ones. - noSim = typeof noSim === 'undefined' ? 0 : noSim; + const noSimRes = typeof noSim === 'undefined' ? 0 : noSim; + let toChange = amount; + let startingAmount = start; let moni = 0; - if (amount === -1) amount = start; - if (!amount) amount = Game.buyBulk; - for (let i = 0; i < amount; i++) { - let price = basePrice * Game.priceIncrease ** Math.max(0, start - free); - price = noSim + if (amount === -1) toChange = startingAmount; + if (!amount) toChange = Game.buyBulk; + for (let i = 0; i < toChange; i++) { + let price = + basePrice * Game.priceIncrease ** Math.max(0, startingAmount - free); + price = noSimRes ? Game.modifyBuildingPrice(build, price) : SimModifyBuildingPrice(build, price); price = Math.ceil(price); - const giveBack = noSim ? build.getSellMultiplier() : SimGetSellMultiplier(); + const giveBack = noSimRes + ? build.getSellMultiplier() + : SimGetSellMultiplier(); price = Math.floor(price * giveBack); - if (start > 0) { + if (startingAmount > 0) { moni += price; - start--; + startingAmount -= 1; } } return moni; diff --git a/src/Sim/SimulationEvents/SellBuildingForChoEgg.js b/src/Sim/SimulationEvents/SellBuildingForChoEgg.js index 8f0e5b30..49c19efb 100644 --- a/src/Sim/SimulationEvents/SellBuildingForChoEgg.js +++ b/src/Sim/SimulationEvents/SellBuildingForChoEgg.js @@ -21,10 +21,10 @@ export default function SellBuildingsForChoEgg() { // Change auras to Earth Shatterer + Reality bending to optimize money made by selling let buildingsToSacrifice = 2; if (SimDragonAura === 5 || SimDragonAura === 18) { - --buildingsToSacrifice; + buildingsToSacrifice -= 1; } if (SimDragonAura2 === 5 || SimDragonAura2 === 18) { - --buildingsToSacrifice; + buildingsToSacrifice -= 1; } SimDragonAura = 5; SimDragonAura2 = 18; @@ -32,17 +32,17 @@ export default function SellBuildingsForChoEgg() { // Sacrifice highest buildings for the aura switch for (let i = 0; i < buildingsToSacrifice; ++i) { let highestBuilding = 'Cursor'; - for (const j in SimObjects) { + Object.keys(SimObjects).forEach((j) => { if (SimObjects[j].amount > 0) { highestBuilding = j; } - } - SimObjects[highestBuilding].amount--; - SimBuildingsOwned--; + }); + SimObjects[highestBuilding].amount -= 1; + SimBuildingsOwned -= 1; } // Get money made by selling all remaining buildings - for (const i of Object.keys(SimObjects)) { + Object.keys(SimObjects).forEach((i) => { const me = SimObjects[i]; sellTotal += BuildingSell( Game.Objects[me.name], @@ -51,7 +51,7 @@ export default function SellBuildingsForChoEgg() { Game.Objects[i].free, me.amount, ); - } + }); return sellTotal; } From 0a30d8e3e8a292549feeb3a11e073c3d22f46e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 09:35:53 +0100 Subject: [PATCH 07/25] Removed unnecessary globals --- .eslintrc.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index e944c8f2..a3295cfd 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,8 +10,6 @@ module.exports = { utf8_to_b64: 'readonly', realAudio: 'readonly', BeautifyAll: 'readonly', - CM: 'writable', - unsafeWindow: 'readonly', }, extends: ['airbnb-base', 'plugin:prettier/recommended'], parserOptions: { From d35217b6d5c5f2be62e0c2c054d5a05f8517e6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 13:27:21 +0100 Subject: [PATCH 08/25] Test button for sounds and new Audio() code #630 --- .eslintrc.js | 1 - CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Disp/MenuSections/SettingsPage.js | 13 +++++++++++++ src/Disp/Notifications/Sound.js | 7 ++++--- src/Main/CheckStates/Garden.js | 2 +- src/Main/CheckStates/GoldenCookie.js | 2 +- src/Main/CheckStates/Grimoire.js | 2 +- src/Main/CheckStates/Season.js | 2 +- src/Main/CheckStates/Ticker.js | 7 ++++++- src/Main/CheckStates/Wrinkler.js | 2 ++ 12 files changed, 32 insertions(+), 12 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a3295cfd..deeecb55 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,7 +8,6 @@ module.exports = { l: 'readonly', b64_to_utf8: 'readonly', utf8_to_b64: 'readonly', - realAudio: 'readonly', BeautifyAll: 'readonly', }, extends: ['airbnb-base', 'plugin:prettier/recommended'], diff --git a/CookieMonster.js b/CookieMonster.js index 2330e808..a2872f55 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n){if(1===e[o]&&!1===kn){const o=new realAudio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume"),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume"),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far
").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 2330e808..a2872f55 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n){if(1===e[o]&&!1===kn){const o=new realAudio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume"),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume"),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume"):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume"),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");return r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 1c91ee29..b388b807 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","realAudio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOACA,SAEF,CACE,4BACA,2CACA,UAQJ,IAUIC,EACAC,EAXAC,EAAsB,EACtBC,GAAmB,EAOnBC,EAA4B,GAQ5BC,EAAmB,EACnBC,EAAsB,EACtBC,EAA4B,EAMhC,MAAMC,EAAc,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAC9CC,EAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IAK5BC,EAAa,CACjBC,OAAQpB,EACRqB,iBAAkBf,EAClBgB,eAAgBvB,EAChBwB,KAAMrB,EACNsB,eAAgB1B,EAChB2B,aAAcpB,GAMhB,IAOIqB,EACAC,EACAC,EACAC,GACAC,GAEAC,GACAC,GAdAC,GAAW,GAKXC,GAAQ,GA2BZ,SAASC,GAA4BC,EAAKC,EAAQC,GAChD,MAAMC,EAAWpE,EAAUqE,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBjE,EAAUuE,MACZ,OAAO/C,EAAgBgD,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,IAAIU,EAAS,GACb,GAAY,IAARV,EACF,OAAOA,EAAIjhB,WAEb,GAAIihB,EAAM,MAASA,EAAMjE,EAAU4E,YAGjC,OAF8BD,EAA1B3E,EAAU6E,eAAyBZ,EAAIa,eAAe,MAC5Cb,EAAIa,eAAe,MAC1BH,EAET,GAAyB,IAApB3E,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAExCQ,EAASV,EAAIc,cAAcX,GAAUphB,WAAW7B,QAAQ,IAAK,SACxD,CACL,MAAM6jB,EAAcf,EAAIc,gBAAgB/hB,WAClCiiB,EAAwBniB,KAAKkE,MACjCge,EAAY1G,MAAM0G,EAAYvnB,QAAQ,KAAO,GAAK,GAEpDknB,GAAUV,EAAMQ,OAAO,KAA6B,EAAxBQ,IAA8BC,QACxDd,GAGuB,IAApBpE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAEpCF,GAAO,KAAQA,EAAMQ,OAAO,KAAqB,EAAhBxE,EAAOzlB,QAC1CmqB,GAAU,IAAI1E,EAAOgF,KAChBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAE3CF,GAAO,KAAQA,EAAMQ,OAAO,KAAyB,EAApBvE,EAAW1lB,QAC9CmqB,GAAU,IAAIzE,EAAW+E,KACpBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,EAG7CF,GAAO,KACPA,EAAMQ,OAAO,KAAoC,EAA/BtE,EAAsB3lB,QAExCmqB,GAAU,IAAIxE,EAAsB8E,KAC/BN,EAASX,GAA4BC,EAAK,EAAG,IACtB,IAApBjE,EAAUuE,QAAgBJ,GAAsB,IAAXA,KAE/CQ,GAAU,IAA4B,EAAxBM,GAUlB,MAPe,KAAXN,IACFvpB,QAAQ+pB,IACN,2DAA2DlB,KAE7DU,EAASnD,EAAgBgD,SAASP,EAAKC,IAErClE,EAAU6E,iBAAgBF,EAASA,EAAOxjB,QAAQ,IAAK,MACpDwjB,EAGT,OADAvpB,QAAQ+pB,IAAI,2DAA2DlB,KAChEzC,EAAgBgD,SAASP,EAAKC,GASvC,SAASkB,GAAWC,EAAMC,GACxB,IAAIC,EAAgBF,EACpB,GAAIA,IAASf,IAAU,OAAOe,EAC9BE,EAAgBziB,KAAKoL,KAAKmX,GAC1B,MAAM3gB,EAAI5B,KAAKkE,MAAMue,EAAgB,UAC/B5F,EAAI7c,KAAKkE,MAAOue,EAAgB,SAAY,OAC5C3e,EAAI9D,KAAKkE,MAAOue,EAAgB,MAAS,MACzC7qB,EAAIoI,KAAKkE,MAAOue,EAAgB,KAAQ,IACxCze,EAAIhE,KAAKkE,MAAMue,EAAgB,IACrC,IAAI5pB,EAAM,GACV,GAAIqkB,EAAUwF,WAAY,CACxB,GAAID,EAAgB,SAAY,MAAO,iBACvC5pB,IAAW+I,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACP/I,IAAWgkB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPhkB,IAAWiL,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPjL,IAAWjB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPiB,IAAQmL,EAAI,GAAK,IAAM,IAAMA,MACxB,CACL,GAAIye,EAAgB,OAClB,OAAOD,EAAa,kBAAoB,SAC1C3pB,GACE+I,EAAI,EACGA,GAAK4gB,EAAoB,IAAN5gB,EAAU,QAAU,SAAY,KAAtD,KACA,GACN/I,GACEgkB,EAAI,EAAOA,GAAK2F,EAAoB,IAAN3F,EAAU,OAAS,QAAW,KAApD,KAA+D,IACrEhkB,EAAInB,OAAS,GAAKoM,EAAI,KACxBjL,GAAUiL,GAAK0e,EAAoB,IAAN1e,EAAU,QAAU,SAAY,KAAtD,OACLjL,EAAInB,OAAS,GAAKE,EAAI,KACxBiB,GAAUjB,GAAK4qB,EAAoB,IAAN5qB,EAAU,UAAY,WAAc,KAA1D,MACTiB,GAAOmL,GAAKwe,EAAoB,IAANxe,EAAU,UAAY,WAAc,KAEhE,OAAOnL,EAQT,SAAS8pB,GAAaJ,GACpB,IAAIld,EACAud,EAWJ,OAVIL,GAAQ,GACgBK,EAAtB1F,EAAUwF,WAAmB,iBACrB,QACZrd,EAAQyZ,IAER8D,EAAON,GAAWC,GACFld,EAAZkd,EAAO,IAAatD,EACfsD,EAAO,GAAYvD,EACfD,GAER,CAAE6D,OAAMvd,SAMjB,IA0EIwd,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GAEAC,GAEAC,GAuBAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAGAC,GACAC,GAzIAC,GAAkB,EAClBC,GAAmB,EACnBC,GAAuB,EACvBC,GAAyB,EACzBC,GAAa,EACbC,GAAmB,EACnBC,GAAwB,EACxBC,GAAmB,EACnBC,GAAyB,EACzBC,GAA8B,EAC9BC,GAAe,EACfC,GAAqB,EACrBC,GAAe,EACfC,GAAuB,EACvBC,GAA6B,EAC7BC,GAAoC,EACpCC,GAAyB,EACzBC,GAAwB,EAExBC,GAAmB,EAEnBC,GAAe,EACfC,GAAe,EACfC,GAAkB,EAElBC,GAAgB,GAChBC,GAAiB,GACjBC,GAAkB,GAElBC,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAE5BC,GAA2B,EAC3BC,GAAyB,EAEzBC,GAAgB,GAEhBC,GAAqB,GAErBC,GAAuB,GACvBC,GAA+B,GAC/BC,GAA8B,GAE9BC,GAAqB,EACrBC,GAAyB,EACzBC,GAAsB,GACtBC,GAA0B,EAC1BC,GAA8B,EAC9BC,GAA2B,GAC3BC,GAA2B,EAC3BC,GAA+B,EAC/BC,GAA4B,GAC5BC,GAAgC,EAChCC,GAAoC,EACpCC,GAAiC,GAEjCC,GAAyB,EACzBC,GAAwB,EAExBC,GAA4B,GAC5BC,GAAwB,GAExBC,GAA4B,EAE5BC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAkB,GAElBC,GAA0B,GAE1BC,GAAqB,EA4BrBC,GAAY,CACdC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVprB,EAAG,CAAC,EAAG,EAAG,GACVqrB,GAAI,CAAC,EAAG,EAAG,IAOTC,GAAa,GACbC,GAAc,GACdC,GAAkB,GAclBC,GAAiBC,KAAKC,UACtBC,GAAcF,KAAKC,UAUvB,SAASE,GAAYC,GACnB,IAAInvB,EAAI,EAWR,OATE+uB,KAAKK,YAAYvF,IAAevoB,OAAS6tB,GACzCJ,KAAKK,YAAYtF,IAAgBxoB,OAAS6tB,IAE1CnvB,EAAI,GAEqC,oBAAzC+uB,KAAKK,YAAYvF,IAAevoB,MACU,oBAA1CytB,KAAKK,YAAYtF,IAAgBxoB,OAEjCtB,GAAK,IACAA,EAWT,SAASqvB,KACP,IAAIC,EAAW,IAEf,OADAA,GAAY,EAAIJ,GAAY,mBACrBI,EAST,SAASC,GAAOjuB,EAAMkuB,GACpB,YAA6B,IAAlBrF,GAAQ7oB,QACK,IAARkuB,EAAsB,EAAIA,EAEnCrF,GAAQ7oB,GASjB,SAASmuB,GAAON,GACd,MAAMO,EAAKd,GAAYO,GACvB,OACyB,IAAvBJ,KAAKY,eACQ,aAAZD,EAAGE,MAAmC,YAAZF,EAAGG,OAGzBH,EAAKA,EAAGI,OADN,EAYX,SAASC,GAAUZ,GACjB,GAAIJ,KAAKiB,OAAQ,MACoB7yB,IAA/BwxB,GAAWsB,OAAOC,WACpBvB,GAAWsB,OAAOC,SAAWnB,KAAKoB,QAAQF,OAAOC,UAEnD,MAAME,EAAMzB,GAAWsB,OAAOC,SAASG,KAAKlB,GAC5C,GAAIpF,KAAYqG,EAAIE,GAClB,OAAO,EAET,GAAItG,KAAYoG,EAAIE,GAClB,OAAO,EAET,GAAIrG,KAAYmG,EAAIE,GAClB,OAAO,EAGX,OAAO,EAgBT,SAASC,GAAuBC,EAAUC,GACxC,IAAIC,EAAgBD,EAapB,GAZIhB,GAAO,oBAAmBiB,GAAiB,KAC3CjB,GAAO,sBAAqBiB,GAAiB,KAC7CjB,GAAO,iBAAgBiB,GAAiB,KACxCjB,GAAO,qBAAoBiB,GAAiB,KAC5CjB,GAAO,kBAAiBiB,GAAiB,KAE7CA,GAAiB,EAAoC,IAAhCxB,GAAY,kBAC7BH,KAAK4B,QAAQ,wBAAuBD,GAAiB,KACrD3B,KAAK4B,QAAQ,mBAAkBD,GAAiB,KAChD3B,KAAK4B,QAAQ,mBAAkBD,GAAiB,MAChDF,EAASI,SAAWnB,GAAOe,EAASI,QAAQtvB,QAAOovB,GAAiB,KACxEA,GAAiBnB,GAAO,gBACpBZ,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAASf,GAAU,YACV,IAAXe,EAAcJ,GAAiB,IACf,IAAXI,EAAcJ,GAAiB,IACpB,IAAXI,IAAcJ,GAAiB,KAE1C,OAAOA,EAkBT,SAASK,GACPC,EACAC,EACA1kB,EACA2kB,EACAC,EACAC,GAIA,MAAMC,OAA4B,IAAVD,EAAwB,EAAIA,EACpD,IAAIE,EAAWH,EACXI,EAAiBhlB,EACjBilB,EAAO,GACK,IAAZL,IAAeG,EAAWC,GACzBJ,IAAQG,EAAWvC,KAAK0C,SAC7B,IAAK,IAAI10B,EAAI,EAAGA,EAAIu0B,EAAUv0B,IAAK,CACjC,IAAI0zB,EACFQ,EAAYlC,KAAK2C,eAAiBpsB,KAAK6D,IAAI,EAAGooB,EAAiBL,GACjET,EAAQY,EACJtC,KAAK4C,oBAAoBX,EAAOP,GAChCF,GAAuBS,EAAOP,GAClCA,EAAQnrB,KAAKoL,KAAK+f,GAClB,MAAMnB,EAAW+B,EACbL,EAAMY,oBACNvC,KACJoB,EAAQnrB,KAAKkE,MAAMinB,EAAQnB,GACvBiC,EAAiB,IACnBC,GAAQf,EACRc,GAAkB,GAGtB,OAAOC,EAoBT,SAASK,KACP,IAAIzvB,EAAS2sB,KAAK0C,QA0ClB,GAzCqB,IAAjB1C,KAAK+C,QACP1M,EAAsBhjB,EAEtBA,EAASgjB,EAEI,IAAXhjB,EAAcA,EAASwpB,GACP,KAAXxpB,EAAeA,EAASypB,GACb,MAAXzpB,IAAgBA,EAAS0pB,IAEb,IAAjBiD,KAAK+C,QACsB,IAAzBtP,EAAUuP,WACZxxB,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IAC3BoR,EAAE,eAAe4gB,KAAKoB,QAAQpzB,GAAGuzB,MAAMtrB,MAAM2F,MAC3C6X,EAAUoC,OAAOxiB,EAAOrF,GAAG4N,UAG/BpK,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCoR,EAAE,eAAe4gB,KAAKoB,QAAQpzB,GAAGuzB,MAAMtrB,MAAMitB,eAAe,aAGrC,IAAlBlD,KAAK+C,SACdvxB,OAAO6C,KAAKwoB,IAAeoG,SAASj1B,IAClC,MAAMulB,EAAIyM,KAAKoB,QAAQpzB,GACvBoR,EAAE,eAAemU,EAAEgO,MAAMtrB,MAAM2F,MAAQ,GASvCwD,EAAE,eAAemU,EAAEgO,MAAM/V,UAAYiM,GACnCuK,GAAazO,EAAGA,EAAE2O,UAAW3O,EAAE6O,OAAQ7O,EAAE4O,KAAMnC,KAAK0C,QAAS,OAQ9C,IAAjB1C,KAAK+C,SAAiBtP,EAAU0P,cAAe,CACjD,MAAMC,EAAM5xB,OAAO6C,KAAKhB,GAAQlB,KAAKkxB,IACnC,MAAM9P,EAAIlgB,EAAOgwB,GAGjB,OAFA9P,EAAEhhB,KAAO8wB,EACT9P,EAAEgO,GAAKvB,KAAKoB,QAAQiC,GAAG9B,GAChBhO,KAGT6P,EAAIE,MAAK,SAAUzsB,EAAGP,GACpB,OAAOuf,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,OAC9C,EACAia,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,KAGN,IAAK,IAAIpH,EAAI,EAAGA,EAAIkrB,EAAIn1B,OAAQiK,IAC9B8nB,KAAKoB,QAAQgC,EAAIlrB,GAAG3F,MAAM6M,EAAEnJ,MAAMstB,QAAU,GAAGrrB,EAAI,KAAKA,EAAI,QAEzD,CACL,MAAMkrB,EAAM5xB,OAAO6C,KAAKwoB,IAAe1qB,KAAKkxB,IAC1C,MAAM9P,EAAIsJ,GAAcwG,GAGxB,OAFA9P,EAAEhhB,KAAO8wB,EACT9P,EAAEgO,GAAKvB,KAAKoB,QAAQiC,GAAG9B,GAChBhO,KAET6P,EAAIE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE0qB,GAAKjrB,EAAEirB,KAC5B,IAAK,IAAIrpB,EAAI,EAAGA,EAAIkrB,EAAIn1B,OAAQiK,IAC9B8nB,KAAKoB,QAAQgC,EAAIlrB,GAAG3F,MAAM6M,EAAEnJ,MAAMstB,QAAU,GAAGrrB,EAAI,KAAKA,EAAI,KAiBlE,SAASsrB,KAEP,GAAI/P,EAAUgQ,WAAa,EAAG,CAC5B,IAAIC,EAAO,EACPC,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTC,EAAM,EACNC,EAAS,EACTC,EAAO,EAEXxyB,OAAO6C,KAAK2rB,KAAKiE,iBAAiBhB,SAASj1B,IACzC,MAAMk2B,EAAKlE,KAAKiE,gBAAgBj2B,GAChC,IAAIm2B,GAAa,EACjB,IAAK,IAAIC,EAAI,EAAGA,EAAIhlB,EAAE,UAAUpR,KAAKq2B,WAAWp2B,OAAQm2B,GAAK,EAC3D,IACsE,IAApEhlB,EAAE,UAAUpR,KAAKq2B,WAAWD,GAAG31B,UAAUyC,QAAQikB,GACjD,CACA/V,EAAE,UAAUpR,KAAKq2B,WAAWD,GAAG31B,UAC7B0mB,EAAekI,GAAc6G,EAAG3xB,MAAMqJ,MACxCuoB,GAAa,EACb,MAGJ,IAAKA,EAAY,CACf,MAAMG,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMkG,MAAQ,OAClBmoB,EAAIruB,MAAMmG,OAAS,OACnBkoB,EAAI71B,UAAY0mB,EAAekI,GAAc6G,EAAG3xB,MAAMqJ,MACtDwD,EAAE,UAAUpR,KAAK4b,YAAY0a,GAE3BjH,GAAc6G,EAAG3xB,MAAMqJ,QAAUwZ,EAAWsO,GAAQ,EAC/CrG,GAAc6G,EAAG3xB,MAAMqJ,QAAUyZ,EAAYsO,GAAS,EACtDtG,GAAc6G,EAAG3xB,MAAMqJ,QAAU0Z,EAAasO,GAAU,EACxDvG,GAAc6G,EAAG3xB,MAAMqJ,QAAU2Z,EAAasO,GAAU,EACxDxG,GAAc6G,EAAG3xB,MAAMqJ,QAAU4Z,EAAUsO,GAAO,EAClDzG,GAAc6G,EAAG3xB,MAAMqJ,QAAU6Z,EAAasO,GAAU,EACxD1G,GAAc6G,EAAG3xB,MAAMqJ,QAAU8Z,IAAWsO,GAAQ,MAG/D5kB,EAAE,oBAAoB/N,YAAcqyB,EACpCtkB,EAAE,qBAAqB/N,YAAcsyB,EACrCvkB,EAAE,sBAAsB/N,YAAcuyB,EACtCxkB,EAAE,sBAAsB/N,YAAcwyB,EACtCzkB,EAAE,mBAAmB/N,YAAcyyB,EACnC1kB,EAAE,sBAAsB/N,YAAc0yB,EACtC3kB,EAAE,oBAAoB/N,YAAc2yB,EAGtC,MAAMZ,EAAM,GAGZ,IAAK,IAAIlrB,EAAI,EAAGA,EAAI8nB,KAAKiE,gBAAgBh2B,OAAQiK,GAAK,EAAG,CACvD,MAAMqb,EAAI,GACVA,EAAEhhB,KAAOytB,KAAKiE,gBAAgB/rB,GAAG3F,KACjCghB,EAAEmO,MAAQ1B,KAAKiE,gBAAgB/rB,GAAGgqB,UAClC3O,EAAEjU,GAAK+d,GAAc9J,EAAEhhB,MAAM+M,GAC7B8jB,EAAItzB,KAAKyjB,GAGPE,EAAU8Q,aACZnB,EAAIE,MAAK,SAAUzsB,EAAGP,GACpB,OAAOuf,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,OAC9C,EACAia,EAAO3kB,QAAQ2F,EAAE+E,OAASia,EAAO3kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,KAGN8jB,EAAIE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE6qB,MAAQprB,EAAEorB,QAGjC,MAAM8C,EAAc,SAAUC,EAAMC,GAClC,OAAOD,EAAKE,WAAWx1B,GAAMA,EAAEoD,OAASmyB,EAAQnyB,QAElD,IAAK,IAAI2F,EAAI,EAAGA,EAAI8nB,KAAKiE,gBAAgBh2B,OAAQiK,GAAK,EACpDkH,EAAE,UAAUlH,KAAKjC,MAAM2uB,MACrBJ,EAAYpB,EAAKpD,KAAKiE,gBAAgB/rB,IAAM,EAYlD,SAAS2sB,KACP,OAAIpR,EAAUqR,QACL3K,GAEmB,IAAxB1G,EAAUsR,UACL/E,KAAKgF,WAAa,EAAIhF,KAAKiF,WAER,IAAxBxR,EAAUsR,UAEV/E,KAAKgF,WACJ7H,IAA4B,EAA6B,IAAzBC,KAIX,IAAxB3J,EAAUsR,WACwC,IAAlD/E,KAAKkF,UAAUhI,GAAsB,IAAI7uB,KAGvC2xB,KAAKgF,WACwB,EAA3B7H,GAAgCC,IAC/B,EAA6B,IAAzBA,KAIT4C,KAAKgF,WACJ7H,GAA2BC,IACzB,EAA6B,IAAzBA,KAaX,SAAS+H,KACP,OAA4B,IAAxB1R,EAAUsR,UACL/H,GAEmB,IAAxBvJ,EAAUsR,UACL7H,GAAsB,GAExB,EAcT,SAASkI,GAAY7D,EAAIhvB,EAAM8yB,GAC7B,MAAMC,EAAWh5B,SAAS4D,cAAc,OACxCo1B,EAAS/D,GAAKA,EACd+D,EAASrvB,MAAMmG,OAAS,OACxBkpB,EAASrvB,MAAMsvB,OAAS,WACxBD,EAASrvB,MAAMgI,SAAW,WAE1B,MAAMqmB,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMkG,MAAQ,OAClBmoB,EAAIruB,MAAMmG,OAAS,OACnBkoB,EAAIruB,MAAMsvB,OAAS,OACnBjB,EAAIruB,MAAMgI,SAAW,WACrBqmB,EAAIruB,MAAMqC,KAAO,MACjBgsB,EAAIruB,MAAMsC,IAAM,MAChB+rB,EAAIruB,MAAMkI,MAAQ,MAClBmmB,EAAIruB,MAAMkW,OAAS,MAEnB,MAAM9d,EAAO/B,SAAS4D,cAAc,QACpC7B,EAAK4H,MAAMqV,QAAU,eACrBjd,EAAK4H,MAAMuW,UAAY,QACvBne,EAAK4H,MAAMuvB,SAAW,OACtBn3B,EAAK4H,MAAMkG,MAAQ,QACnB9N,EAAK4H,MAAMwvB,YAAc,MACzBp3B,EAAK4H,MAAMyvB,cAAgB,WAC3Br3B,EAAKgD,YAAckB,EACnB+xB,EAAI1a,YAAYvb,GAEhB,IAAK,IAAIL,EAAI,EAAGA,EAAIq3B,EAAKp3B,OAAQD,IAAK,CACpC,MAAM23B,EAAWr5B,SAAS4D,cAAc,QACxCy1B,EAASpE,GAAK8D,EAAKr3B,GAAGuzB,GACtBoE,EAAS1vB,MAAMqV,QAAU,eACzBqa,EAAS1vB,MAAMmG,OAAS,OACxBupB,EAAS1vB,MAAMyvB,cAAgB,WAC/BC,EAAS1vB,MAAMuW,UAAY,SACvB6Y,EAAKp3B,OAAS,IAAMD,IACtB23B,EAAS1vB,MAAM2vB,qBAAuB,OACtCD,EAAS1vB,MAAM4vB,wBAA0B,aAEd,IAAlBR,EAAKr3B,GAAG4N,QACjB+pB,EAASl3B,UAAY0mB,EAAekQ,EAAKr3B,GAAG4N,OAE9C0oB,EAAI1a,YAAY+b,GAGlB,MAAMG,EAAQx5B,SAAS4D,cAAc,QAQrC,OAPA41B,EAAMvE,GAAK,GAAGA,QACduE,EAAM7vB,MAAM8vB,WAAa,MACzBD,EAAM7vB,MAAMyvB,cAAgB,WAC5BpB,EAAI1a,YAAYkc,GAEhBR,EAAS1b,YAAY0a,GAEdgB,EAOT,SAASU,GAA2BC,GAClC,GAAsB,OAAlB7mB,EAAE,YAAsB,CAC1B,MAAM/Q,EAAO+Q,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACtD6B,EAAQ9mB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACvD/kB,EAAKF,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACpDvL,EAAO1Z,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAEtDr2B,EAAIi4B,EACJE,EAAS93B,EAAKub,YAAYtd,SAAS4D,cAAc,OACvDi2B,EAAOvc,YACLtd,SAASqgB,eACP,IAAuB,IAApB3e,EAAEkD,QAAQ,KAAclD,EAAEo4B,UAAU,EAAGp4B,EAAEkD,QAAQ,MAAQlD,QAInDm4B,EAAOvc,YAAYtd,SAAS4D,cAAc,SAClDzB,UAAYymB,aAEjBiR,EAAOvc,YAAYtd,SAASqgB,eAAe,MAC3CuZ,EAAMtc,YAAYtd,SAAS4D,cAAc,OACzCoP,EAAGsK,YAAYtd,SAAS4D,cAAc,OACtC4oB,EAAKlP,YAAYtd,SAAS4D,cAAc,QAkE5C,SAASm2B,KACP,GAAyB,IAArB5S,EAAU6S,QAAgBzJ,IAAkC,IAAjBmD,KAAK+C,QAAe,CACjE,IAAIwD,EAAQ,EACZ/0B,OAAO6C,KAAKwoB,IAAeoG,SAASj1B,IAClC,IAAIqF,EAAS2sB,KAAK0C,QACG,IAAjB1C,KAAK+C,QACP3M,EAAmB/iB,EAEnBA,EAAS+iB,EAEI,IAAX/iB,IAAcA,EAASwpB,IACZ,KAAXxpB,IAAeA,EAASypB,IACb,MAAXzpB,IAAgBA,EAAS0pB,IAC7BwJ,GAAS,EACTnnB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACAlC,WAAW,GAAGhzB,YAAc2uB,KAAKoB,QAAQpzB,GAAGo0B,OAC9ChjB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACAl1B,YAAcomB,GAA4BpkB,EAAOrF,GAAGk4B,MAAO,GAC7D9mB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACA93B,UAAYymB,EAAe7hB,EAAOrF,GAAG4N,MACvCwD,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACAl1B,YAAcomB,GAA4BpkB,EAAOrF,GAAGsR,GAAI,GAC1D,MAAMknB,EAAYtN,IACf8G,KAAKoB,QAAQpzB,GAAGy4B,WAAazG,KAAK0G,QAAUvB,OAC3CN,MAEJzlB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACA93B,UAAYymB,EAAesR,EAAU5qB,MAElB,UAAnB4qB,EAAUrN,MACV6G,KAAK0G,QAAU1G,KAAKoB,QAAQpzB,GAAGy4B,UAE/BrnB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACAl1B,YAAc,GAAGm1B,EAAUrN,oBAE7B/Z,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDkC,GACAl1B,YAAcm1B,EAAUrN,SAWlC,SAASwN,KACP3G,KAAK4G,WAAW5qB,OAAOG,MAAQ6jB,KAAK4G,WAAW5qB,OAAOmR,WAAWxU,YACjEqnB,KAAK4G,WAAW5qB,OAAOI,OACrB4jB,KAAK4G,WAAW5qB,OAAOmR,WAAWvU,aACpConB,KAAK6G,eAAe7qB,OAAOG,MACzB6jB,KAAK6G,eAAe7qB,OAAOmR,WAAWxU,YACxCqnB,KAAK6G,eAAe7qB,OAAOI,OACzB4jB,KAAK6G,eAAe7qB,OAAOmR,WAAWvU,aAY1C,SAASkuB,KAEgB,IAArBrT,EAAU6S,QACa,IAAvB7S,EAAUsT,UACgB,IAA1BtT,EAAUuT,aAEV5nB,EAAE,YAAYnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OACnDgD,EAAE,QAAQnJ,MAAMkW,OAAS,GACvB+L,OAAO9Y,EAAE,cAAcnJ,MAAMmG,OAAOxH,QAAQ,KAAM,KAAO,QAE7B,IAArB6e,EAAU6S,QACnBlnB,EAAE,YAAYnJ,MAAMkW,OAAS,MAC7B/M,EAAE,QAAQnJ,MAAMkW,OAAS,QACO,IAAvBsH,EAAUsT,UAA4C,IAA1BtT,EAAUuT,YAC/C5nB,EAAE,QAAQnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OAG/CgD,EAAE,QAAQnJ,MAAMkW,OAAS,MAGA,IAAvBsH,EAAUsT,UAA4C,IAA1BtT,EAAUuT,YACxC5nB,EAAE,eAAenJ,MAAMsC,IAAM6G,EAAE,cAAcnJ,MAAMmG,OAEnDgD,EAAE,eAAenJ,MAAMsC,IAAM,GAG/BouB,KAMF,SAASM,KACoB,IAAvBxT,EAAUsT,SAAgB3nB,EAAE,cAAcnJ,MAAMqV,QAAU,GACzDlM,EAAE,cAAcnJ,MAAMqV,QAAU,OACrCwb,KAoPF,SAASI,KACP3L,GAAkByE,KAAKmH,WACvB3L,GAAmBwE,KAAKoH,YAS1B,SAASC,GAAgBC,GACvB,MAAMpD,EAAKlE,KAAKuH,aAAaD,GACvBE,EAAM,GAEZ,OADAA,EAAIj1B,KAAO2xB,EAAG3xB,KACPi1B,EAUT,SAASC,GAAoBvD,GAC3B,IAAIwD,EAAO,EAoBX,GAnBAl2B,OAAO6C,KAAK6vB,EAAGyD,gBAAgB1E,SAASj1B,KAEnCgyB,KAAK4H,MAAM1D,EAAGyD,eAAe35B,GAAG8yB,MAAM+G,SACvCnH,GAAOwD,EAAGyD,eAAe35B,GAAGuE,QAE5Bm1B,GAAQ,MAEZl2B,OAAO6C,KAAK6vB,EAAG4D,WAAW7E,SAASj1B,IACjC,GAAI0yB,GAAOwD,EAAG4D,UAAU95B,GAAGuE,MAAO,CAChC,MAAMw1B,EAAM7D,EAAG4D,UAAU95B,GACrB+5B,EAAIC,aAAaz1B,OAAS2xB,EAAG3xB,KAC/Bm1B,GAAQ,EAAI,IAAOK,EAAIE,aAAa7F,OAC7B2F,EAAIE,aAAa11B,OAAS2xB,EAAG3xB,OACpCm1B,GAAQ,EAAI,KAAQK,EAAIC,aAAa5F,YAGvC8B,EAAGrC,SAAWnB,GAAOwD,EAAGrC,QAAQtvB,QAAOm1B,GAAQ,MAC/CxD,EAAGgE,SAAWxH,GAAOwD,EAAGgE,QAAQ31B,QAClCm1B,GAAQ,EAAgC,IAA5B9H,GAAWuI,QAAQ/F,QAAiB,GAAK8B,EAAG3C,GAAK,KACnB,iBAAjC2C,EAAGyD,eAAeS,YACR,IAAflE,EAAGmE,SAAiB3H,GAAOwD,EAAGyD,eAAeS,WAAW71B,MAC1D,OAAQytB,KAAKsI,YACX,QACEZ,GAAQ,EACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KAKhB,OAAOA,EAiBT,SAASa,GAAoBtC,GAC3B,MAAM/B,EAAKlE,KAAKoB,QAAQ6E,GAClBuB,EAAM,GA2FZ,MA1FgB,WAAZtD,EAAG3xB,KACLi1B,EAAIgB,IAAM,SAAU7H,GAClB,IAAIxrB,EAAM,EACNurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,qBAAoBvrB,GAAO,GAClCurB,GAAO,qBAAoBvrB,GAAO,IAClCurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,uBAAsBvrB,GAAO,IACpCurB,GAAO,uBAAsBvrB,GAAO,IACxC,IAAIuyB,EAAO,EACPhQ,EAAM,EAQV,OAPAlmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IACJ,WAAvB4xB,GAAW5xB,GAAGuE,OAAmBmlB,GAAOkI,GAAW5xB,GAAGo0B,WAE5DjtB,GAAOuiB,EACPgQ,GAAQD,GAAoB9G,GAC5B+G,GAAQ1H,KAAKyI,SAAS,UACtBf,GAAQlH,GAAO,aAEbR,KAAK0I,WACH,GACAhI,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTvrB,GACEuyB,GAGa,YAAZxD,EAAG3xB,KACZi1B,EAAIgB,IAAM,SAAU7H,GAClB,IAAI+G,EAAO,EAYX,GAXAl2B,OAAO6C,KAAK2rB,KAAK2I,kBAAkB1F,SAASj1B,IACtC0yB,GAAOV,KAAK2I,iBAAiB36B,MAAK05B,GAAQ,MAE5ChH,GAAO,oCAAmCgH,GAAQ,GAClDhH,GAAO,yBAAwBgH,GAAQ,GACvChH,GAAO,kBAAiBgH,GAAQ,GAEhChH,GAAO,wBAAuBgH,GAAQ,MAE1CA,GAAQlH,GAAO,cAEXE,GAAO,cACT,IAAK,IAAI1yB,EAAI,EAAGA,EAAIgyB,KAAK4I,eAAeC,OAAO56B,OAAQD,IACjD0yB,GAAOV,KAAK4I,eAAeC,OAAO76B,GAAGuE,QAAOm1B,GAAQ,MAI5DA,GAAQD,GAAoB9G,GAE5B,IAAIxrB,EAAM,EACNurB,GAAO,cAAavrB,GAAmC,IAA5ByqB,GAAWuI,QAAQ/F,QAC9C1B,GAAO,yBACTvrB,GAAmC,IAA5ByqB,GAAWuI,QAAQ/F,QACxB1B,GAAO,gBAAevrB,GAAkC,IAA3ByqB,GAAWkJ,OAAO1G,QAEnD,IAAI1K,EAAM,EASV,OARAlmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IACJ,YAAvB4xB,GAAW5xB,GAAGuE,OAAoBmlB,GAAOkI,GAAW5xB,GAAGo0B,WAG7DsF,GAAQ,EAAqC,IAAjCvH,GAAY,mBAA4BzI,EAEpDgQ,GAAQ1H,KAAKyI,SAASvE,EAAG3xB,OAEjB2xB,EAAG6E,QAAU5zB,GAAOuyB,GAG9BF,EAAIgB,IAAM,SAAU7H,GAClB,IAAI+G,EAAO,EAGX,OAFAA,GAAQD,GAAoB9G,GAC5B+G,GAAQ1H,KAAKyI,SAAS9H,EAAGpuB,MAClBouB,EAAGqI,QAAUtB,GAKxBF,EAAIuB,QAAU7E,EAAG6E,QACjBvB,EAAIj1B,KAAO2xB,EAAG3xB,KACdi1B,EAAIG,eAAiBzD,EAAGyD,eACxBH,EAAIM,UAAY5D,EAAG4D,UACnBN,EAAI3F,QAAUqC,EAAGrC,QACjB2F,EAAIU,QAAUhE,EAAGgE,QACjBV,EAAIwB,QAAU9E,EAAG6E,QACjBvB,EAAIjG,GAAK2C,EAAG3C,GACZiG,EAAIa,QAAUnE,EAAGmE,QACVb,EAaT,SAASyB,GAAYC,GACnB,MAAMhF,EAAKlE,KAAKmJ,SAASD,GACnB1B,EAAM,GA4BZ,OA1BAA,EAAI4B,MAAQlF,EAAGkF,MACU,mBAAd5B,EAAI4B,QACG,0BAAZlF,EAAG3xB,KACLi1B,EAAI4B,MAAQ,WACV,IAAIn4B,EAAI,EAIR,OAHAO,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC3B4xB,GAAW5xB,GAAGq7B,OAAS,KAAIp4B,GAAK,MAE/BA,GAGTu2B,EAAI4B,MAAQ,WACV,IAAIE,EAAM,EAEV,GADI5I,GAAO,cAAa4I,EAAM,GAC1BtJ,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,WACV,IAAXe,EAAcuH,GAAO,IACL,IAAXvH,EAAcuH,GAAO,IACV,IAAXvH,IAAcuH,GAAO,KAEhC,OAAOA,IAIb9B,EAAI3G,KAAOqD,EAAGrD,KACd2G,EAAIj1B,KAAO2xB,EAAG3xB,KACPi1B,EAiBT,SAAS+B,KAEP9O,GAAmBuF,KAAKwJ,cACxB9O,GAAasF,KAAKyJ,QAClB9O,GAAuBqF,KAAK0J,kBAC5B9O,GAAmBoF,KAAK2J,cACxB9O,GAAcmF,KAAK4J,SAGnBp4B,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,MAAMk2B,EAAKlE,KAAKoB,QAAQpzB,GACxB,IAAIw5B,EAAM5H,GAAW5xB,QACTI,IAARo5B,IAEF5H,GAAW5xB,GAAKu6B,GAAoBv6B,GACpCw5B,EAAM5H,GAAW5xB,GACjBg4B,GAA2Bh4B,IAE7Bw5B,EAAIpF,OAAS8B,EAAG9B,OAChBoF,EAAI6B,MAAQnF,EAAGmF,MACf7B,EAAIqC,aAAe3F,EAAG2F,aACtBrC,EAAItF,UAAYgC,EAAGhC,UACnBsF,EAAIrF,KAAO+B,EAAG/B,KACV+B,EAAGpC,iBACW,WAAZoC,EAAG3xB,OACLyoB,GAAUkJ,EAAG/C,SAAS2I,KAAK,GAC3B7O,GAAUiJ,EAAG/C,SAAS2I,KAAK,GAC3B5O,GAAUgJ,EAAG/C,SAAS2I,KAAK,IAE7BtC,EAAI1F,eAAiBoC,EAAGpC,eACxB0F,EAAIrG,SAAW+C,EAAG/C,UAEpBvB,GAAW5xB,GAAKw5B,KAIlBh2B,OAAO6C,KAAK2rB,KAAKmJ,UAAUlG,SAASj1B,IAClC,MAAMk2B,EAAKlE,KAAKmJ,SAASn7B,GACzB,IAAIw5B,EAAM3H,GAAY7xB,QACVI,IAARo5B,IACF3H,GAAY7xB,GAAKi7B,GAAYj7B,GAC7Bw5B,EAAM3H,GAAY7xB,IAEpBw5B,EAAIzG,OAASmD,EAAGnD,OAChBlB,GAAY7xB,GAAKw5B,KAInBh2B,OAAO6C,KAAK2rB,KAAKuH,cAActE,SAASj1B,IACtC,MAAMk2B,EAAKlE,KAAKuH,aAAav5B,GAC7B,IAAIw5B,EAAM1H,GAAgB9xB,QACdI,IAARo5B,IACF1H,GAAgB9xB,GAAKq5B,GAAgBr5B,GACrCw5B,EAAM1H,GAAgB9xB,IAExBw5B,EAAIuC,IAAM7F,EAAG6F,IACbjK,GAAgB9xB,GAAKw5B,KAIvBN,KACApM,GAAgBS,GAChBR,GAAiBS,GA8BnB,SAASwO,GAAoB7Q,GAC3B,MAAMmL,EAAMh4B,SAAS4D,cAAc,OAKnC,OAJAo0B,EAAIruB,MAAMg0B,WAAa,OACvB3F,EAAI/C,GAAK,GAAGpI,SACZmL,EAAI71B,UAAYymB,aAChBoP,EAAIjzB,YAAc8nB,EACXmL,EAmHT,SAAS4F,GAAgCC,GACvCA,EAAQvgB,YAAYogB,GAAoB,iBACxC,MAAMI,EAAS99B,SAAS4D,cAAc,OACtCk6B,EAAOn0B,MAAMo0B,aAAe,MAC5BD,EAAOn0B,MAAM2F,MAAQ,QACrBwuB,EAAO7I,GAAK,kBACZ4I,EAAQvgB,YAAYwgB,GAEpBD,EAAQvgB,YAAYogB,GAAoB,4BACxCG,EAAQG,UAAUr0B,MAAMqV,QAAU,OAClC,MAAMif,EAAQj+B,SAAS4D,cAAc,OACrCq6B,EAAMt0B,MAAMo0B,aAAe,MAC3BE,EAAMt0B,MAAM2F,MAAQ,QACpB2uB,EAAMt0B,MAAMqV,QAAU,OACtBif,EAAMhJ,GAAK,0BACX4I,EAAQvgB,YAAY2gB,GAEpBJ,EAAQvgB,YAAYogB,GAAoB,mBACxC,MAAM1qB,EAAKhT,SAAS4D,cAAc,OAClCoP,EAAGrJ,MAAMo0B,aAAe,MACxB/qB,EAAGiiB,GAAK,cACR4I,EAAQvgB,YAAYtK,GAEpB6qB,EAAQvgB,YAAYogB,GAAoB,cACxC,MAAMlR,EAAOxsB,SAAS4D,cAAc,OAIpC,GAHA4oB,EAAKyI,GAAK,gBACV4I,EAAQvgB,YAAYkP,GAEA,MAAhB5B,EAAqB,CACvBiT,EAAQvgB,YACNogB,GAAoB,0CAEtBG,EAAQG,UAAU/I,GAAK,4BACvB,MAAMiJ,EAAal+B,SAAS4D,cAAc,OAC1Cs6B,EAAWjJ,GAAK,sBAChB4I,EAAQvgB,YAAY4gB,IA0JxB,SAASC,GACPC,EACAC,EACAC,GAEA,IAAIC,EAAQH,EACRnE,EAAQ,EACZ,KAAOsE,EAAQD,GACbC,GAAqE,KAA5Dt0B,KAAK6D,IAAI,MAAQywB,EAAQt0B,KAAK6D,IAAIuwB,EAAU,OAAS,IAC9DpE,GAAS,EAEX,OAAOA,EAAQvG,KAAK8K,IAqXtB,SAASC,KACP,IAAIrD,EAAO,EAKX,OAJAl2B,OAAO6C,KAAK2rB,KAAKgL,OAAO/H,SAASj1B,SACM,IAA1BgyB,KAAKgL,MAAMh9B,GAAGi9B,UACvBvD,GAAQ1H,KAAKgL,MAAMh9B,GAAGi9B,YAEnBvD,EAWT,SAASwD,KACiC,OAApC9rB,EAAE,gCAC0B,IAA1BqU,EAAU0X,aACZ/rB,EAAE,8BAA8BnJ,MAAMsC,IAAM,OAC5C6G,EAAE,8BAA8BnJ,MAAMsvB,OAAS,WAC/CnmB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAEhDrB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,OAC9CiB,EAAE,8BAA8BnJ,MAAMsvB,OAAS,MAC/CnmB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAyLtD,SAAS2qB,KAEP,GADA7B,KACyC,SAArCnqB,EAAE,iBAAiBnJ,MAAMqV,SAAsBlM,EAAE,iBAAkB,CACrEA,EAAE,iBAAiBoM,UAAY,GAC/B,MAAM6f,EA75BV,WACEjsB,EAAE,WAAWvO,WAAWoF,MAAMq1B,cAAgB,MAC9C,MAAMD,EAAa/+B,SAAS4D,cAAc,OAM1C,OALAm7B,EAAWp1B,MAAM0U,OAAS,YAC1B0gB,EAAWp1B,MAAMwK,QAAU,MAC3B4qB,EAAWp1B,MAAMsvB,OAAS,WAC1B8F,EAAW9J,GAAK,kBAChB8J,EAAW58B,UAAYymB,aAChBmW,EAq5BcE,GACnBnsB,EAAE,iBAAiBwK,YAAYyhB,GAEX,MAAhBnU,EAluBR,WACE,GAAsC,IAAlCzD,EAAU+X,qBAA8C,IAAjBxL,KAAK+C,QAAe,CAI7D,IAAI1vB,EAaJ,GAfA62B,GADmB9qB,EAAE,oBAIA,IAAjB4gB,KAAK+C,QACPzM,EAA4BjjB,EAE5BA,EAASijB,EAEU,IAAjB0J,KAAK0C,QAAervB,EAASwpB,GACP,KAAjBmD,KAAK0C,QAAgBrvB,EAASypB,GACb,MAAjBkD,KAAK0C,UAAiBrvB,EAAS0pB,IAExC/F,EAAegJ,KAAKoB,QAAQjK,IAAasP,UACzCxP,EAAqB5jB,EAAO8jB,IAAa+O,MAEH,IAAlCzS,EAAU+X,qBAA8C,IAAjBxL,KAAK+C,QAAe,CAC7D3jB,EAAE,mBAAmB/N,YAAcomB,GAA4BR,EAAoB,GACnF,MAAMwU,EAAWl1B,KAAKC,MACnBygB,EAAqB+I,KAAKgF,UAAa,KAEtC9M,OAAOC,SAASsT,IAA0B,IAAbA,EAC/BrsB,EAAE,mBAAmB/N,aAAe,KAAKo6B,EAAW,kBAEpDrsB,EAAE,mBAAmB/N,aAAe,OAClCoiB,EAAU6E,eAAiB,IAAM,oBAGrClZ,EAAE,mBAAmB3Q,UAAYymB,EAAe7hB,EAAO8jB,IAAavb,MACpEwD,EAAE,eAAe/N,YAAcomB,GAA4BpkB,EAAO8jB,IAAa7X,GAAI,GACnFF,EAAE,eAAe3Q,UAAYymB,EAAe7hB,EAAO8jB,IAAavb,MAChE,MAAM4qB,EAAYtN,IACflC,GAAgBgJ,KAAK0G,QAAUvB,OAAyBN,MAE3DzlB,EAAE,iBAAiB/N,YAAcm1B,EAAUrN,KAEtB,UAAnBqN,EAAUrN,MACV6G,KAAK0G,QAAUrzB,EAAO8jB,IAAauK,MAEnCtiB,EAAE,iBAAiB/N,YAAc,GAAGm1B,EAAUrN,oBACzC/Z,EAAE,iBAAiB/N,YAAcm1B,EAAUrN,KAClD/Z,EAAE,iBAAiB3Q,UAAYymB,EAAesR,EAAU5qB,MAI1DwD,EAAE,6BAA6BnJ,MAAMqV,QAAU,OAC/ClM,EAAE,iBAAiBnJ,MAAMo0B,aAAe,MACxC,IAAK,MAAMr8B,KAAKwD,OAAO6C,KAAK2rB,KAAKoB,QAAQjK,IAAauU,mBACpD,IACG1L,KAAK2L,UACJ3L,KAAKoB,QAAQjK,IAAauU,kBAAkB19B,GAAG49B,OAAOr5B,MAExD,CACA,MAAMs5B,EACJ7L,KAAKoB,QAAQjK,IAAauU,kBAAkB19B,GAC9CoR,EAAE,iBAAiBnJ,MAAMo0B,aAAe,MACxCjrB,EAAE,6BAA6BnJ,MAAMqV,QAAU,GAC/ClM,EAAE,uBAAuB3Q,UAAY,kBAAkB0oB,KACvD/X,EAAE,uBAAuB/N,YAAcomB,GACrCoU,EAAqBvC,IAAM1J,GAAWzI,IAAa0S,aACnD,IAEFzqB,EAAE,uBAAuBnJ,MAAM2F,MAAQ,QACvC,YAGCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA+pBtCwgB,GACyB,MAAhB5U,EAtTf,WAYE,GAVAgT,GADmB9qB,EAAE,oBAGrB6X,EACEoG,GAAc2C,KAAKiE,gBAAgB9M,IAAa5kB,MAAM2zB,MACxDlP,EAAegJ,KAAKmJ,SAClBnJ,KAAKiE,gBAAgB9M,IAAa5kB,MAClCw5B,WACF3U,GACEiG,GAAc2C,KAAKiE,gBAAgB9M,IAAa5kB,MAAMy5B,WAElB,IAAlCvY,EAAU+X,oBAA2B,CACvCpsB,EAAE,mBAAmB/N,YAAcomB,GAA4BR,EAAoB,GACnF,MAAMwU,EAAWl1B,KAAKC,MAAOygB,EAAqB+I,KAAKgF,UAAa,KAG7B,MAArC5lB,EAAE,mBAAmB/N,aACJ,MAAhB6lB,GAAuC,MAAhBA,GAOpBgB,OAAOC,SAASsT,IAA0B,IAAbA,EAC/BrsB,EAAE,mBAAmB/N,aAAe,KAAKo6B,EAAW,kBAEpDrsB,EAAE,mBAAmB/N,aAAe,OAClCoiB,EAAU6E,eAAiB,IAAM,oBAGrClZ,EAAE,mBAAmB3Q,UACnBymB,EACAmI,GAAc2C,KAAKiE,gBAAgB9M,IAAa5kB,MAAMqJ,MAEpDwb,KACFhY,EAAE,2BAA2B/N,YAAcomB,GAA4BL,IACvEhY,EAAE,2BAA2BnJ,MAAMqV,QAAU,QAC7ClM,EAAE,2BAA2B6sB,gBAAgBh2B,MAAMqV,QAAU,SAGpC,IAAvB2L,GAA4BG,IAC9BhY,EAAE,eAAe/N,YAAc,GAAGomB,GAChCT,EAAeI,aAEjBhY,EAAE,eAAenJ,MAAM2F,MAAQ,UAE/BwD,EAAE,eAAe/N,YAAcomB,GAC7B4F,GAAc2C,KAAKiE,gBAAgB9M,IAAa5kB,MAAM+M,GACtD,GAEFF,EAAE,eAAe3Q,UACfymB,EACAmI,GAAc2C,KAAKiE,gBAAgB9M,IAAa5kB,MAAMqJ,SAlC1DwD,EAAE,qBAAqBnJ,MAAMqV,QAAU,OACvClM,EAAE,mBAAmBnJ,MAAMqV,QAAU,OACrClM,EAAE,uBAAuBnJ,MAAMqV,QAAU,OACzClM,EAAE,eAAenJ,MAAMqV,QAAU,QAkCnC,MAAMkb,EAAYtN,IACflC,GAAgBgJ,KAAK0G,QAAUvB,OAAyBN,MAY3D,GAVAzlB,EAAE,iBAAiB/N,YAAcm1B,EAAUrN,KAEtB,UAAnBqN,EAAUrN,MACV6G,KAAK0G,QAAU1G,KAAKiE,gBAAgB9M,IAAa4U,WAEjD3sB,EAAE,iBAAiB/N,YAAc,GAAGm1B,EAAUrN,oBACzC/Z,EAAE,iBAAiB/N,YAAcm1B,EAAUrN,KAClD/Z,EAAE,iBAAiB3Q,UAAYymB,EAAesR,EAAU5qB,MAGT,kBAA3CokB,KAAKiE,gBAAgB9M,IAAa5kB,KAA0B,CAC9D6M,EAAE,mBAAmBkrB,UAAUr0B,MAAMo0B,aAAe,MACpDjrB,EAAE,mBAAmBwK,YACnBogB,GAAoB,yCAEtB,MAAMkC,EAAY5/B,SAAS4D,cAAc,OACzCg8B,EAAUj2B,MAAM2F,MAAQ,QACxBswB,EAAU76B,YAAc,GAAGomB,GAA2C,IAAfuI,KAAK0G,cAAqBjP,GAC/EmF,MAEFxd,EAAE,mBAAmBwK,YAAYsiB,SAE9B9sB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAqOtC6gB,GACyB,MAAhBjV,EAnVf,WACE,GAA8B,IAA1BzD,EAAU2Y,YAAmB,CAC/B,MAAMf,EAAajsB,EAAE,mBAErBisB,EAAWzhB,YAAYogB,GAAoB,uBAE3C,MAAMqC,EAAW//B,SAAS4D,cAAc,OACxCm8B,EAAS9K,GAAK,gBACd8J,EAAWzhB,YAAYyiB,GACvB,MAAMC,EApCK,KADOj+B,EAqCa2xB,KAAKuM,iBAnC7B,CAAEpT,KAAM,SAAUvd,MAAO8Z,GAErB,IAATrnB,EACK,CAAE8qB,KAAM,aAAcvd,MAAOyZ,GAEzB,IAAThnB,EACK,CAAE8qB,KAAM,SAAUvd,MAAO0Z,GAErB,IAATjnB,EACK,CAAE8qB,KAAM,QAASvd,MAAO2Z,GAEpB,IAATlnB,EACK,CAAE8qB,KAAM,cAAevd,MAAO6Z,GAEhC,CAAE0D,KAAM,qBAAsBvd,MAAO4Z,GAsB1C6W,EAASh7B,YAAci7B,EAAUnT,KACjCkT,EAAS59B,UAAYymB,EAAeoX,EAAU1wB,WACzCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAxC5C,IAAsBjd,EAgXhBm+B,GACyB,MAAhBtV,EArkBf,WACE,MAAMiK,SAAEA,GAAanB,KAAKoB,QAAQ,gBAC5BqL,EAAYtL,EAASuL,aAAavL,EAASwL,WAAWxV,KAE5D,GAA8B,IAA1B1D,EAAUmZ,aAAqBH,GAAatL,EAAS0L,OAAQ,CAC/D,MAAMxB,EAAajsB,EAAE,mBAGrBisB,EAAWzhB,YAAYogB,GAAoB,cAC3C,MAAMlR,EAAOxsB,SAAS4D,cAAc,OACpC4oB,EAAKyI,GAAK,gBACV8J,EAAWzhB,YAAYkP,GACvB,MAAM0N,EAAYtN,GAChBuR,GAA4BtJ,EAAS0J,MAAO1J,EAAS0L,OAAQJ,IAM/D,GAJA3T,EAAKznB,YAAcm1B,EAAUrN,KAC7BL,EAAKrqB,UAAYymB,EAAesR,EAAU5qB,MAGtC6wB,GAAatL,EAAS0J,MAAO,CAC/BQ,EAAWzhB,YAAYogB,GAAoB,iBAC3C,MAAM8C,EAAUxgC,SAAS4D,cAAc,OACvC48B,EAAQvL,GAAK,mBACb8J,EAAWzhB,YAAYkjB,GACvB,MAAMC,EAAe7T,GACnBuR,GACEl0B,KAAK6D,IAAI,EAAG+mB,EAAS0J,MAAQ4B,GAC7BtL,EAAS0L,OACT1L,EAAS0J,QAGbiC,EAAQz7B,YAAc07B,EAAa5T,KACnC2T,EAAQr+B,UAAYymB,EAAe6X,EAAanxB,MAIlD,GAAoB,MAAhBub,GAAqB,CACvBkU,EAAWzhB,YACTogB,GAAoB,8BAEtB,MAAMgD,EAAU1gC,SAAS4D,cAAc,OACvC88B,EAAQzL,GAAK,IACb8J,EAAWzhB,YAAYojB,GACvB,MAAMC,EAAS3gC,SAAS4D,cAAc,QACtC+8B,EAAOh3B,MAAM2F,MAAQ,UACrBqxB,EAAO57B,YAAcomB,GACnBlhB,KAAK2D,IACqC,KAAvC8lB,KAAK0G,QAAUvB,MACa,GAA7B9I,GAAkC,IAEpC,GAEF2Q,EAAQpjB,YAAYqjB,GACpB,MAAMC,EAAY5gC,SAAS4D,cAAc,QACzCg9B,EAAU77B,YAAc,MACxB27B,EAAQpjB,YAAYsjB,GACpB,MAAMC,EAAO7gC,SAAS4D,cAAc,QACpCi9B,EAAKl3B,MAAM2F,MAAQ,MACnBuxB,EAAK97B,YAAcomB,GAAyD,GAA7B4E,GAAkC,GAAI,GACrF2Q,EAAQpjB,YAAYujB,GAGtB/tB,EAAE,iBAAiBwK,YAAYyhB,QAC1BjsB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAugBtC8hB,GACyB,MAAhBlW,EAzpBf,WACE,MAAMiK,SAAEA,GAAanB,KAAKoB,QAAQiM,KAClC,GACE5Z,EAAU6Z,cAC2C,IAArDnM,EAASoM,KAAKpW,GAAY,IAAIA,GAAY,IAAI,GAC9C,CACA,MAAMqW,EACJrM,EAASoM,KAAKpW,GAAY,IAAIA,GAAY,IAAI,GAC9CgK,EAASsM,WAAWtM,EAASoM,KAAKpW,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpEuW,WACCC,EACJxM,EAASsM,WAAWtM,EAASoM,KAAKpW,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpE5kB,KACL6M,EAAE,mBAAmBwK,YACnBogB,GAAoB,+BAEtB,MAAMiD,EAAS3gC,SAAS4D,cAAc,OACtC+8B,EAAO1L,GAAK,uBACZniB,EAAE,mBAAmBwK,YAAYqjB,GACf,cAAdU,EACFvuB,EAAE,wBAAwB/N,YAAc,GACtCm8B,EACI/V,GAA4BlhB,KAAK2D,IAAmB,IAAf8lB,KAAK0G,QAAiC,GAAjB1G,KAAKgF,UAAiB,KAChF,SACAvN,GAA6C,GAAjBuI,KAAKgF,UAAiB,MACjC,cAAd2I,GAA2C,oBAAdA,EACtCvuB,EAAE,wBAAwB/N,YAAc,GACtCm8B,EACI/V,GAA4BlhB,KAAK2D,IAAmB,IAAf8lB,KAAK0G,QAAiC,GAAjB1G,KAAKgF,UAAiB,IAChF,SACAvN,GAA6C,GAAjBuI,KAAKgF,UAAiB,KACjC,cAAd2I,EACTvuB,EAAE,wBAAwB/N,YAAc,GACtCm8B,EACI/V,GAA4BlhB,KAAK2D,IAAmB,IAAf8lB,KAAK0G,QAAiC,GAAjB1G,KAAKgF,UAAiB,KAChF,SACAvN,GAA6C,GAAjBuI,KAAKgF,UAAiB,MACjC,cAAd2I,EACTvuB,EAAE,wBAAwB/N,YAAc,GACtCm8B,EACI/V,GAA4BlhB,KAAK2D,IAAmB,IAAf8lB,KAAK0G,QAAiC,GAAjB1G,KAAKgF,UAAiB,MAChF,SACAvN,GAA6C,GAAjBuI,KAAKgF,UAAiB,OACnD5lB,EAAE,iBAAiBnJ,MAAMqV,QAAU,YACrClM,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA8mBtCsiB,GACyB,OAAhB1W,EA7ff,WACE,MAAMiK,SAAEA,GAAanB,KAAKoB,QAAQiM,KAClC,GAAI5Z,EAAU2Y,YAAa,CACzBhtB,EAAE,mBAAmBwK,YACnBogB,GAAoB,oCAEtB,IAAI6D,EAAY,EACZC,EAAS,EACT9N,KAAK3rB,KAAK,KAAO2rB,KAAK3rB,KAAK,MAAKy5B,EAAS,GAC7C,IAAK,IAAI31B,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAID,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAIipB,EAASoM,KAAKp1B,GAAGD,GAAG,IAAM,EAAG,CAC/B,MAAM61B,EAAO5M,EAASoM,KAAKp1B,GAAGD,GACxBgsB,EAAK/C,EAASsM,WAAWM,EAAK,GAAK,GACnCJ,EAAYzJ,EAAG3xB,KAErB,IAAIg0B,GAAQ,EACRuH,GAAU5J,EAAG8J,WAAUzH,GAAQ,GAC/BwH,EAAK,GAAK7J,EAAGwJ,aAAYnH,GAAQ,GACjCA,GAAuB,cAAdoH,EACXE,GAAat3B,KAAK2D,IACD,IAAf8lB,KAAK0G,QACY,GAAjB1G,KAAKgF,UAAiB,IAGvBuB,GAAuB,cAAdoH,GACI,oBAAdA,EAEAE,GAAat3B,KAAK2D,IAAmB,IAAf8lB,KAAK0G,QAAiC,GAAjB1G,KAAKgF,UAAiB,GACxDuB,GAAuB,cAAdoH,EAClBE,GAAat3B,KAAK2D,IACD,IAAf8lB,KAAK0G,QACY,GAAjB1G,KAAKgF,UAAiB,IAEfuB,GAAuB,cAAdoH,IAClBE,GAAat3B,KAAK2D,IACD,IAAf8lB,KAAK0G,QACY,GAAjB1G,KAAKgF,UAAiB,MAMhC5lB,EAAE,mBAAmBwK,YACnBtd,SAASqgB,eAAe8K,GAA4BoW,UAEjDzuB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAgdtC2iB,GACyB,OAAhB/W,EAnDf,WACE9X,EAAE,WAAWoM,UAAY,GACzBpM,EAAE,WAAWwK,YAAYogB,GAAoB,YAE7C,MAAMkE,EAAiB5hC,SAAS4D,cAAc,OAC9Cg+B,EAAe3M,GAAK,mBACA,WAAhBpK,GACF+W,EAAe78B,YAAc2rB,GACJ,eAAhB7F,KACT+W,EAAe78B,YAAc6rB,GAAsB,IAGrD9d,EAAE,WAAWwK,YAAYskB,GAwCrBC,IAEgB,QAAhBjX,GACiB,QAAhBA,IAA6C,IAApBC,GAAY,KAtc5C,WACE,GAAkC,IAA9B1D,EAAU2a,gBAAuB,CACnC,MAAM/C,EAAajsB,EAAE,mBACrB,IAAIivB,EACuBA,EAAP,QAAhBnX,EAA+BC,GAAY,GAClCA,GAGbkU,EAAWzhB,YAAYogB,GAAoB,0BAC3C,MAAMsE,EAAOhiC,SAAS4D,cAAc,OAEpC,GADAo+B,EAAK/M,GAAK,6BACkB,IAAxBtC,GAAUoP,GAAO,GAAU,CAC7BC,EAAKj9B,YAAcomB,GAA4BwH,GAAUoP,GAAO,IAChE,MAAM5C,EAAWl1B,KAAKC,MACnByoB,GAAUoP,GAAO,GAAKrO,KAAKgF,UAAa,KAEvC9M,OAAOC,SAASsT,IAA0B,IAAbA,EAC/B6C,EAAKj9B,aAAe,KAAKo6B,EAAW,kBAEpC6C,EAAKj9B,aAAe,OAClBoiB,EAAU6E,eAAiB,IAAM,yBAGhCgW,EAAKj9B,YAAc,mBAC1Bg6B,EAAWzhB,YAAY0kB,GAEvBjD,EAAWzhB,YAAYogB,GAAoB,0BAC3C,MAAMuE,EAAOjiC,SAAS4D,cAAc,OAEpC,GADAq+B,EAAKhN,GAAK,6BACkB,IAAxBtC,GAAUoP,GAAO,GAAU,CAC7BE,EAAKl9B,YAAcomB,GAA4BwH,GAAUoP,GAAO,IAChE,MAAM5C,EAAWl1B,KAAKC,MACnByoB,GAAUoP,GAAO,GAAKrO,KAAKgF,UAAa,KAEvC9M,OAAOC,SAASsT,IAA0B,IAAbA,EAC/B8C,EAAKl9B,aAAe,KAAKo6B,EAAW,kBAEpC8C,EAAKl9B,aAAe,OAClBoiB,EAAU6E,eAAiB,IAAM,yBAGhCiW,EAAKl9B,YAAc,mBAC1Bg6B,EAAWzhB,YAAY2kB,GAEvBlD,EAAWzhB,YAAYogB,GAAoB,0BAC3C,MAAMwE,EAAOliC,SAAS4D,cAAc,OAEpC,GADAs+B,EAAKjN,GAAK,6BACkB,IAAxBtC,GAAUoP,GAAO,GAAU,CAC7BG,EAAKn9B,YAAcomB,GAA4BwH,GAAUoP,GAAO,IAChE,MAAM5C,EAAWl1B,KAAKC,MACnByoB,GAAUoP,GAAO,GAAKrO,KAAKgF,UAAa,KAEvC9M,OAAOC,SAASsT,IAA0B,IAAbA,EAC/B+C,EAAKn9B,aAAe,KAAKo6B,EAAW,kBAEpC+C,EAAKn9B,aAAe,OAClBoiB,EAAU6E,eAAiB,IAAM,yBAGhCkW,EAAKn9B,YAAc,mBAC1Bg6B,EAAWzhB,YAAY4kB,GAEvBpvB,EAAE,iBAAiBwK,YAAYyhB,QAC1BjsB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAyYtCmjB,GA9LN,WACE,GAAoB,MAAhBvX,GAAuC,MAAhBA,EAAqB,CACgB,OAA1D5qB,SAASoiC,eAAe,gCAC1BtvB,EAAE,iBAAiBwK,YAztBzB,WACE,MAAM+kB,EAAcriC,SAAS4D,cAAc,OAC3Cy+B,EAAY14B,MAAMgI,SAAW,WAC7B0wB,EAAY14B,MAAMqV,QAAU,QAC5BqjB,EAAY14B,MAAMqC,KAAO,OACzBq2B,EAAY14B,MAAMkW,OAAS,OAC3BwiB,EAAYpN,GAAK,6BAEjB,MAAMqN,EAAS,SACbC,EACAjzB,EACAkzB,EACAC,EACAC,GAEA,MAAMjnB,EAAMzb,SAAS4D,cAAc,OACnC6X,EAAIwZ,GAAKsN,EACT9mB,EAAI9R,MAAMqV,QAAU,OACpBvD,EAAI9R,MAAMg5B,WAAa,wBACvBlnB,EAAItZ,UAnrDe,WAmrDcmN,EACjCmM,EAAI9R,MAAMwK,QAAU,MACpBsH,EAAI9R,MAAMqB,WAAa,8BACvB,MAAM43B,EAAW5iC,SAAS4D,cAAc,OACxC6X,EAAI6B,YAAYslB,GAChB,MAAMC,EAAY7iC,SAAS4D,cAAc,QACzCi/B,EAAU1gC,UAAYymB,EAAetZ,EACrCuzB,EAAUl5B,MAAMg0B,WAAa,OAC7BkF,EAAU99B,YAAcy9B,EACxBI,EAAStlB,YAAYulB,GACrBD,EAAStlB,YAAYtd,SAASqgB,eAAeoiB,IAC7C,MAAMK,EAAa9iC,SAAS4D,cAAc,OAC1C6X,EAAI6B,YAAYwlB,GAChB,MAAMC,EAAc/iC,SAAS4D,cAAc,QAI3C,OAHAm/B,EAAY9N,GAAKyN,EACjBI,EAAWxlB,YAAYtd,SAASqgB,eAAe,cAC/CyiB,EAAWxlB,YAAYylB,GAChBtnB,GA+DT,OA5DA4mB,EAAY/kB,YACVglB,EACE,yBACApZ,EACA,YACA,uFACA,+BAGJmZ,EAAY99B,WAAWoF,MAAMo0B,aAAe,MAC5CsE,EAAY/kB,YACVglB,EACE,+BACAtZ,EACA,YACA,gGACA,qCAGJqZ,EAAYrE,UAAUr0B,MAAMo0B,aAAe,MAC3CsE,EAAY/kB,YACVglB,EACE,2BACAnZ,EACA,YACA,oGACA,iCAGJkZ,EAAYrE,UAAUr0B,MAAMo0B,aAAe,MAC3CsE,EAAY/kB,YACVglB,EACE,iCACAnZ,EACA,YACA,6GACA,uCAGJkZ,EAAYrE,UAAUr0B,MAAMo0B,aAAe,MAC3CsE,EAAY/kB,YACVglB,EACE,2BACAnZ,EACA,YACA,qJACA,iCAGJkZ,EAAYrE,UAAUr0B,MAAMo0B,aAAe,MAC3CsE,EAAY/kB,YACVglB,EACE,wBACApZ,EACA,YACA,2EAA2E/B,EAAU6b,8BACrF,8BAIGX,EAsnB4BY,IAC/BrE,MAG4B,IAA1BzX,EAAU0X,YACZ/rB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,MAE9CiB,EAAE,8BAA8BnJ,MAAMsC,IAAM,GAC1C6G,EAAE,WAAWxG,iBAGjBwG,EAAE,8BAA8BnJ,MAAMkG,MACpCiD,EAAE,WAAWzG,YAAc,EADiB,KAI9C,MAAMypB,EAASpC,KAAK0G,QAAUvB,KAAuBnO,EAC/CwY,EAAkB/b,EAAUgc,YAAcxY,EAAqB,EACrE,IAAIyY,EAAa/T,GACjB,GAA8B,IAA1BlI,EAAUgc,YAAmB,CAC/B,IAAIE,EAAc1Y,EAClB0Y,GAAe5E,KACf2E,GAA6B,GAAdC,EAAmB,GAAM,IAc1C,GAXgC,IAA5Blc,EAAUmc,eACRxN,EAASsN,IAA+B,MAAhBxY,GAAwC,IAAjB8I,KAAK+C,UACtD3jB,EAAE,0BAA0BnJ,MAAMqV,QAAU,GAC5ClM,EAAE,8BAA8B/N,YAAc,GAAGomB,GAC/CiY,EAAatN,OACTvJ,IACH6W,EAAatN,IAAWyC,KAAW2K,QAGnCpwB,EAAE,0BAA0BnJ,MAAMqV,QAAU,OAEb,IAAlCmI,EAAUoc,oBAA2B,CACvC,MAAMC,EAAgC,EAAbJ,EAEvBtN,EAAS0N,IACQ,MAAhB5Y,GAAwC,IAAjB8I,KAAK+C,UAE7B3jB,EAAE,gCAAgCnJ,MAAMqV,QAAU,GAClDlM,EAAE,oCAAoC/N,YAAc,GAAGomB,GACrDqY,EAAmB1N,OACfvJ,IACHiX,EAAmB1N,IAAWyC,KAAW2K,QAEvCpwB,EAAE,gCAAgCnJ,MAAMqV,QAAU,YACpDlM,EAAE,gCAAgCnJ,MAAMqV,QAAU,OAEzD,GAAkC,IAA9BmI,EAAUsc,gBAAuB,CACnC,MAAMC,EAA4B,EAAbN,EAEnBtN,EAAS4N,IACQ,MAAhB9Y,GAAwC,IAAjB8I,KAAK+C,UAE7B3jB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGomB,GACjDuY,EAAe5N,OACXvJ,IACHmX,EAAe5N,IAAWyC,KAAW2K,QAEnCpwB,EAAE,4BAA4BnJ,MAAMqV,QAAU,YAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAErD,GAAwC,IAApCmI,EAAUwc,sBAA6B,CACzC,MAAMC,EAAkC,EAAbR,EAAiB,EAE1CtN,EAAS8N,IACQ,MAAhBhZ,GAAwC,IAAjB8I,KAAK+C,UAE7B3jB,EAAE,kCAAkCnJ,MAAMqV,QAAU,GACpDlM,EAAE,sCAAsC/N,YAAc,GAAGomB,GACvDyY,EAAqB9N,OACjBvJ,IACHqX,EAAqB9N,IAAWyC,KAAW2K,QAEzCpwB,EAAE,kCAAkCnJ,MAAMqV,QAAU,YACtDlM,EAAE,kCAAkCnJ,MAAMqV,QAAU,OAG3B,IAA9BmI,EAAU0c,iBACVnQ,KAAKoB,QAAQ,gBAAgBU,gBAG3B3F,IACAiG,EAASjG,KACQ,MAAhBjF,GAAwC,IAAjB8I,KAAK+C,UAE7B3jB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGomB,GACjD0E,GAAeiG,OACXvJ,IACHsD,GAAeiG,IAAWyC,KAAW2K,QAGrCpwB,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAEjDmI,EAAU6b,aAAe,GAEzBlN,EAAS3O,EAAU6b,aAAezK,OACjB,MAAhB3N,GAAwC,IAAjB8I,KAAK+C,UAE7B3jB,EAAE,yBAAyBnJ,MAAMqV,QAAU,GAE3ClM,EACE,yBACAgxB,SAAS,GAAG/+B,YAAc,2EAA2EoiB,EAAU6b,8BACjHlwB,EAAE,6BAA6B/N,YAAc,GAAGomB,GAC9ChE,EAAU6b,aAAezK,KAAWzC,OAChCvJ,IACHpF,EAAU6b,aAAezK,KAAWzC,IAClCyC,KAAW2K,QAGbpwB,EAAE,yBAAyBnJ,MAAMqV,QAAU,YACL,OAApClM,EAAE,+BACXA,EAAE,8BAA8B9J,SAwEhC+6B,QACgC,OAAvBjxB,EAAE,kBAE6B,OAApCA,EAAE,+BACJA,EAAE,8BAA8B9J,SAyFtC,SAASg7B,KAEP,GACEtQ,KAAKuQ,MAAMC,UACXxQ,KAAKyQ,MAAQ,IAAO,GACJ,UAAhBzQ,KAAK0Q,QACLjd,EAAUkd,MACV,CACA,MAAM7K,EAAQx5B,SAASoiC,eAAe,wBAClC5I,IACFA,EAAM8K,UAAY5Q,KAAK6Q,QACV,GAAX7Q,KAAK8K,IAAY9K,KAAK8Q,GAAgB,GAAX9Q,KAAK8K,KAChC,IAMNhI,KACAU,KA/gDF,WACE,GAA2B,IAAvB/P,EAAUsT,SAAgB,CAE5B,MAAMgK,EAAiB3xB,EAAE,cAAczG,YAAc,IAE/Cq4B,EAAiB5xB,EAAE,cAAczG,YAAc,IACrD,IAAIs4B,EAAiB,EAIkB,IAArCjR,KAAKkR,aAAaC,OAAOC,SACxBpR,KAAKqR,IAAI,uBA+CLjyB,EAAE,gBAAgBnJ,MAAMqV,QAAU,QA7CvClM,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClClM,EAAE,sBAAsBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC3CD,KAAK6D,IACJ,EACA4lB,KAAKkR,aAAaC,OAAOG,QAAUtR,KAAKkR,aAAaC,OAAOrY,MAE5DiY,EACA/Q,KAAKkR,aAAaC,OAAOI,aAEzB9d,EAAU+d,iBAAmB,EAC/BpyB,EAAE,sBAAsB/N,YAAckF,KAAKoL,MACxCqe,KAAKkR,aAAaC,OAAOG,QAAUtR,KAAKkR,aAAaC,OAAOrY,MAC3DkH,KAAK8K,KAEN1rB,EAAE,sBAAsB/N,YAAc,GAEzC2uB,KAAKkR,aAAaC,OAAOG,UAAYtR,KAAKkR,aAAaC,OAAOI,SAE9DnyB,EAAE,sBAAsBnJ,MAAM2vB,qBAAuB,OACrDxmB,EAAE,sBAAsBnJ,MAAM4vB,wBAA0B,SAExDzmB,EAAE,sBAAsBnJ,MAAM2vB,qBAAuB,GACrDxmB,EAAE,sBAAsBnJ,MAAM4vB,wBAA0B,IAE1DzmB,EAAE,mBAAmBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACxCD,KAAK2D,IACJ8lB,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOG,QAC5DtR,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOrY,MAE5DiY,EACA/Q,KAAKkR,aAAaC,OAAOI,aAEzB9d,EAAU+d,iBAAmB,EAC/BpyB,EAAE,mBAAmB/N,YAAckF,KAAKoL,KACtCpL,KAAK2D,IACH8lB,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOG,QAC5DtR,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOrY,MAC1DkH,KAAK8K,KAER1rB,EAAE,mBAAmB/N,YAAc,GACxC+N,EAAE,oBAAoB/N,YAAckF,KAAKoL,MACtCqe,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOrY,MAC3DkH,KAAK8K,KAETmG,GAAkB,GAKF,cAAhBjR,KAAKyR,QACkC,IAAvCzR,KAAKkR,aAAaQ,SAASN,SAE3BhyB,EAAE,iBAAiBnJ,MAAMqV,QAAU,GACnClM,EAAE,uBAAuBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC5CD,KAAK6D,IACJ,EACA4lB,KAAKkR,aAAaQ,SAASJ,QAAUtR,KAAKkR,aAAaQ,SAAS5Y,MAEhEiY,EACA/Q,KAAKkR,aAAaQ,SAASH,aAE3B9d,EAAU+d,iBAAmB,EAC/BpyB,EAAE,uBAAuB/N,YAAckF,KAAKoL,MACzCqe,KAAKkR,aAAaQ,SAASJ,QAC1BtR,KAAKkR,aAAaQ,SAAS5Y,MAC3BkH,KAAK8K,KAEN1rB,EAAE,uBAAuB/N,YAAc,GAC5C+N,EAAE,oBAAoBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACzCD,KAAK2D,IACJ8lB,KAAKkR,aAAaQ,SAASH,QACzBvR,KAAKkR,aAAaQ,SAASJ,QAC7BtR,KAAKkR,aAAaQ,SAASH,QAAUvR,KAAKkR,aAAaQ,SAAS5Y,MAEhEiY,EACA/Q,KAAKkR,aAAaQ,SAASH,aAE3B9d,EAAU+d,iBAAmB,EAC/BpyB,EAAE,oBAAoB/N,YAAckF,KAAKoL,KACvCpL,KAAK2D,IACH8lB,KAAKkR,aAAaQ,SAASH,QACzBvR,KAAKkR,aAAaQ,SAASJ,QAC7BtR,KAAKkR,aAAaQ,SAASH,QACzBvR,KAAKkR,aAAaQ,SAAS5Y,MAC3BkH,KAAK8K,KAER1rB,EAAE,oBAAoB/N,YAAc,GACzC+N,EAAE,qBAAqB/N,YAAckF,KAAKoL,MACvCqe,KAAKkR,aAAaQ,SAASH,QAAUvR,KAAKkR,aAAaQ,SAAS5Y,MAC/DkH,KAAK8K,KAETmG,GAAkB,GAElB7xB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAIrC,MAAMqmB,EAAgB,GACtBvyB,EAAE,wBAAwBoM,UAAY,GACtCha,OAAO6C,KAAK2rB,KAAKgL,OAAO/H,SAASj1B,IAC/B,GAAIgyB,KAAKgL,MAAMh9B,GAAI,CACjB,MAAM83B,EAAQV,GAAYpF,KAAKgL,MAAMh9B,GAAGuE,KAAMytB,KAAKgL,MAAMh9B,GAAGuE,KAAM,CAChE,CAAEgvB,GAAI,GAAGvB,KAAKgL,MAAMh9B,GAAGuE,aAEzBuzB,EAAM7vB,MAAMqV,QAAU,GACtB,IAAIsmB,EAAa,GAGfA,OAD4C,IAAnCnb,EAAWuJ,KAAKgL,MAAMh9B,GAAGuE,MACrBkkB,EAAWuJ,KAAKgL,MAAMh9B,GAAGuE,MACpBkjB,EACpBqQ,EAAMwE,UAAU8F,SAAS,GAAG3hC,UAAY0mB,EAAeyc,EACvD9L,EAAMwE,UAAU8F,SAAS,GAAGn6B,MAAM2F,MAAQ,QACR,IAA9B6X,EAAU+d,gBACZ1L,EAAMwE,UAAU8F,SAAS,GAAG/+B,YAAc,GAAGkF,KAAKC,MACzCwpB,KAAKgL,MAAMh9B,GAAG8qB,KAAOkH,KAAKgL,MAAMh9B,GAAGujC,QAA1C,QAECzL,EAAMwE,UAAU8F,SAAS,GAAG/+B,YAAc,GAC/Cy0B,EAAMwE,UAAU8F,SAAS,GAAGn6B,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC/CwpB,KAAKgL,MAAMh9B,GAAG8qB,MACZkY,EAC8D,EAA7Dz6B,KAAKoL,KAAKqe,KAAKgL,MAAMh9B,GAAG8qB,KAAOkH,KAAK8K,KAAKr0B,WAAWxI,QACtD+xB,KAAKgL,MAAMh9B,GAAGujC,aAElBzL,EAAMwE,UAAU8F,SAAS,GAAG/+B,YAAckF,KAAKoL,KAC7Cqe,KAAKgL,MAAMh9B,GAAG8qB,KAAOkH,KAAK8K,KAE5BmG,GAAkB,EAClBU,EAAc3R,KAAKgL,MAAMh9B,GAAGuE,MAAQuzB,MAGxCt0B,OAAO6C,KAAKs9B,GAAe1O,SAASj1B,IAClCoR,EAAE,wBAAwBwK,YAAY+nB,EAAc3jC,OAG/B,IAAnBijC,IACF7xB,EAAE,cAAcnJ,MAAMmG,OAA6B,GAAjB60B,EAAsB,EAAzB,MAE7B3Z,KAAuB2Z,IACzB3Z,GAAqB2Z,EACrBnK,OA03CJ+K,GAGAxL,KAGA+E,KArGF,WACE,GAA+B,IAA3B3X,EAAUqe,cAA8C,IAAxB7b,EAA2B,CAE7D,IAAI8b,GAAiB,EACrBvgC,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACnC,MAAMk2B,EAAKlE,KAAKkF,UAAUl3B,GAC1B,GAAIk2B,EAAG8N,MAAQ,GAAK9N,EAAG+N,UAErB,GADAF,GAAiB,EAEkB,IAAjC5b,EAA0BnoB,SACOI,IAAjC+nB,EAA0BnoB,GAC1B,CACA,MAAMkkC,EAAc5lC,SAAS4D,cAAc,OACrCiiC,EAAW7lC,SAAS4D,cAAc,OACxCiiC,EAASl8B,MAAMm8B,SAAW,QAC1BD,EAASl8B,MAAMo0B,aAAe,MAC9B,MAAM/F,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAI/C,GAAK,oBACT4Q,EAASvoB,YAAY0a,GACrB4N,EAAYtoB,YAAYuoB,GACxBnS,KAAKmK,QAAQ3kB,KAAK9Y,KAAM2lC,OAAOH,EAAY1mB,YAC3C0K,EAAkBloB,EAClBmoB,EAA0BnoB,GAAK,QAGjCmoB,EAA0BnoB,GAAK,KAG9B+jC,GACH/R,KAAKmK,QAAQnlB,QA0EjBstB,GAhEF,WACE,GAA+B,IAA3B7e,EAAUqe,cAAiD,OAA3B1yB,EAAE,qBAA+B,CACnE,IAAImzB,OAAEA,GAAWvS,KAAKkF,UAAUhP,GAC5Bsc,EAAS,IAKb,GAJIxS,KAAKqR,IAAI,6BAA4BmB,GAAU,MACN,IAAzCxS,KAAKkF,UAAUhP,GAAiB7nB,OAAYmkC,GAAU,GAC1DD,GAAUC,EACNxS,KAAKqR,IAAI,mBAAkBkB,GAAU,MACrC3S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAcwQ,GAAU,KACR,IAAXxQ,EAAcwQ,GAAU,IACb,IAAXxQ,IAAcwQ,GAAU,MAEnCnzB,EAAE,qBAAqB/N,YAAcomB,GAA4B8a,IAmDnEE,GAt3CEhf,EAAUif,SACM,UAAhB1S,KAAK0Q,SACJ1Q,KAAKyQ,MAAQ,IAAiB,EAAXzQ,KAAK8K,MAAa,IACrC9K,KAAKyQ,MAAQ,GAAKzQ,KAAK8K,KAAQ,GAEhC9K,KAAK2S,aAu3CP,IAAIvjC,EAAMgQ,EAAE,WAAWoM,UAAU5W,QAC/B,cACA6iB,GAA4BuI,KAAK0G,UAE/B1G,KAAKuQ,MAAMqC,YAAWxjC,EAAM,2BAA2BA,YAC3DgQ,EAAE,WAAWoM,UAAYpc,EAgB3B,MAAMyjC,GACJC,YAAYC,GACVrmC,KAAKqmC,UAAYA,EACjBrmC,KAAKsmC,MAAQ,GAGfF,UAAUG,GACJvmC,KAAKsmC,MAAMljC,KAAKmjC,GAAYvmC,KAAKqmC,WACnCrmC,KAAKsmC,MAAMrgB,QASfmgB,YAAYI,GACV,IAAIpa,EAAOoa,EACPpa,EAAOpsB,KAAKqmC,YAAWja,EAAOpsB,KAAKqmC,WACnCja,EAAOpsB,KAAKsmC,MAAM/kC,SAAQ6qB,EAAOpsB,KAAKsmC,MAAM/kC,QAChD,IAAI0M,EAAM,EACV,IACE,IAAI3M,EAAItB,KAAKsmC,MAAM/kC,OAAS,EAC5BD,GAAK,GAAKA,EAAItB,KAAKsmC,MAAM/kC,OAAS,EAAI6qB,EACtC9qB,IAEA2M,GAAOjO,KAAKsmC,MAAMhlC,GAEpB,OAAY,IAAR2M,EACK,EAEFA,EAAMme,GA+BjB,SAASqa,KACP,MAAMC,EAAW78B,KAAKkE,MAAM44B,KAAKC,MAAQ,KAEzC,GAAKtT,KAAK8Q,EAAI9Q,KAAK8K,IAAO,GAAM,EAAG,CACjC,IAAIyI,EAAcvT,KAAK0G,QAAU1H,GAC7BgB,KAAKiF,UAAY,IAAGsO,GAAevW,IACvCsB,GAAyB/nB,KAAK6D,IAAI4lB,KAAKwT,cAAeD,GACtDA,GAAe,IAGf,MAAME,EAAWL,EAAW1Z,GACtBga,EAAcn9B,KAAK6D,IAAI,EAAG4lB,KAAK0G,QAAU/M,IAAoB8Z,EAC7DE,EACJp9B,KAAK6D,IAAI,EAAG4iB,GAAsBpD,IAAyB6Z,EACvDG,EACJr9B,KAAK6D,IAAI,EAAG8iB,GAAsB,GAAKrD,IACvC4Z,EACII,EAAgBt9B,KAAK6D,IAAI,EAAGm5B,EAAc3W,IAAmB6W,EAC7DK,GAAiB9T,KAAK+T,aAAeja,IAAmB2Z,EAC9D,IAAK,IAAIzlC,EAAI,EAAGA,EAAIylC,EAAUzlC,IAC5BorB,GAAY4a,UAAUN,GACtBra,GAAU2a,UAAUL,GACpBra,GAAiB0a,UAAUJ,GAC3Bra,GAAWya,UAAUH,GACrBra,GAAWwa,UAAUF,GAIvBpa,GAAoB0Z,EACpBzZ,GAAmBqG,KAAK0G,QACxB9M,GAAwBoD,GACxBnD,GAA+BqD,GAAsB,GACrDN,GAAkB2W,EAClBzZ,GAAkBkG,KAAK+T,aAGvB,MAAME,EAAY1d,EAAY9C,EAAUygB,YACxCna,GAAuBX,GAAY+a,YAAYF,GAC/Cja,GAAwBX,GAAU8a,YAAYF,GAC9Cha,GAA+BX,GAAiB6a,YAAYF,GAC5D/Z,GAAyBX,GAAW4a,YAAYF,GAChD9Z,GAAkBJ,GACU,IAAxBtG,EAAUsR,YAAiB5K,IAAmBH,IACtB,IAAxBvG,EAAUsR,YACZ5K,IAAmBF,IAErB,MAAMma,EACJpU,KAAKqU,YAAY,mBAAqBrU,KAAKqR,IAAI,iBAG/C9S,GADE6V,GAAkC,IAAxB3gB,EAAUsR,UAEpBhL,GACAC,IACCoa,EAASla,GAAyB,GACRC,GAE/BmD,GAAqB9D,GAAW2a,YAC9B3d,EAAW/C,EAAU6gB,iBAkB3B,SAASC,GAAWrQ,EAAIxC,GACtB,IAAI9lB,EAAQ,GAmBZ,OAjBsCA,EAAlCsoB,EAAG5kB,IAAM,GAAK4kB,EAAG5kB,KAAOyY,IAAkBrC,EACrCwO,EAAG5kB,GAAKqf,GAAoBvJ,EAC5B8O,EAAG5kB,KAAOqf,GAAoBtJ,EAC9B6O,EAAG5kB,KAAOuf,GAAoBrJ,EAC9B0O,EAAG5kB,GAAKuf,GAAoBpJ,EAC5ByO,EAAG5kB,GAAKsf,GAAoBrJ,EACxBD,EAGiC,IAA1C4C,OAAOzE,EAAU+gB,sBACf9S,EAAQmD,KAAW3M,OAAOzE,EAAU+gB,uBACtC54B,EAAQwZ,GAGR3B,EAAUghB,uBACR/S,EAAQ1B,KAAK0G,QAAU,IAAG9qB,EAAQ4Z,GAEjC5Z,EAiBT,SAAS84B,GAAqBrhC,GAC5B7B,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IACvBgyB,KAAKgF,UACP3xB,EAAOrF,GAAGsR,GACR/I,KAAK6D,IAAI/G,EAAOrF,GAAG0zB,OAAS1B,KAAK0G,QAAUvB,MAAuB,GAChEnF,KAAKgF,UACP3xB,EAAOrF,GAAG0zB,MAAQruB,EAAOrF,GAAGk4B,MACzB7yB,EAAOrF,GAAGsR,GAAKjM,EAAOrF,GAAG0zB,MAAQruB,EAAOrF,GAAGk4B,MAElD7yB,EAAOrF,GAAG4N,MAAQ24B,GAAWlhC,EAAOrF,GAAIqF,EAAOrF,GAAG0zB,UA6ItD,SAASiT,MArIT,WAOE,GANAhW,GAAa5G,IACb8G,GAAa,EACbC,GAAkB,QACoB,IAA3BrL,EAAUmhB,eAA8BnhB,EAAUmhB,aAAe,GAG1C,IAA9BnhB,EAAUohB,iBAAyB7U,KAAK+C,QAAU,EAAG,CAiBvD,GAhBAvxB,OAAO6C,KAAKwoB,IAAeoG,SAASj1B,IAC9BgyB,KAAKgF,UACPnI,GAAc7uB,GAAGsR,GACf/I,KAAK6D,IACH4lB,KAAKoB,QAAQpzB,GAAG+9B,YAAc/L,KAAK0G,QAAUvB,MAC7C,GAEAnF,KAAKgF,UACPhF,KAAKoB,QAAQpzB,GAAG+9B,WAAalP,GAAc7uB,GAAGk4B,MAEhDrJ,GAAc7uB,GAAGsR,GACf0gB,KAAKoB,QAAQpzB,GAAG+9B,WAAalP,GAAc7uB,GAAGk4B,MAClDpH,GAAgBhvB,KAAK,CAAC+sB,GAAc7uB,GAAGsR,GAAI0gB,KAAKoB,QAAQpzB,GAAG+9B,gBAG7DjN,GAAgBwE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE,GAAKP,EAAE,KACpCmd,EAAUghB,sBACZ,KAAO3V,GAAgB,GAAG,GAAKkB,KAAK0G,SACH,IAA3B5H,GAAgB7wB,QAGpB6wB,GAAgBnM,QAGpBgM,GAAaG,GAAgBrL,EAAUmhB,cAAc,GACrD/V,GAAaC,GAAgBA,GAAgB7wB,OAAS,GAAG,GACzD2wB,IAAcC,GAAaF,IAAc,EAAIA,GAC7CntB,OAAO6C,KAAKwoB,IAAeoG,SAASj1B,IAClC6uB,GAAc7uB,GAAG4N,MAAQ24B,GACvB1X,GAAc7uB,GACdgyB,KAAKoB,QAAQpzB,GAAG+9B,YAGlB,IAAK,IAAI3H,EAAI,EAAGA,EAAI3Q,EAAUmhB,aAAcxQ,IACtCvH,GAAc7uB,GAAGsR,KAAOwf,GAAgBsF,GAAG,KAC7CvH,GAAc7uB,GAAG4N,MAAQ8Z,MAI/Bgf,GAAqB5X,IACrB4X,GAAqB3X,SAChB,GAAIiD,KAAK+C,QAAU,EAAG,CAE3B,IAAI1vB,EAkBJ,GAjBqB,IAAjB2sB,KAAK0C,QAAervB,EAASwpB,GACP,KAAjBmD,KAAK0C,QAAgBrvB,EAASypB,GACb,MAAjBkD,KAAK0C,UAAiBrvB,EAAS0pB,IACxCvrB,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IACvBgyB,KAAKgF,UACP3xB,EAAOrF,GAAGsR,GACR/I,KAAK6D,IACH4lB,KAAKoB,QAAQpzB,GAAGy4B,WAAazG,KAAK0G,QAAUvB,MAC5C,GAEAnF,KAAKgF,UACPhF,KAAKoB,QAAQpzB,GAAGy4B,UAAYpzB,EAAOrF,GAAGk4B,MACnC7yB,EAAOrF,GAAGsR,GAAK0gB,KAAKoB,QAAQpzB,GAAGy4B,UAAYpzB,EAAOrF,GAAGk4B,MAC5DpH,GAAgBhvB,KAAK,CAACuD,EAAOrF,GAAGsR,GAAI0gB,KAAKoB,QAAQpzB,GAAGy4B,eAGtD3H,GAAgBwE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE,GAAKP,EAAE,KACpCmd,EAAUghB,sBACZ,KAAO3V,GAAgB,GAAG,GAAKkB,KAAK0G,SACH,IAA3B5H,GAAgB7wB,QAGpB6wB,GAAgBnM,QAGpBgM,GAAaG,GAAgBrL,EAAUmhB,cAAc,GACrD/V,GAAaC,GAAgBA,GAAgB7wB,OAAS,GAAG,GACzD2wB,IAAcC,GAAaF,IAAc,EAAIA,GAE7CntB,OAAO6C,KAAKwoB,IAAeoG,SAASj1B,IAClCqF,EAAOrF,GAAG4N,MAAQ24B,GAAWlhC,EAAOrF,GAAIgyB,KAAKoB,QAAQpzB,GAAGy4B,WAExD,IAAK,IAAIrC,EAAI,EAAGA,EAAI3Q,EAAUmhB,aAAcxQ,IACtC/wB,EAAOrF,GAAGsR,KAAOwf,GAAgBsF,GAAG,KAAI/wB,EAAOrF,GAAG4N,MAAQ8Z,OAiDpEof,GAjCAtjC,OAAO6C,KAAKgpB,IAAe4F,SAASj1B,IAC9BgyB,KAAKgF,UACP3H,GAAcrvB,GAAGsR,GACf/I,KAAK6D,IACH4lB,KAAKmJ,SAASn7B,GAAG+9B,YAAc/L,KAAK0G,QAAUvB,MAC9C,GAEAnF,KAAKgF,UACPhF,KAAKmJ,SAASn7B,GAAG+9B,WAAa1O,GAAcrvB,GAAGk4B,MAEjD7I,GAAcrvB,GAAGsR,GACf0gB,KAAKmJ,SAASn7B,GAAG+9B,WAAa1O,GAAcrvB,GAAGk4B,MAC/ChO,OAAO5I,MAAM+N,GAAcrvB,GAAGsR,MAAK+d,GAAcrvB,GAAGsR,GAAKyY,KAE7DsF,GAAcrvB,GAAG4N,MAAQ24B,GACvBlX,GAAcrvB,GACdgyB,KAAKmJ,SAASn7B,GAAG+9B,eAiCvB,SAASgJ,GACP9S,EACAC,EACA1kB,EACA2kB,EACAsJ,GAEA,IAAIjJ,EAAiBhlB,EACjBilB,EAAO,EACX,IAAK,IAAIz0B,EAAI,EAAGA,EAAIy9B,EAAUz9B,GAAK,EAAG,CACpC,IAAI0zB,EACFQ,EAAYlC,KAAK2C,eAAiBpsB,KAAK6D,IAAI,EAAGooB,EAAiBL,GACjET,EAAQ1B,KAAK4C,oBAAoBX,EAAOP,GACxCA,EAAQnrB,KAAKoL,KAAK+f,GAClBe,GAAQf,EACRc,GAAkB,EAEpB,OAAOC,EA0CT,SAASuS,GAAO5U,GACVN,GAAgBM,IACgB,IAA9BN,GAAgBM,GAAM2J,MACxBjK,GAAgBM,GAAM2J,IAAM,EACS,WAAjC/J,KAAKuH,aAAanH,GAAMS,OAAmBlG,IAAwB,IAuB7E,SAASsa,KACP5Z,GAAe,EACf,IAAIqM,EAAO,EAEX,MAAMwN,EAAO,GACb1jC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,GAAIgyB,KAAKoB,QAAQpzB,GAAG8zB,gBAAkB9B,KAAKoB,QAAQpzB,GAAGmzB,SAAS+T,KAAM,CACnE,MAAMC,EAASnV,KAAKoB,QAAQpzB,GAAGmzB,SAAS+T,KACxC1jC,OAAO6C,KAAK8gC,GAAQlS,SAASmS,IACvBF,EAAKE,GAAKF,EAAKE,IAAOD,EAAOC,GAC5BF,EAAKE,GAAMD,EAAOC,UAI7Bha,GAAU8Z,EAEiB,IAAvBlV,KAAKY,gBACP8G,GAEE,IADApsB,WAAWuf,IAEXD,GA9EN,WACE,IAAIya,EAAe,EAWnB,GAVI3U,GAAO,0BAAyB2U,GAAgB,KAChD3U,GAAO,2BAA0B2U,GAAgB,IACjD3U,GAAO,qBAAoB2U,GAAgB,KAC3C3U,GAAO,4BAA2B2U,GAAgB,KAClD3U,GAAO,kBAAiB2U,GAAgB,KAE5CA,GAAgB,EAAgC,IAA5BlV,GAAY,cAC5BO,GAAO,iBAAgB2U,GAAgB,MACvC3U,GAAO,kBAAiB2U,GAAgB,MACxC3U,GAAO,kBAAiB2U,GAAgB,MACxCrV,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,YACV,IAAXe,EAAcsT,GAAgB,GACd,IAAXtT,EAAcsT,GAAgB,GACnB,IAAXtT,IAAcsT,GAAgB,IAEzC,OAAOA,EA6DHC,IAEJ5N,GAAQlH,GAAO,OAEXE,GAAO,YAAqC,IAAvBV,KAAKY,gBAC5B8G,GAAQ,EAAI,IAAO1H,KAAKuV,SAE1B/jC,OAAO6C,KAAK2rB,KAAKwV,gBAAgBvS,SAASj1B,IACxC,MAAMk2B,EAAKlE,KAAKwV,eAAexnC,GAC3B0yB,GAAOwD,EAAG3xB,QAIY,mBAAb2xB,EAAGkF,MACZ1B,GAAQ,EAAuD,IAAnD7H,GAAYqE,EAAG3xB,MAAM62B,MAAMvJ,GAAYqE,EAAG3xB,OACjDm1B,GAAQ,EAAe,IAAXxD,EAAGkF,UAItB1I,GAAO,iCAAgCgH,GAAQ,MAC/ChH,GAAO,0BAAyBgH,GAAQ,MACxChH,GAAO,sBAAqBgH,GAAQ,MACpChH,GAAO,iBAAgBgH,GAAQ,MAC/BhH,GAAO,kBAAiBgH,GAAQ,MAEhChH,GAAO,yBAAwBgH,GAAQ,MACvChH,GAAO,wBAAuBgH,GAAQ,MACtChH,GAAO,oBAAmBgH,GAAQ,MAClChH,GAAO,sBAAqBgH,GAAQ,MACpChH,GAAO,sBAAqBgH,GAAQ,KAEpChH,GAAO,kBAAiBgH,GAAQ,MAChChH,GAAO,kBAAiBgH,GAAQ,MAEhChH,GAAO,kBAAiBgH,GAAQ,MAGpC,IAAI+N,EAAY,EAChB,GAAIzU,GAAW,CACb,IAAIe,EAASf,GAAU,cACR,IAAXe,EAAc2F,GAAQ,KACN,IAAX3F,EAAc2F,GAAQ,IACX,IAAX3F,IAAc2F,GAAQ,MAE/B3F,EAASf,GAAU,QACJ,IAAXe,EACF2F,GACE,EAAI,IAAOnxB,KAAKm/B,IAAKxV,GAAc,IAAO,MAAiB3pB,KAAKiU,GAAK,GACrD,IAAXuX,EACP2F,GACE,EACA,IAAOnxB,KAAKm/B,IAAKxV,GAAc,IAAO,MAAkB3pB,KAAKiU,GAAK,GAClD,IAAXuX,IACP2F,GACE,EACA,IAAOnxB,KAAKm/B,IAAKxV,GAAc,IAAO,MAAkB3pB,KAAKiU,GAAK,IAEtEuX,EAASf,GAAU,aACJ,IAAXe,EAAc0T,GAAa,IACX,IAAX1T,EAAc0T,GAAa,IAChB,IAAX1T,IAAc0T,GAAa,KAEpC1T,EAASf,GAAU,YACJ,IAAXe,EAAc0T,GAAa,IACX,IAAX1T,EAAc0T,GAAa,KAChB,IAAX1T,IAAc0T,GAAa,MAEpC1T,EAASf,GAAU,SACJ,IAAXe,EAAc0T,GAAa,IACX,IAAX1T,EAAc0T,GAAa,IAChB,IAAX1T,IAAc0T,GAAa,KAGlC/U,GAAO,oBAAmBgH,GAAQ,EAA4B,KAAvB1H,KAAK2V,WAAa,IAE7D,MAAMC,EAAejb,GAAuB,GAC5C,IAAIkb,EAAW,EAIf,GAHInV,GAAO,8BAA6BmV,GAAY,MAEpDA,GAAY,EAAoC,IAAhC1V,GAAY,kBACxBa,GAAW,CACb,MAAMe,EAASf,GAAU,UACV,IAAXe,EAAc8T,GAAY,IACV,IAAX9T,EAAc8T,GAAY,KACf,IAAX9T,IAAc8T,GAAY,MAErCA,GAAYrV,GAAO,QAEnB,IAAIsV,EAAU,EAEVpV,GAAO,oBAAmBoV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DnV,GAAO,oBAAmBoV,GAAW,EAAmB,KAAfF,EAAuBC,GAChEnV,GAAO,sBAAqBoV,GAAW,EAAmB,IAAfF,EAAsBC,GACjEnV,GAAO,sBACToV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCnV,GAAO,qBAAoBoV,GAAW,EAAmB,GAAfF,EAAqBC,GAC/DnV,GAAO,wBACToV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCnV,GAAO,wBACToV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCnV,GAAO,oBAAmBoV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DnV,GAAO,wBACToV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCnV,GAAO,+CACToV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCnV,GAAO,uBACToV,GAAW,EAAmB,IAAfF,EAAsBC,GACnCnV,GAAO,qBAAoBoV,GAAW,EAAmB,KAAfF,EAAuBC,GACjEnV,GAAO,uBACToV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCnV,GAAO,mBAAkBoV,GAAW,EAAmB,GAAfF,EAAqBC,GAC7DnV,GAAO,kBAAiBoV,GAAW,EAAmB,IAAfF,EAAsBC,GAEjErkC,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B,MAAMk2B,EAAKtE,GAAW5xB,GACtB,IAAI+nC,EAAY7R,EAAGsE,IAAItE,GACI,IAAvBlE,KAAKY,gBACPmV,IAAc,EAAe,IAAX7R,EAAGmF,OAAgBoM,GAEzB,YAAZvR,EAAG3xB,MACHmuB,GAAO,sDAEPqV,GAAa,EAAI,IAAOH,EAAeC,GACzCxa,IAAgB6I,EAAG9B,OAAS2T,KAG1BrV,GAAO,WAAUrF,IAAgB,GAErCqM,GAAQoO,EAER,IAAIE,EAAU,EAad,GAZItV,GAAO,iBAAgBsV,GAAW,MAClCtV,GAAO,cAAasV,GAAW,MAC/BtV,GAAO,gBAAesV,GAAW,MACjCtV,GAAO,eAAcsV,GAAW,MAChCtV,GAAO,eAAcsV,GAAW,MAChCtV,GAAO,iBAAgBsV,GAAW,MAClCtV,GAAO,mBAAkBsV,GAAW,MACpCtV,GAAO,gBAAesV,GAAW,MACjCtV,GAAO,eAAcsV,GAAW,MAChCtV,GAAO,eAAcsV,GAAW,MAChCtV,GAAO,gBAAesV,GAAW,MACjCtV,GAAO,eAAcsV,GAAW,MAChCtV,GAAO,eAAgB,CAEzB,IAAIuV,EAC2D,GAA5D1/B,KAAKkE,OAAOslB,GAAiBC,KAAKC,WAAa,IAAO,IACvD,GACA,GACA,GACFgW,EAAM1/B,KAAK2D,IAAI+7B,EAAK,KAEpBvZ,GAAe,EAAiC,IAA5B,GAAK,EAAIuZ,EAAM,MAAQ,GAC3CD,GAAWtZ,GAEbgL,GAAQsO,EAEJtV,GAAO,kBAAiBgH,GAAQ,EAAgC,IAA5BnxB,KAAK2D,IAAI,IAAK8lB,KAAKkW,QAG3DxO,GAAQ,EAAIvH,GAAY,oBAExB,MAAMgW,EAAe9a,GAAeqM,EACpCl2B,OAAO6C,KAAK2rB,KAAKoW,iBAAiBnT,SAASj1B,IACrCmoC,GAAgBnW,KAAKoW,gBAAgBpoC,GAAGqoC,WAC1CrB,GAAOhV,KAAKoW,gBAAgBpoC,GAAGuE,SAGnC+oB,GAAkB6a,EAElB,MAAMllC,EAAEA,GAAM+uB,KAAKkR,aAAaC,OAC1BmF,EAAWnW,GAAY,oBAC7B,IAAK,IAAInyB,EAAI,EAAGA,EAAIiD,EAAGjD,IACrB05B,GAAQ,EAAe,KAAX4O,EAGd,MAAM/jC,EAAOytB,KAAKuW,WAAWjoC,cAM7B,GALa,WAATiE,EAAmBm1B,GAAQ,IACb,WAATn1B,IAAmBm1B,GAAQ,KAEhChH,GAAO,oBAAmBgH,GAAQ,KAElChH,GAAO,uBAAwB,CACjC,IAAI8V,EAAmB,IACvB,GAAI9V,GAAO,iBAAkB,CAC3B,MAAM+V,EAAWzW,KAAK0W,qBACtBllC,OAAO6C,KAAKoiC,GAAUxT,SAASj1B,IACzB0yB,GAAO+V,EAASzoC,MAAKwoC,GAAoB,OAGjD9O,GAAQ8O,EAEV,GAAI9V,GAAO,yBAA0B,CACnC,IAAIiW,EAAW,GACXjW,GAAO,yBAAwBiW,GAAY,IAC/CjP,GAAQ,EAAIiP,EAGVjW,GAAO,uBAAsBgH,GAAQ,KACrChH,GAAO,wBAAuBgH,GAAQ,GAE1CrM,GAAe2E,KAAK4W,kBAAkB,MAAOvb,IAE7CqM,GAAQqD,KAER1P,IAAgBqM,EASlB,MAAMmP,GAAW,CACf,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAIIC,GAAe,CACnB,gBACA,gBACA,cACA,gBACA,kBACA,kBACA,kBAIIC,GAAgB,CACpB,0BACA,qBACA,mBACA,iBACA,sBACA,gBACA,oBAIIC,GAAa,CACjB,sBACA,wBACA,sBACA,yBACA,wBACA,yBACA,wBAIIC,GAAa,CACjB,qBACA,oBACA,oBACA,yBACA,cACA,WACA,eAkCF,SAASC,GAAa9W,GACpB,OAAON,GAAgBM,GAAQN,GAAgBM,GAAM2J,IAAM,EAe7D,SAASoN,KACP,IAAIC,EAAW,EACf5lC,OAAO6C,KAAK2rB,KAAK2I,kBAAkB1F,SAASj1B,IACtC0yB,GAAOV,KAAK2I,iBAAiB36B,MAAKopC,GAAY,OAE/CF,GAAa,UAAYE,GAAY,GAAGpC,GAAO,UAC/CkC,GAAa,YAAcE,GAAY,IAAIpC,GAAO,WAEvD,IAAIqC,EAAiB,EACjBC,EAAgB,EAChBC,EAAS,EACTC,EAAY,IAChBhmC,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/BqpC,GAAkBzX,GAAW5xB,GAAGo0B,OAChCoV,EAAYjhC,KAAK2D,IAAI0lB,GAAW5xB,GAAGo0B,OAAQoV,GACtCN,GAAa,kBAEdtX,GAAW5xB,GAAGo0B,OACd7rB,KAAK2D,IAAI,IAAK,IAAM8lB,KAAKyX,YAAYxpC,OAAS+xB,KAAKoB,QAAQpzB,GAAGuzB,GAAK,MAEnE+V,EAAgB,GAEfJ,GAAa,YAEdtX,GAAW5xB,GAAGo0B,OACmC,IAAhDpC,KAAKyX,YAAYxpC,OAAS+xB,KAAKoB,QAAQpzB,GAAGuzB,MAE3CgW,EAAS,MAGXC,GAAa,GAAGxC,GAAO,uBACL,IAAlBsC,GAAqBtC,GAAO,iBACjB,IAAXuC,GAAcvC,GAAO,WACrBwC,GAAa,KAAKxC,GAAO,cACzBwC,GAAa,KAAKxC,GAAO,yBACzBwC,GAAa,KAAKxC,GAAO,gBACzBwC,GAAa,KAAKxC,GAAO,2BACzBwC,GAAa,KAAKxC,GAAO,iBACzBwC,GAAa,KAAKxC,GAAO,4BACzBwC,GAAa,KAAKxC,GAAO,oBACzBwC,GAAa,KAAKxC,GAAO,+BACzBwC,GAAa,KAAKxC,GAAO,kBACzBwC,GAAa,KAAKxC,GAAO,6BACzBwC,GAAa,KAAKxC,GAAO,iBAEzBqC,GAAkB,KAAKrC,GAAO,WAC9BqC,GAAkB,KAAKrC,GAAO,aAC9BqC,GAAkB,KAAMrC,GAAO,YAC/BqC,GAAkB,KAAMrC,GAAO,sBAC/BqC,GAAkB,KAAMrC,GAAO,gBAC/BqC,GAAkB,KAAMrC,GAAO,gBAE/Bva,IAAoB,IAAIua,GAAO,YAC/Bva,IAAoB,IAAIua,GAAO,aAC/Bva,IAAoB,KAAKua,GAAO,YAChCva,IAAoB,KAAKua,GAAO,oBAChCva,IAAoB,KAAKua,GAAO,oBAChCva,IAAoB,KAAKua,GAAO,oCAEhCqC,GAAkB,KAAQ5c,IAAoB,KAAKua,GAAO,YAC1DqC,GAAkB,KAAQ5c,IAAoB,KAChDua,GAAO,qBAELpV,GAAW8X,OAAOtV,OAASxC,GAAWuI,QAAQ/F,QAAU,KAC1D4S,GAAO,qBAET,IAAI2C,GAAkB,EACtBnmC,OAAO6C,KAAKyiC,IAAc7T,SAASj1B,IAC5B0yB,GAAOoW,GAAa9oC,MAAK2pC,GAAkB,MAE9CA,GAAiB3C,GAAO,kBAE5B,IAAI4C,GAAmB,EAMvB,GALApmC,OAAO6C,KAAK0iC,IAAe9T,SAASj1B,IAC7B0yB,GAAOqW,GAAc/oC,MAAK4pC,GAAmB,MAEhDA,GAAkB5C,GAAO,eAEzBtU,GAAO,mBAAoB,CAC7B,MAAMmX,EAAO7X,KAAK4H,MAAM/F,QAAQ4U,SAChC,IAAIqB,EAAW,EACftmC,OAAO6C,KAAKwjC,GAAM5U,SAASj1B,IACrB0yB,GAAOmX,EAAK7pC,GAAGuE,QAAOulC,GAAY,MAEpCA,GAAYD,EAAK5pC,QAAQ+mC,GAAO,cA2OxC,SAAS+C,GAAoB3V,EAAQ/uB,GACnC,MAAM2kC,EAAS,GAQf,OAPAxmC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCgqC,EAAOhqC,GAAK,GACZgqC,EAAOhqC,GAAGk4B,MA7Nd,SAAiCzE,EAAUW,GACzCmH,KACA3J,GAAW6B,GAAUW,QAAUA,EAC/B,MAAM8B,EAAKtE,GAAW6B,GAEL,WAAbA,GACEyC,EAAG9B,QAAU,GAAG4S,GAAO,SACvB9Q,EAAG9B,QAAU,GAAG4S,GAAO,gBACvB9Q,EAAG9B,QAAU,IAAI4S,GAAO,eACxB9Q,EAAG9B,QAAU,KAAK4S,GAAO,mBACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,eACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,uBACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,SACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,kCACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,iCACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,wBACzB9Q,EAAG9B,QAAU,KAAK4S,GAAO,yBAE7BxjC,OAAO6C,KAAK2rB,KAAKoB,QAAQ8C,EAAG3xB,MAAM0lC,eAAehV,SAASmB,IAEtDF,EAAG9B,QACHpC,KAAK4H,MAAM5H,KAAKoB,QAAQ8C,EAAG3xB,MAAM0lC,cAAc7T,GAAGtD,MAAMoX,cAExDlD,GAAOhV,KAAKoB,QAAQ8C,EAAG3xB,MAAM0lC,cAAc7T,GAAG7xB,SAKpD,MAAM4lC,EAAwBxd,GAU9B,OARAsa,KAEAkC,KAEIgB,IAA0Bxd,IAC5Bsa,KAGK5Z,GAAe2E,KAAKgF,UAuLPoT,CAAwBpqC,EAAGo0B,GAC9B,IAAXA,IACF9H,GAA2B,MAGxB0d,EAoBT,SAASK,KACP7mC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC6uB,GAAc7uB,GAAG0zB,MAAQqT,GACvB/U,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,GAEFrF,GAAe9uB,GAAG0zB,MAAQqT,GACxB/U,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,IAEFpF,GAAgB/uB,GAAG0zB,MAAQqT,GACzB/U,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,QASN,SAASmW,KAEPzb,GAAgBkb,GAAoB,GACpCjb,GAAiBib,GAAoB,IACrChb,GAAkBgb,GAAoB,KA9CtC1a,GAAgB,GAChB7rB,OAAO6C,KAAK2rB,KAAKmJ,UAAUlG,SAASj1B,IAClC,MAAMuqC,EApFV,SAAgC7T,GAC9B,GACkC,WAAhC1E,KAAKmJ,SAASzE,GAAS7D,MACY,IAAlCb,KAAKmJ,SAASzE,GAAS3D,QACtBf,KAAKmJ,SAASzE,GAAS8T,UACS,aAAhCxY,KAAKmJ,SAASzE,GAAS7D,KACzB,CACA0I,KACkC,yBAA9B1J,GAAY6E,GAASnyB,KACvBstB,GAAY,yBAAyBkB,OAAS,EACP,uBAA9BlB,GAAY6E,GAASnyB,KAC9BstB,GAAY,uBAAuBkB,OAAS,EAE5ClB,GAAY6E,GAAS3D,QAAUlB,GAAY6E,GAAS3D,OAAS,GAAK,EAEzDlB,GAAY6E,GACnB1E,KAAKyY,qBAAqBzY,KAAKmJ,SAASzE,GAAS7D,QACnDpG,IAAoB,GAEN,iBAAZiK,GACFhK,IAAc,EACVA,GAAa,GAAGsa,GAAO,aACvBta,IAAc,GAAGsa,GAAO,kBACP,mBAAZtQ,EACTsQ,GAAO,cACc,yBAAZtQ,EACTsQ,GAAO,kBACc,iBAAZtQ,GACTsQ,GAAO,aAGT,MAAMmD,EAAwBxd,GAE9Bsa,KAEAkC,KAEIgB,IAA0Bxd,IAC5Bsa,KAGF,MAAMyD,EAvIV,WACE,IAAIvjC,EAAM,EACNurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,qBAAoBvrB,GAAO,GAClCurB,GAAO,qBAAoBvrB,GAAO,IAClCurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,uBAAsBvrB,GAAO,IACpCurB,GAAO,uBAAsBvrB,GAAO,IACxC,IAAIuiB,EAAM,EACVlmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B0pB,GAAOkI,GAAW5xB,GAAGo0B,UAEvB1K,GAAOkI,GAAW8X,OAAOtV,OACzBjtB,GAAOuiB,EAGHgJ,GAAO,mBAAkBvrB,GAAsB,IAAfkmB,IAChCqF,GAAO,gBAAevrB,GAAsB,IAAfkmB,IAC7BqF,GAAO,oBAAmBvrB,GAAsB,IAAfkmB,IACjCqF,GAAO,sBAAqBvrB,GAAsB,IAAfkmB,IACnCqF,GAAO,uBAAsBvrB,GAAsB,IAAfkmB,IACpCqF,GAAO,mBAAkBvrB,GAAsB,IAAfkmB,IAChCqF,GAAO,qBAAoBvrB,GAAsB,IAAfkmB,IAClCqF,GAAO,sBAAqBvrB,GAAsB,IAAfkmB,IACnCqF,GAAO,sBAAqBvrB,GAAsB,IAAfkmB,IACnCqF,GAAO,qBAAoBvrB,GAAsB,IAAfkmB,IAClCqF,GAAO,yBAAwBvrB,GAAsB,IAAfkmB,IACtCqF,GAAO,sBAAqBvrB,GAAsB,IAAfkmB,IACnCqF,GAAO,sBAAqBvrB,GAAsB,IAAfkmB,IAEnCqF,GAAO,kBAAiBvrB,GAAsB,IAAfkmB,IAEnC,IAAIqM,EAAO,EAiBX,GAhBIhH,GAAO,qBAAoBgH,GAAQ,KACnChH,GAAO,gBAAegH,GAAQ,KAC9BhH,GAAO,iBAAgBgH,GAAQ,KAC/BhH,GAAO,iBAAgBgH,GAAQ,MAE/BhH,GAAO,iBACTgH,GACE,EACA,IACEnxB,KAAK2D,IACH8lB,KAAKoB,QAAQsW,OAAOrO,MACpB3I,GAAO,mBAAqB,GAAK,KAIzCgH,GAAQlH,GAAO,SACXZ,GAAWsB,OAAOY,gBAChBd,GAAW,CACb,MAAMe,EAASf,GAAU,SACV,IAAXe,EAAc2F,GAAQ,KACN,IAAX3F,EAAc2F,GAAQ,IACX,IAAX3F,IAAc2F,GAAQ,MAInCl2B,OAAO6C,KAAK2rB,KAAKgL,OAAO/H,SAASj1B,SACQ,IAA5BgyB,KAAKgL,MAAMh9B,GAAG2qC,YACvBjR,GAAQ1H,KAAKgL,MAAMh9B,GAAG2qC,cAI1BjR,GAAQ,EAAmC,IAA/BvH,GAAY,iBAGxB,IAAIyY,EACFlR,EACA1H,KAAK0I,WACH,EACAhI,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTvrB,GAOJ,OAJAyjC,EAAM5Y,KAAK4W,kBAAkB,kBAAmBgC,GAE5C5Y,KAAK4B,QAAQ,mBAAkBgX,EAAM5Y,KAAKgL,MAAM,iBAAiB5B,OAE9DwP,EAkDgBC,GAAa7Y,KAAK8Y,iBACvC,OAAIJ,EACK,CAACrd,GAAe2E,KAAKgF,UAAW0T,GAElC,CAACrd,GAAe2E,KAAKgF,WAE9B,MAAO,GAqCe+T,CAAuB/qC,GAC3CqvB,GAAcrvB,GAAK,GACfuqC,EAAY,KAAIlb,GAAcrvB,GAAGk4B,MAAQqS,EAAY,IACrDA,EAAY,KAAIlb,GAAcrvB,GAAGg+B,WAAauM,EAAY,OA4DlE,SAASS,GAAqBC,EAAOC,EAAWxR,GAC9C,IAAIyR,EAAiB,EACjB1W,EAAO,EACP2W,EAAW,EACXC,EAAe,EACfC,EACF,EAAI/iC,KAAK6D,IAAI,EAAG7D,KAAKoL,KAAKpL,KAAKqiB,IAAIoH,KAAK0G,SAAWnwB,KAAKgjC,MAAQ,IAClE,KAAOH,EAAWF,GAChBzW,EAAOlsB,KAAK6D,IACV6+B,EACA1iC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,IAAM6+B,EAAQL,EAAQvR,GAC3CwR,EAAYxR,IAGhB0R,EAAW7iC,KAAK6D,IACd6+B,EACA1iC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,KAAO6+B,EAAQ,GAAKL,EAAQvR,GACjDwR,EAAYxR,IAGhB2R,EAAe9iC,KAAKkE,MAAO,EAAI,EAAK,KAAO6+B,EAAQ,GAAKL,EAAQvR,GAChEyR,GAAkB1W,EAClB6W,GAAS,EAEX,MAAO,CAACH,EAAgB1W,EAAM4W,GAmBhC,SAASG,KACP,IAAIN,EAEF,GADA7c,GAEA,GACA,EACAC,GAEF,MAAMmd,EAAc1O,KAChB0O,EAAc,EAAGP,GAAaO,EAC7BP,EAAY,EAEjBtb,GAAsBob,GACpB,EACAE,EACA3c,IAEFmB,GAA+C,EAAzBE,GAAoB,GAAUrB,GACpDoB,GACEC,GAAoB,GAAK,GAAK,GAAK,EAAItB,GAEzCyB,GAA2Bib,GACzB,EACAE,EACA1c,IAEFqB,GACiC,EAA9BE,GAAyB,GAAUvB,GACtCsB,GACEC,GAAyB,GACzB,GACA,GACA,EACAzB,GAEF4B,GAA4B8a,GAC1B,EACY,EAAZE,EACA3c,IAEFyB,GACkC,EAA/BE,GAA0B,GAAU3B,GACvC0B,GACEC,GAA0B,GAC1B,GACA,GACA,EACA5B,GAEF+B,GAAiC2a,GAC/B,EACY,EAAZE,EACA1c,IAEF2B,GACuC,EAApCE,GAA+B,GAAU7B,GAC5C4B,GACEC,GAA+B,GAC/B,GACA,GACA,EACA/B,GAYJ,SAASod,KACP,MAAMtG,EAAW78B,KAAKkE,MAAM44B,KAAKC,MAAQ,KAEzC,GAAKtT,KAAK8Q,EAAI9Q,KAAK8K,IAAO,GAAM,EAAG,CACjC,MAAM6O,EAAa3Z,KAAK4Z,gBAAgB5Z,KAAK6Z,cAIvCC,EAHiBvjC,KAAKkE,MAC1BulB,KAAK4Z,gBAAgB5Z,KAAK6Z,aAAe7Z,KAAKwT,gBAERj9B,KAAKkE,MAAMk/B,GAG7ClG,EAAWL,EAAWhZ,GACtB2f,EACJxjC,KAAK6D,IAAI,EAAG0/B,EAAiBzf,IAA0BoZ,EACzD,IAAK,IAAIzlC,EAAI,EAAGA,EAAIylC,EAAUzlC,IAC5ByrB,GAAkBua,UAAU+F,GAI9B3f,GAAyBgZ,EACzB/Y,GAAyByf,EAGzBrd,GAAmBhD,GAAkB0a,YAAY,IA6HrD,SAAS6F,KACPzc,GAAuB,GACvBE,GAA8B,GAC9BD,GAA+B,GAC/B,MAAMqa,EAAO,GAEbrmC,OAAO6C,KAAK2rB,KAAKmJ,UAAUlG,SAASj1B,IAClC6pC,EAAK/nC,KAAKkwB,KAAKmJ,SAASn7B,OAO1B6pC,EAAKvU,MALW,SAAUzsB,EAAGP,GAC3B,OAAIO,EAAE+tB,MAAQtuB,EAAEsuB,MAAc,EAC1B/tB,EAAE+tB,MAAQtuB,EAAEsuB,OAAe,EACxB,KAITpzB,OAAO6C,KAAKwjC,GAAM5U,SAASj1B,IACzB,MAAMk2B,EAAK2T,EAAK7pC,GAEhB,GAAkB,IAAdk2B,EAAGnD,OAAc,CACnB,IAAI3xB,EAAM,GAEVA,GArDN,SAAsB80B,GACpB,IAAI+V,EAAU,wBACE,aAAZ/V,EAAGrD,OAAqBoZ,GAAW,aAEvC,IAAIC,EAAU,EACTla,KAAKuQ,MAAM4J,SAAQD,EAAU,GAC9BA,IAASD,GAAW,YAExB,IAAIG,KAAEA,GAASlW,EACXA,EAAGmW,eAAcD,EAAOlW,EAAGmW,gBAC/B,MAAMlQ,EAAU,0DAA0DjG,EAAG3C,kBAC7E,MAAO,eAAe0Y,SACrBja,KAAKsa,kBAAkBnQ,EAAS,OAAO,kBAEtCiQ,EAAK,GAAK,yBAAyBA,EAAK,OAAS,yBACjB,IAAVA,EAAK,QAAwB,IAAVA,EAAK,oBAsCrCG,CAAarW,GACJ,aAAZA,EAAGrD,KAAqBrD,IAAgCpuB,EACvC,WAAZ80B,EAAGrD,KAAmBpD,IAA+BruB,EAEhD,WAAZ80B,EAAGrD,MACS,WAAZqD,EAAGrD,MACS,UAAZqD,EAAGrD,OAEHtD,IAAwBnuB,OAchC,SAASorC,KACP,GAAoB,cAAhBxa,KAAKyR,OAAwB,CAC/B,IAAIjhC,EAAuB,GAAjBwvB,KAAKgF,UACXhF,KAAK4B,QAAQ,kBAAiBpxB,GAAO,IACrCwvB,KAAK4B,QAAQ,YAAWpxB,GAAO,KACnCmsB,GAAepmB,KAAK6D,IAAI,GAAI5J,GACxBwvB,KAAKqR,IAAI,gCAA+B1U,IAAgB,IAehE,SAAS8d,KACP9e,GAA2C,IAA7BU,GAAoC,IAClDV,IAAcW,GACd,MAAMmd,EAAc1O,KAChB0O,EAAc,EAAG9d,IAAc8d,EAC9B9d,GAAa,EAClBC,GAAmBW,IAAuC,IAAbZ,IAAqB,GAClEE,GAAwBW,IAAsC,IAAbb,IAAqB,GACtEG,GAAgC,EAAbH,GACnBI,GACEQ,IAA6C,IAAnBT,IAA2B,GACvDE,GACEQ,IAA4C,IAAnBV,IAA2B,GACtDG,GAA4B,EAAbN,GACfO,GAAoC,IAAfD,GAErBE,GAAe,EACf,IAAI/hB,EAAM,EACNnJ,EAAI,EACRO,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IAC7BgyB,KAAKoB,QAAQpzB,GAAGo0B,OAAShoB,IAAKA,EAAM4lB,KAAKoB,QAAQpzB,GAAGo0B,QACpDpC,KAAKoB,QAAQpzB,GAAGo0B,OAAS,IAAGnxB,GAAK,MAEvCO,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,KAE9BgyB,KAAKoB,QAAQpzB,GAAGo0B,OAAShoB,GAAa,IAANnJ,IACjC+uB,KAAKoB,QAAQpzB,GAAGo0B,OAAS,KACD,EAAxBpC,KAAKoB,QAAQpzB,GAAG0zB,MAAYvF,KAE5BA,GAAuC,EAAxB6D,KAAKoB,QAAQpzB,GAAG0zB,MAC/BtF,GAAuBpuB,MAQ7B,SAAS0sC,KACP,IAAIC,EAAa,EACbC,EAAY,EACZlT,EAAO,EAGPhH,GAAO,4BAA2BgH,GAAQ,MAC1ChH,GAAO,iBAAgBgH,GAAQ,MAEnCiT,GAAc,EAA+C,GAA3C3a,KAAKsW,SAAS,2BAChCqE,GAAc3a,KAAK6a,IAAI,oBACvBD,GAAa,EAAuC,GAAnC5a,KAAKsW,SAAS,mBAC/BsE,GAAa5a,KAAK6a,IAAI,mBAGtBte,GAAyBmL,EAAOiT,EAChCne,GAAwBkL,EAAOkT,EAM/Bte,GAAoC,EACD,IAA/B0D,KAAKkR,aAAaC,OAAOlgC,IAC3BqrB,IACE,EAAwC,KAApC0D,KAAKsW,SAAS,qBAkBxB,SAASwE,KACP9d,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAC5B,IAAK,IAAIlvB,EAAI,EAAGA,EAAIgyB,KAAKkF,UAAUj3B,OAAQD,IAAK,CAC9C,IAAIukC,OAAEA,GAAWvS,KAAKkF,UAAUl3B,GAC5BwkC,EAAS,IAKb,GAJIxS,KAAKqR,IAAI,6BAA4BmB,GAAU,MACpB,IAA3BxS,KAAKkF,UAAUl3B,GAAGK,OAAYmkC,GAAU,GAC5CD,GAAUC,EACNxS,KAAKqR,IAAI,mBAAkBkB,GAAU,MACrC3S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAcwQ,GAAU,KACR,IAAXxQ,EAAcwQ,GAAU,IACb,IAAXxQ,IAAcwQ,GAAU,MAEnCvV,IAAuBuV,EACQ,IAA3BvS,KAAKkF,UAAUl3B,GAAGK,OACpB4uB,IAAwBsV,EACpBA,EAASrV,GAAsB,KACjCA,GAAwB,CAACqV,EAAQvkC,MAuBzC,SAAS+sC,KACP7T,KACA4T,KACAL,KACAC,KACAlB,KACAQ,KACAQ,KAnkDAphB,GAAc,IAAIyZ,GAAWtc,EAAYA,EAAYtoB,OAAS,IAC9DorB,GAAY,IAAIwZ,GAAWtc,EAAYA,EAAYtoB,OAAS,IAC5DqrB,GAAmB,IAAIuZ,GAAWtc,EAAYA,EAAYtoB,OAAS,IACnEsrB,GAAa,IAAIsZ,GAAWtc,EAAYA,EAAYtoB,OAAS,IAC7DurB,GAAa,IAAIqZ,GAAWrc,EAAWA,EAAWvoB,OAAS,IAikD3DwrB,GAAoB,IAAIoZ,GAAW,GACnC6G,KACAvG,KACAmF,KACAD,KACA1D,KAKF,MAoImCqG,GApIb,CACpB1U,OAAQ,EACRS,SAAU,EACVC,YAAa,EACbwK,gBAAiB,EACjBxO,WAAY,EACZiY,eAAgB,EAChBxX,WAAY,EACZyX,mBAAoB,EACpBnW,UAAW,EACXD,QAAS,EACToP,WAAY,EACZI,cAAe,EACfO,gBAAiB,EACjBD,aAAc,EACdJ,oBAAqB,EACrBC,sBAAuB,EACvBhF,YAAa,EACbjY,MAAO,EACP2jB,aAAc,EACdC,eAAgB,EAChBC,QAAS,EACTC,QAAS,EACTC,SAAU,IACVC,WAAY,6DACZC,oBAAqB,EACrBC,aAAc,EACdC,aAAc,EACdC,cAAe,IACfC,gBACE,gEACFC,gBAAiB,EACjBC,SAAU,EACVC,SAAU,EACVC,UAAW,IACXC,YACE,oEACFC,UAAW,EACXC,UAAW,EACXC,WAAY,IACZC,aAAc,+DACdC,kBAAmB,EACnBC,WAAY,EACZC,WAAY,EACZC,YAAa,IACbC,cACE,gEACFC,qBAAsB,EACtBC,cAAe,EACfC,cAAe,EACfC,eAAgB,IAChBC,iBACE,6DACFC,wBAAyB,EACzBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,IACnBC,oBACE,8DACF7R,oBAAqB,EACrB8R,YAAa,EACb1N,cAAe,EACfC,oBAAqB,EACrBE,gBAAiB,EACjBE,sBAAuB,EACvBE,gBAAiB,EACjBb,aAAc,EACdnE,YAAa,EACbyB,YAAa,EACbkF,aAAc,EACd1F,YAAa,EACbkB,aAAc,EACdc,gBAAiB,EACjBmP,eAAgB,EAChBC,oBAAqB,EACrB7M,MAAO,EACP8M,gBAAiB,EACjB/K,QAAS,EACTzZ,WAAY,EACZykB,aAAc,EACdC,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACd7lB,MAAO,EACPF,cAAe,EACfQ,eAAgB,EAChBD,YAAa,OACbxC,OAAQ,CACNioB,KAAM,UACNC,MAAO,UACPC,OAAQ,UACRC,OAAQ,UACRC,IAAK,UACLC,OAAQ,UACRC,KAAM,UACNC,KAAM,UACNC,MAAO,WAETnb,cAAe,EACfoB,aAAc,EACdga,QAAS,EACTC,QAAS,EACTC,gBAAiB,EACjBC,aAAc,EACdC,OAAQ,CACNC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,oBAAqB,EACrBC,eAAgB,EAChBC,eAAgB,EAChBC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,EACnBC,qBAAsB,EACtBC,QAAS,EACTC,WAAY,EACZC,SAAU,EACVC,cAAe,EACfC,MAAO,EACPC,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,SAAU,EACVC,MAAO,EACPC,IAAK,EACLC,KAAM,EACNC,QAAS,IAoCsBC,GAvBnC,SAAsCC,GACpC,GAAoB,IAAhBA,EAAmB,CAErB,MAAMC,EAA2B,WAC/B,IACExB,aAAayB,oBAAoBC,OACjC,MAAOrxC,GACP,OAAO,EAET,OAAO,GAIH,iBAAkB1C,OAEb6zC,IACTxB,aAAayB,oBAAoBC,OAEjC1B,aAAayB,oBAJb1xC,QAAQ+pB,IAAI,kDAoBlB,SAAS6nB,KACkB,IAArBhtB,EAAU6S,QACZlnB,EAAE,YAAYnJ,MAAMqV,QAAU,GAC9B+a,MAEAjnB,EAAE,YAAYnJ,MAAMqV,QAAU,OAEhCwb,KA6GF,SAAS4Z,KACPC,cACA3gB,KAAK4gB,eACL5gB,KAAK6gB,kBAELxa,KACAvD,KACAU,KAYF,SAASsd,KACP,IAAI1xC,EAAM,GACV,IAAK,IAAIpB,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,UAAmBymB,EAAO7nB,eAC/BylB,EAAUoC,OAAOA,EAAO7nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,UAAmBymB,EAAO7nB,0BAC/BylB,EAAUoC,OAAOA,EAAO7nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IACjCoB,GAAO,YAAqBymB,EAAO7nB,0BACjCylB,EAAUoC,OAAOA,EAAO7nB,WAG5BoR,EAAE,SAAS/N,YAAcjC,EACzB0zB,KAuBF,SAASie,KACmB,IAAtBttB,EAAU+qB,SAAiBhqB,EAAwB,EACjDgK,GAA0BwiB,MAC5B5hC,EAAE,aAAa6hC,KACb,mEAEF7hC,EAAE,aAAa6hC,KACb,oEAEJ7hC,EAAE,aAAa6hC,KACb,uDAQN,MAAMC,GACJpO,YAAYzkC,EAAM8yC,GAChBz0C,KAAK2B,KAAOA,EACZ3B,KAAKy0C,MAAQA,GAKjB,MAAMC,WAAwBF,GAC5BpO,YAAYzkC,EAAM8yC,EAAOE,EAAOC,EAAMC,EAAQxuC,EAAO,MACnDyuC,MAAMnzC,EAAM8yC,GACZz0C,KAAK20C,MAAQA,EACb30C,KAAK40C,KAAOA,EACZ50C,KAAK60C,OAASA,EACVxuC,IACFrG,KAAKqG,KAAOA,IAclB,MAAM0uC,WAAsBP,GAC1BpO,YAAYzkC,EAAM8yC,EAAOE,EAAOC,GAC9BE,MAAMnzC,EAAM8yC,GACZz0C,KAAK20C,MAAQA,EACb30C,KAAK40C,KAAOA,EACZ,IAAK,IAAItzC,EAAI,EAAGA,EAAI,IAAKA,IACvBtB,KAAK20C,MAAMrzC,GAAK,GAAGA,MAMzB,MAAM0zC,WAA2BR,GAC/BpO,YAAYzkC,EAAM8yC,EAAOE,EAAOC,EAAMpnC,EAAKE,GACzConC,MAAMnzC,EAAM8yC,GACZz0C,KAAK20C,MAAQA,EACb30C,KAAK40C,KAAOA,EACZ50C,KAAKwN,IAAMA,EACXxN,KAAK0N,IAAMA,GAwBf,MAiuBmCunC,GAjuBpB,CAEbrb,OAAQ,IAAI8a,GACV,OACA,aACA,CAAC,iBAAkB,iBACnB,wBACA,GACA,WACEX,QAGJ1Z,SAAU,IAAIqa,GACZ,OACA,aACA,CAAC,gBAAiB,gBAClB,qFACA,GACA,WACEna,QAGJD,YAAa,IAAIoa,GACf,OACA,aACA,CAAC,gCAAiC,+BAClC,8BACA,GACA,WA3rH4B,IAA1B3tB,EAAUuT,aACZ5nB,EAAE,cAAcnJ,MAAMkG,MAAQ,MAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,GAC/B/M,EAAE,QAAQwiC,aAAaxiC,EAAE,cAAeA,EAAE,kBAE1CA,EAAE,cAAcnJ,MAAMkG,MAAQ,OAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,MAC/B/M,EAAE,WAAWwK,YAAYxK,EAAE,gBAE7B0nB,QAsrHA0K,gBAAiB,IAAI4P,GACnB,OACA,aACA,CACE,wBACA,iCACA,0BAEF,+DACA,GAEFje,cAAe,IAAIie,GACjB,OACA,aACA,CAAC,0BAA2B,sBAC5B,kEACA,GACA,WACEte,QAGJyB,aAAc,IAAI6c,GAChB,OACA,aACA,CAAC,yBAA0B,qBAC3B,iEACA,GACA,WACE5d,QAGJR,WAAY,IAAIoe,GACd,OACA,aACA,CAAC,sBAAuB,sBACxB,wBACA,GACA,WACEte,QAGJmY,eAAgB,IAAImG,GAClB,OACA,aACA,CACE,+CACA,gDAEF,4FACA,GACA,WACEte,QAGJW,WAAY,IAAI2d,GACd,OACA,aACA,CACE,yBACA,6BACA,iCAEF,wDACA,GACA,WA/S2B,IAAzB3tB,EAAUgQ,YAEZrkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClCkY,MACkC,IAAzB/P,EAAUgQ,YAEnBrkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClCkY,OAGApkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClC0U,KAAK6gB,sBAwSPhrB,OAAQ,IAvJV,cAA6BqrB,GAC3BpO,YAAYzkC,EAAM8yC,EAAOG,EAAMvuC,GAC7ByuC,MAAMnzC,EAAM8yC,GACZz0C,KAAK40C,KAAOA,EACZ50C,KAAKqG,KAAOA,IAoJZ,QACA,aACA,CACE+qC,KACE,uGACFC,MACE,4FACFC,OACE,yHACFC,OACE,iIACFC,IACE,mFACFC,OACE,wGACFC,KACE,2FACFC,KAAM,yCACNC,MAAO,8CAET,WACEwC,QAGJ5F,mBAAoB,IAAIkG,GACtB,OACA,aACA,CAAC,iCAAkC,iCACnC,+FACA,GACA,WA3TmC,IAAjC3tB,EAAUynB,oBAEZ97B,EAAE,gBAAgBnJ,MAAMgI,SAAW,SACnCmB,EAAE,gBAAgBnJ,MAAMsC,IAAM,OAE9B6G,EAAE,gBAAgBnJ,MAAMgI,SAAW,MA4TrC8mB,UAAW,IAAIqc,GACb,OACA,cACA,CACE,+BACA,8BACA,6CAEF,qGACA,GAEFtc,QAAS,IAAIsc,GACX,OACA,cACA,CAAC,6BAA8B,8BAC/B,kFACA,GAEFlN,WAAY,IAAIkN,GACd,OACA,cACA,CACE,2BACA,2BACA,2BACA,0BACA,0BACA,2BACA,2BACA,4BAEF,4DACA,GAEF9M,cAAe,IAAI8M,GACjB,OACA,cACA,CACE,oCACA,oCACA,qCACA,qCACA,sCAEF,uDACA,GAEFvM,gBAAiB,IAAIuM,GACnB,OACA,cACA,CAAC,mCAAoC,kCACrC,2FACA,GACA,WACEzM,QAGJC,aAAc,IAAIwM,GAChB,OACA,cACA,CACE,mBACA,kBACA,0BACA,gCAEF,qGACA,GAEF5M,oBAAqB,IAAIkN,GACvB,WACA,cACA,oCACA,wMACA,EACA3pB,KAEF0c,sBAAuB,IAAI2M,GACzB,OACA,cACA,CAAC,2BAA4B,sBAC7B,yKACA,GAEF3R,YAAa,IAAI2R,GACf,OACA,cACA,CACE,+CACA,+CAEF,2EACA,GAIF5pB,MAAO,IAAI4pB,GACT,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAEFjG,aAAc,IAAIiG,GAChB,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAEFhG,eAAgB,IAAIgG,GAClB,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,WACEhB,GAAoC3sB,EAAU2nB,mBAGlDC,QAAS,IAAI+F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF9F,QAAS,IAAI8F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF7F,SAAU,IAAIkG,GAAc,MAAO,iBAAkB,GAAI,UACzDjG,WAAY,IAAI4F,GACd,MACA,iBACA,aACA,6DAEF3F,oBAAqB,IAAI2F,GACvB,OACA,iBACA,CAAC,mBAAoB,mBACrB,8DACA,GACA,WACEhB,GAAoC3sB,EAAUgoB,wBAGlDC,aAAc,IAAI0F,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFzF,aAAc,IAAIyF,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFxF,cAAe,IAAI6F,GAAc,MAAO,iBAAkB,GAAI,UAE9D5F,gBAAiB,IAAIuF,GACnB,MACA,iBACA,aACA,sEAEFtF,gBAAiB,IAAIsF,GACnB,OACA,kBACA,CAAC,mBAAoB,mBACrB,yCACA,GACA,WACEhB,GAAoC3sB,EAAUqoB,oBAGlDC,SAAU,IAAIqF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFpF,SAAU,IAAIoF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFnF,UAAW,IAAIwF,GAAc,MAAO,kBAAmB,GAAI,UAC3DvF,YAAa,IAAIkF,GACf,MACA,kBACA,aACA,8DAEFjF,UAAW,IAAIiF,GACb,OACA,mBACA,CAAC,wBAAyB,YAC1B,+BACA,GAEFhF,UAAW,IAAIgF,GACb,OACA,mBACA,CAAC,YAAa,YACd,+BACA,GAEF/E,WAAY,IAAIoF,GAAc,MAAO,mBAAoB,GAAI,UAC7DnF,aAAc,IAAI8E,GAChB,MACA,mBACA,yBACA,uDAEF7E,kBAAmB,IAAI6E,GACrB,OACA,mBACA,CAAC,mBAAoB,mBACrB,oDACA,GACA,WACEhB,GAAoC3sB,EAAU8oB,sBAGlDC,WAAY,IAAI4E,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF3E,WAAY,IAAI2E,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF1E,YAAa,IAAI+E,GAAc,MAAO,mBAAoB,GAAI,UAC9D9E,cAAe,IAAIyE,GACjB,MACA,mBACA,aACA,2DAEFxE,qBAAsB,IAAIwE,GACxB,OACA,oBACA,CAAC,mBAAoB,mBACrB,iDACA,GACA,WACEhB,GAAoC3sB,EAAUmpB,yBAGlDC,cAAe,IAAIuE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFtE,cAAe,IAAIsE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFrE,eAAgB,IAAI0E,GAAc,MAAO,oBAAqB,GAAI,UAClEzE,iBAAkB,IAAIoE,GACpB,MACA,oBACA,aACA,yDAEFnE,wBAAyB,IAAImE,GAC3B,OACA,uBACA,CAAC,mBAAoB,mBACrB,2EACA,GACA,WACEhB,GAAoC3sB,EAAUwpB,4BAGlDC,iBAAkB,IAAIkE,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFjE,iBAAkB,IAAIiE,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFhE,kBAAmB,IAAIqE,GACrB,MACA,uBACA,GACA,UAEFpE,oBAAqB,IAAI+D,GACvB,MACA,uBACA,aACA,mFAIF5V,oBAAqB,IAAI4V,GACvB,OACA,UACA,CACE,2CACA,4CAEF,kDACA,GAEF9D,YAAa,IAAI8D,GACf,OACA,UACA,CACE,iDACA,iDAEF,qDACA,GAEFxR,cAAe,IAAIwR,GACjB,OACA,UACA,CAAC,4BAA6B,4BAC9B,kGACA,GAEFvR,oBAAqB,IAAIuR,GACvB,OACA,UACA,CAAC,mCAAoC,mCACrC,2GACA,GAEFrR,gBAAiB,IAAIqR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,+GACA,GAEFnR,sBAAuB,IAAImR,GACzB,OACA,UACA,CAAC,qCAAsC,qCACvC,kIACA,GAEFjR,gBAAiB,IAAIiR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,qJACA,GAEF9R,aAAc,IAAIoS,GAChB,WACA,UACA,mCACA,gKACA,EACA3pB,KAEFoT,YAAa,IAAIiW,GACf,OACA,UACA,CAAC,kCAAmC,qCACpC,kCACA,GACA,WACElW,QAGJ0B,YAAa,IAAIwU,GACf,OACA,UACA,CAAC,mCAAoC,mCACrC,6CACA,GAEFtP,aAAc,IAAIsP,GAChB,OACA,UACA,CAAC,uBAAwB,uBACzB,oEACA,GAEFhV,YAAa,IAAIgV,GACf,OACA,UACA,CAAC,yBAA0B,yBAC3B,4DACA,GAEF9T,aAAc,IAAI8T,GAChB,OACA,UACA,CAAC,2BAA4B,2BAC7B,yDACA,GAEFhT,gBAAiB,IAAIgT,GACnB,OACA,UACA,CACE,uCACA,uCAEF,iDACA,GAEF7D,eAAgB,IAAI6D,GAClB,OACA,UACA,CAAC,6BAA8B,6BAC/B,kFACA,GAEF5D,oBAAqB,IAAI4D,GACvB,OACA,UACA,CAAC,qCAAsC,qCACvC,+CACA,GAIFzQ,MAAO,IAAIyQ,GACT,OACA,aACA,CAAC,iBAAkB,iBACnB,oCACA,GAEF3D,gBAAiB,IAAI2D,GACnB,OACA,aACA,CAAC,uBAAwB,uBACzB,yHACA,GAEF1O,QAAS,IAAI0O,GACX,OACA,aACA,CAAC,mCAAoC,+BACrC,6CACA,GAEFnoB,WAAY,IAAImoB,GACd,OACA,aACA,CAAC,0BAA2B,uBAC5B,0BACA,GAEF1D,aAAc,IAAI0D,GAChB,OACA,aACA,CAAC,oBAAqB,oBACtB,mEACA,GACA,WAp2B6B,IAA3B3tB,EAAUiqB,aAAoB1d,KAAK6Q,QAAU7a,EAC5CgK,KAAK6Q,QAAU5b,EAAgB4b,WAu2BpC8M,YAAa,IAAIyD,GACf,OACA,aACA,CAAC,iCAAkC,iCACnC,+DACA,GAEFxD,oBAAqB,IAAI8D,GACvB,WACA,aACA,0BACA,8GACA,EACA3pB,KAEF8lB,aAAc,IAAIuD,GAChB,OACA,aACA,CAAC,gBAAiB,gBAClB,4FACA,GAIFppB,MAAO,IAAIopB,GACT,OACA,WACA,CACE,uBACA,SACA,cACA,4BACA,sBACA,wBAEF,uCACA,GACA,WACEV,QAGJ5oB,cAAe,IAAIspB,GACjB,OACA,WACA,CAAC,aAAc,aAAc,cAC7B,mDACA,GACA,WACEV,QAGJpoB,eAAgB,IAAI8oB,GAClB,OACA,WACA,CAAC,4BAA6B,mBAC9B,qDACA,GACA,WACEV,QAGJroB,YAAa,IAAIqpB,GACf,WACA,WACA,2BACA,6KACA,EACA,WAIFnD,QAAS,IAAI6C,GACX,OACA,gBACA,CAAC,0BAA2B,0BAC5B,yDACA,GACA,WAt6BwB,IAAtB3tB,EAAU8qB,QACZ/sC,OAAO6C,KAAKkjB,IAAU0L,SAASj1B,IAC7BupB,GAASvpB,GAAGiI,MAAMqV,QAAU,QAC5BiM,GAASvpB,GAAGiI,MAAMqC,KAAOymB,GAAwB/wB,GAAGoR,EAAEnJ,MAAMqC,KAC5Dif,GAASvpB,GAAGiI,MAAMsC,IAAMwmB,GAAwB/wB,GAAGoR,EAAEnJ,MAAMsC,OAG7D/G,OAAO6C,KAAKkjB,IAAU0L,SAASj1B,GAAOupB,GAASvpB,GAAGiI,MAAMqV,QAAU,YAm6BpEkzB,QAAS,IAAI4C,GACX,OACA,gBACA,CAAC,cAAe,cAChB,2CACA,GACA,WACEL,QAGJtC,gBAAiB,IAAI2C,GACnB,OACA,gBACA,CAAC,oBAAqB,oBACtB,kEACA,GACA,WA33BE3tB,EAAUgrB,iBACZr/B,EAAE,8BAA8BnJ,MAAMqV,QAAU,GAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,KAE9ClM,EAAE,8BAA8BnJ,MAAMqV,QAAU,OAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,WA03BhDozB,aAAc,IAAI0C,GAChB,OACA,gBACA,CAAC,wBAAyB,wBAC1B,mIACA,IAeJ,SAASS,KACP,OAAOxyC,KAAKyyC,UAAU,CACpBC,SAAUtuB,EACVuuB,QAAS,YAmMb,SAASC,KACP,GAAIxmB,KAAyBuE,KAAKkiB,aAAe/mB,GAAW,CAC1D,GACE6E,KAAKkiB,YAAc,IACnBliB,KAAKmiB,aAAaniB,KAAKkiB,aAAaE,IAAI3rC,WAAW4rC,SAAS,aAC5D,CACA,IAAIhvC,EAAS2sB,KAAKmiB,aAAaniB,KAAKkiB,aAAaE,IAC9C3rC,WACA/H,MAAM,mBAAmB,GAC5B,MAAM0zB,EAASpC,KAAKmiB,aAAaniB,KAAKkiB,aAAaE,IAChD3rC,WACA/H,MAAM,sBAAsB,GAC/B,GAAe,MAAX2E,EAEF,GADAA,EAASA,EAAOivC,WAAW,IAAK,IAC5BtiB,KAAKoB,QAAQ/tB,GAAQ+uB,OAASA,EAChC1G,GAAyB,mCACpB,CACL,IAAI6mB,EAAO,EACXhZ,KACA,IAAK,IAAIv7B,EAAI,EAAGA,EAAIo0B,EAAQp0B,IAAK,CAC/B,IAAI0zB,EACF9B,GAAWvsB,GAAQ6uB,UACnBlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAWvsB,GAAQ+uB,OAAS,EAAIxC,GAAWvsB,GAAQ8uB,MAEzDT,EAAQ1B,KAAK4C,oBAAoBhD,GAAWvsB,GAASquB,GACrDA,EAAQnrB,KAAKoL,KAAK+f,GAClB6gB,GAAQ7gB,EACR9B,GAAWvsB,GAAQ+uB,QAAU,EAE/B1G,GAAyB,kBAAkB6mB,QAExC,CACL,IAAIA,EAAO,EACXhZ,KACA,IAAK,MAAMnF,KAAK5yB,OAAO6C,KAAK2rB,KAAKoB,SAAU,CAEzC,GADA/tB,EAAS+wB,EACLpE,KAAKoB,QAAQ/tB,GAAQ+uB,OAASA,EAAQ,CACxC1G,GAAyB,+BACzB,MAEA,IAAK,IAAI1tB,EAAI,EAAGA,EAAIo0B,EAAQp0B,IAAK,CAC/B,IAAI0zB,EACF9B,GAAWvsB,GAAQ6uB,UACnBlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAWvsB,GAAQ+uB,OAAS,EAAIxC,GAAWvsB,GAAQ8uB,MAEzDT,EAAQ1B,KAAK4C,oBAAoBhD,GAAWvsB,GAASquB,GACrDA,EAAQnrB,KAAKoL,KAAK+f,GAClB6gB,GAAQ7gB,EACR9B,GAAWvsB,GAAQ+uB,QAAU,EAGjC1G,GAAyB,kBAAkBjE,GAA4B8qB,OAI7E9mB,GAAuBuE,KAAKkiB,aAkBhC,SAASM,GAAmBnhB,EAAKyI,GAC/BP,KACa,IAATO,EAAY9O,GAAUqG,EACR,IAATyI,EAAY7O,GAAUoG,EACb,IAATyI,IAAY5O,GAAUmG,GAE/B,MAAM8W,EAAwBxd,GAO9B,OANAsa,KAEAkC,KACIgB,IAA0Bxd,IAC5Bsa,KAEK5Z,GAAe2E,KAAKgF,UAoD7B,SAASyd,KAEP7iB,GAAa,GACbpuB,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC4xB,GAAW5xB,GAAKu6B,GAAoBv6B,MAItC6xB,GAAc,GACdruB,OAAO6C,KAAK2rB,KAAKmJ,UAAUlG,SAASj1B,IAClC6xB,GAAY7xB,GAAKi7B,GAAYj7B,MAI/B8xB,GAAkB,GAClBtuB,OAAO6C,KAAK2rB,KAAKuH,cAActE,SAASj1B,IACtC8xB,GAAgB9xB,GAAKq5B,GAAgBr5B,MAEvCu7B,KAMF,IAAImZ,IAAiB,EAcrB,SAASC,GAAM1gC,EAAM2gC,GAGM,IAAtBnvB,EAAUmvB,IAA0B,IAAT3gC,IAAiC,IAAnBygC,IACjC,IAATzgC,GAEA7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,MACtB,IAAT7I,GACF7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,SACnCu3B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAK8K,MAEf+X,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAK8K,MAEC,IAAT7oB,GACT7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,IACnC+3B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAO5iB,KAAK8K,MACG,IAAT7oB,IAAY7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,QAc5D,SAASw3B,GAAUC,EAAKC,EAAWC,GAEjC,GAA6B,IAAzBxvB,EAAUuvB,KAAuC,IAAnBN,GAA0B,CAE1D,MAAMQ,EAAQ,IAAIC,UAAUJ,GACxBtvB,EAAU0nB,aACZ+H,EAAME,OAAU3vB,EAAUwvB,GAAa,KAAQjjB,KAAKojB,OAAS,KAC1DF,EAAME,OAAS3vB,EAAUwvB,GAAa,IAC3CC,EAAMG,QAoFV,SAASC,GAAmBC,EAAcC,EAAOC,GAGjB,IAA5BhwB,EAAU8vB,IACmB,WAA7Bj3C,SAASo3C,kBACU,IAAnBhB,IAIA,IAAI5D,aAAa0E,EAAO,CAAEt2B,KAAMu2B,EAASE,MAFtB,yDA2QvB,SAASC,KAKP,GAJIvsB,KAAoB2I,KAAK6jB,WAC3BxsB,GAAkB2I,KAAK6jB,SAjdrB7jB,KAAK6jB,UACPzkC,EAAE,QAAQnJ,MAAMkW,OAAS,MACA,IAArBsH,EAAU6S,SAAclnB,EAAE,YAAYnJ,MAAMqV,QAAU,QAC/B,IAAvBmI,EAAUsT,WAAgB3nB,EAAE,cAAcnJ,MAAMqV,QAAU,UAE9Dm1B,KACAxZ,MAEFN,OA4cK3G,KAAK6jB,UAAiC,IAArB7jB,KAAK8jB,YAAmB,CAExCjwB,IAAiBriB,OAAO6C,KAAK2rB,KAAK+jB,MAAM91C,SAC1Cw0C,KACA1H,KACAlnB,EAAeriB,OAAO6C,KAAK2rB,KAAK+jB,MAAM91C,QAIpCktB,KACFmd,KA1rBAtY,KAAKqR,IAAI,wBAjBb9H,KACA1J,GAAY,uBAAuBkB,OAAS,EAC5CkU,KAgBE5Y,GAfKhB,IAgBAgB,GAA6B2D,KAAKgF,UA2rBrC0V,KACAD,KACAT,KACAR,KACAyI,KAxfN,WACE,IAAK,IAAI5gB,EAAM,EAAGA,EAAM,GAAIA,GAAO,EACjC,IAAK,IAAIyI,EAAO,EAAGA,EAAO,EAAGA,GAAQ,EACnC7K,GAAUoC,GAAKyI,GAAQ0Y,GAAmBnhB,EAAKyI,GAsf/Cka,GAEAxJ,KA/nBN,WACE,IAAIyJ,EAAY,EAEhB,GAAIjkB,KAAKoB,QAAQ8iB,KAAKpiB,eAAgB,CACpC,MAAMqiB,EAAcnkB,KAAKoB,QAAQ8iB,KAAK/iB,SAASijB,MAC/C,IAAIC,EAAW,EACf7yC,OAAO6C,KAAK8vC,GAAalhB,SAASj1B,IAChC,MAAMs2C,EAAaH,EAAYn2C,GAC/Bq2C,GAAYC,EAAWC,MAAQD,EAAW9zC,OAE5CyzC,GAAaI,EAAWrkB,KAAKwkB,oBAG/BP,GAlEF,WACE,IAAIA,EAAY,EAEhB1a,KAGA,IAAIkb,EAAuB,EACL,IAAlB3pB,IAAyC,KAAlBA,KACzB2pB,GAAwB,GAEH,IAAnB1pB,IAA2C,KAAnBA,KAC1B0pB,GAAwB,GAE1B3pB,GAAgB,EAChBC,GAAiB,GAGjB,IAAK,IAAI/sB,EAAI,EAAGA,EAAIy2C,IAAwBz2C,EAAG,CAC7C,IAAI02C,EAAkB,SACtBlzC,OAAO6C,KAAKurB,IAAYqD,SAASmB,IAC3BxE,GAAWwE,GAAGhC,OAAS,IACzBsiB,EAAkBtgB,MAGtBxE,GAAW8kB,GAAiBtiB,QAAU,EACtC5H,IAAqB,EAevB,OAXAhpB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B,MAAMk2B,EAAKtE,GAAW5xB,GACtBi2C,GAAajiB,GACXhC,KAAKoB,QAAQ8C,EAAG3xB,MAChBytB,KAAKoB,QAAQpzB,GAAGk0B,UAChBgC,EAAG9B,OACHpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB+B,EAAG9B,WAIA6hB,EA0BMU,GACb3lB,GAAqBilB,EAknBjBW,GAEAzpB,GAAY,GAId,MAAM0pB,EAAe7kB,KAAKsW,SAAS,kBAAoB,GAClD/b,IAAqBsqB,GACxBtqB,IAAoB,EACpBD,GAA2B,GAClBC,KAAsBsqB,IAC/BtqB,IAAoB,EACpBD,GAA2B,GAGzBA,KACF+d,KACA/d,GAA2B,GAnwBjC,WAEEwgB,KAEAnG,KAzCF,WACExX,GAA2B,EAC3B,IAAIoJ,EAAQ,EACZ/0B,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACH,IAA5BgyB,KAAKkF,UAAUl3B,GAAGgkC,QAAazL,GAAS,MAE9C,IAAIue,EAAU,EACd,GAAIllB,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAc+iB,GAAW,KACT,IAAX/iB,EAAc+iB,GAAW,IACd,IAAX/iB,IAAc+iB,GAAW,MAEpC1nB,GAAyBmJ,EACzBpJ,GACEoJ,GACS,IAARA,EAAe,MACuB,IAAtCvG,KAAKqR,IAAI,2BAAoC,IACjB,IAA5BrR,KAAKqR,IAAI,iBAA0B,GACpCyT,EAuBFC,GACA5R,KACAuG,KAEA,MAAMsL,EACJhlB,KAAKilB,oBACH1uC,KAAKkE,MAAMulB,KAAK4Z,gBAAgB5Z,KAAK6Z,aAAe7Z,KAAKwT,gBACvD,IAEHxT,KAAKwT,cAAgBxT,KAAK6Z,cAC7Bnb,GAA4B7F,GAAWmsB,EAAgBngB,MAuvBrDqgB,GAjSFvwB,EAA+B,EAC/BoK,GAA0B,GAC1BvtB,OAAO6C,KAAK2rB,KAAKmlB,UAAUliB,SAASj1B,IAClC+wB,GAAwBiB,KAAKmlB,SAASn3C,GAAGuzB,IAAMvB,KAAKmlB,SAASn3C,GACzDgyB,KAAKmlB,SAASn3C,GAAGo3C,WAAuC,WAA1BplB,KAAKmlB,SAASn3C,GAAGK,OACjDmwB,GAA4BwB,KAAKmlB,SAASn3C,GAC1C2mB,GAAgC,MAWpCnjB,OAAO6C,KAAKkjB,IAAU0L,SAASj1B,SACa,IAA/B+wB,GAAwB/wB,KACjCupB,GAASvpB,GAAGmf,WAAWrc,YAAYymB,GAASvpB,WACrCupB,GAASvpB,OAGhBwmB,IAA0BwL,KAAKkR,aAAaC,OAAOlgC,GACrDujB,EAAwBwL,KAAKkR,aAAaC,OAAOlgC,EAC7CujB,IACEC,EAA+BE,IACjCguB,GAAM,EAAG,WACTG,GAAUrvB,EAAU+nB,WAAY,UAAW,YAC3C8H,GACE,iBACA,wBACA,+CAIJ9xC,OAAO6C,KAAK2rB,KAAKmlB,UAAUliB,SAASj1B,SACW,IAAlCupB,GAASyI,KAAKmlB,SAASn3C,GAAGuzB,KAnH7C,SAAuB8jB,GACrB,MAAM9G,EAAUjyC,SAAS4D,cAAc,OACvCquC,EAAQhd,GAAK,UAAU8jB,EAAO9jB,KAC9Bgd,EAAQtoC,MAAMkG,MAAQ,OACtBoiC,EAAQtoC,MAAMmG,OAAS,OACvBmiC,EAAQtoC,MAAMgI,SAAW,WACzBsgC,EAAQtoC,MAAMyU,OAAS,cACvB6zB,EAAQtoC,MAAMuW,UAAY,SAC1B+xB,EAAQtoC,MAAMyW,WAAa,OAC3B6xB,EAAQtoC,MAAMqvC,WAAa,2BAC3B/G,EAAQtoC,MAAMuvB,SAAW,OACzB+Y,EAAQtoC,MAAM+U,OAAS,UACvBuzB,EAAQtoC,MAAMqV,QAAU,QACE,IAAtBmI,EAAU8qB,UAAeA,EAAQtoC,MAAMqV,QAAU,QACrDizB,EAAQtoC,MAAMqC,KAAO+sC,EAAOjmC,EAAEnJ,MAAMqC,KACpCimC,EAAQtoC,MAAMsC,IAAM8sC,EAAOjmC,EAAEnJ,MAAMsC,IACnCgmC,EAAQgH,QAAU,WAChBF,EAAOG,OAETjH,EAAQkH,YAAc,WACpBJ,EAAOjmC,EAAEnJ,MAAMyvC,OACb,gEACFL,EAAOjmC,EAAEnJ,MAAM0vC,aACb,iEAEJpH,EAAQqH,WAAa,WACnBP,EAAOjmC,EAAEnJ,MAAMyvC,OAAS,GACxBL,EAAOjmC,EAAEnJ,MAAM0vC,aAAe,IAGhCpuB,GAAS8tB,EAAO9jB,IAAMgd,EACtBn/B,EAAE,YAAYwK,YAAY20B,GAqFlBsH,CAAc7lB,KAAKmlB,SAASn3C,QAIlC+yC,KACAtsB,EAA+BE,EACM,IAAjCA,IAAoC6J,GAA4B,IACrC,IAAtB/K,EAAU8qB,SAAiB/pB,GACpChjB,OAAO6C,KAAKkjB,IAAU0L,SAASj1B,IAC7BupB,GAASvpB,GAAGiI,MAAM6U,QAAUiU,GAAwB/wB,GAAGoR,EAAEnJ,MAAM6U,QAC/DyM,GAASvpB,GAAGiI,MAAM6vC,UAChB/mB,GAAwB/wB,GAAGoR,EAAEnJ,MAAM6vC,UACrCvuB,GAASvpB,GAAGqD,YAAckF,KAAKoL,KAC7Bod,GAAwB/wB,GAAG+3C,KAAO/lB,KAAK8K,QAiF3CxW,KACC0L,KAAKgmB,cAA2C,YAA3BhmB,KAAKgmB,aAAa33C,QAExCimB,EACE0L,KAAKgmB,cAA2C,YAA3BhmB,KAAKgmB,aAAa33C,KACrCimB,IACFquB,GAAM,EAAG,gBACTG,GAAUrvB,EAAUooB,gBAAiB,eAAgB,iBACrDyH,GACE,sBACA,uBACA,kDAzCFjvB,IAAyB2L,KAAKkR,aAAaQ,SAASN,UACtD/c,EAAuB2L,KAAKkR,aAAaQ,SAASN,QAClD5/B,OAAO6C,KAAK2rB,KAAKmlB,UAAUliB,SAASj1B,IAC9BgyB,KAAKmlB,SAASn3C,GAAGo3C,WAAuC,aAA1BplB,KAAKmlB,SAASn3C,GAAGK,OACjDowB,GAAwBuB,KAAKmlB,SAASn3C,OAG1C20C,GAAM,EAAG,YACTG,GAAUrvB,EAAUyoB,YAAa,WAAY,aAC7CoH,GACE,kBACA,oBACA,0CAtNFtjB,KAAKoB,QAAQiM,KAAKvL,gBAClBvN,IAAuByL,KAAKoB,QAAQiM,KAAKlM,SAAS8kB,WAEvB,IAAvB1xB,GAA4BA,EAAqB8e,KAAKC,QACxDqP,GAAM,EAAG,aACTG,GAAUrvB,EAAU6oB,aAAc,YAAa,eAEjD/nB,EAAqByL,KAAKoB,QAAQiM,KAAKlM,SAAS8kB,UAiKpD,WACE,GACEjmB,KAAKoB,QAAQ,gBAAgBU,gBACH,IAA1BrO,EAAUkqB,YACV,CACA,MAAMxc,SAAEA,GAAanB,KAAKoB,QAAQ,gBAC9BD,EAAS0J,MAAQ1J,EAAS0L,OAAQnY,GAAmB,EAC/CA,IACRA,GAAmB,EACnBiuB,GAAM,EAAG,cACTG,GAAUrvB,EAAUkpB,cAAe,aAAc,eACjD2G,GACE,oBACA,mBACA,6CAsNJ4C,GAxIJ,WACE,GAAIlmB,KAAKsI,WAAa,EAAG,CACvB,IAAI6d,EAAmB,EACvB30C,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACH,IAA5BgyB,KAAKkF,UAAUl3B,GAAGgkC,QAAamU,GAAoB,MAErDA,EAAmBvxB,GACrBA,EAAoBuxB,EAElBA,IAAqBnmB,KAAKomB,mBAC1B3yB,EAAUypB,iBAEVyF,GAAM,EAAG,oBAETA,GAAM,EAAG,iBAGTwD,IAAqBnmB,KAAKomB,mBAC1B3yB,EAAU0pB,iBAEV2F,GACErvB,EAAU4pB,oBACV,mBACA,qBAGFyF,GACErvB,EAAUupB,iBACV,gBACA,kBAIFmJ,IAAqBnmB,KAAKomB,mBAC1B3yB,EAAUwpB,wBAEVqG,GACE,0BACA,4BACA,sDAGFA,GACE,uBACA,sBACA,gCAIJ1uB,EAAoBuxB,GAwFtBE,IAmBJ,SAASC,KACP,MAAMC,EAAaC,YACjBC,SAASC,aAAaC,QAAQ,sBAAsB9xC,MAAM,SAAS,IAE/D+xC,EAAoBL,EAAW73C,MAAM,wBAC3C,GAA0B,OAAtBk4C,EAA4B,CAC9B,MAAMC,EAAgBN,EAAW3xC,QAC/BgyC,EAAkB,GAClB,iBAAiB/E,QAEnB6E,aAAaI,QACX,oBACAzU,OAAO,GAAG0U,YAAYF,aAS5B,SAASG,GAAWjF,GAKlB,QAHqC,IAA1B2E,aAAaO,iBACfP,aAAaO,cAEL74C,IAAb2zC,EAAwB,CAC1BtuB,EAAYsuB,EAGZ,IAAImF,GAAM,EACV11C,OAAO6C,KAAK2mC,IAAiB/X,SAASj1B,SACR,IAAjBylB,EAAUzlB,IACnBk5C,GAAM,EACNzzB,EAAUzlB,GAAKgtC,GAAgBhtC,IAChB,WAANA,GAAwB,WAANA,GACI,IAA3BA,EAAEkD,QAAQ,YAERuiB,EAAUzlB,IAAM,GAAKylB,EAAUzlB,GAAK2zC,GAAa3zC,GAAGqzC,MAAMpzC,SAE5Di5C,GAAM,EACNzzB,EAAUzlB,GAAKgtC,GAAgBhtC,IAEA,iBAAjBylB,EAAUzlB,KAE1Bk5C,GAAM,EACNzzB,EAAUzlB,GAAKgtC,GAAgBhtC,IAElB,WAANA,EACTwD,OAAO6C,KAAK2mC,GAAgB2D,QAAQ1b,SAASmB,SAEd,IAApB3Q,EAAUzlB,GAAGo2B,IAClB3Q,EAAUzlB,GAAGo2B,IAAM,GAAK3Q,EAAUzlB,GAAGo2B,GAAK,IAE5C8iB,GAAM,EACNzzB,EAAUzlB,GAAGo2B,GAAK4W,GAAgBhtC,GAAGo2B,OAKzC5yB,OAAO6C,KAAK2mC,GAAgBnlB,QAAQoN,SAASmB,SAEd,IAApB3Q,EAAUzlB,GAAGo2B,IACO,iBAApB3Q,EAAUzlB,GAAGo2B,KAEpB8iB,GAAM,EACNzzB,EAAUzlB,GAAGo2B,GAAK4W,GAAgBhtC,GAAGo2B,UAKzC8iB,GAAKZ,KACT1C,KACApyC,OAAO6C,KAAK2mC,IAAiB/X,SAASj1B,IAC1B,WAANA,QAAkD,IAAzB2zC,GAAa3zC,GAAG+E,MAC3C4uC,GAAa3zC,GAAG+E,eAKpBi0C,GAAWhM,IAyGf,SAASmM,KACP31C,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IAC/BgyB,KAAKkF,UAAUl3B,GAAGukC,OAAS,GAAgC,IAA3BvS,KAAKkF,UAAUl3B,GAAGK,OACpD2xB,KAAKkF,UAAUl3B,GAAGo5C,GAAK,MA4C7B,SAASC,GAAch5C,EAAMkE,GAC3B,GAAa,MAATlE,EAAc,CAIhB,GAFA+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQ7uB,GAAM43B,UAEd,IAA1B1W,EAAU6pB,YAAmB,CAC/B,MAAMgK,EAAavS,GACjB/U,KAAKoB,QAAQ7uB,GACbytB,KAAKoB,QAAQ7uB,GAAM2vB,UACnB,EACAlC,KAAKoB,QAAQ7uB,GAAM4vB,KACnBnC,KAAKoB,QAAQ7uB,GAAM6vB,QAEfmlB,EAAiBD,EAAatnB,KAAKoB,QAAQ7uB,GAAMs3B,aACnD0d,EAAiB,IACnBnoC,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM,gBAChB6C,KACC,wBAAwB+f,GAA4B8vB,UACnB,IAA/BhxC,KAAKkE,MAAM8sC,GAAwB,SAAW,+BAE9CruB,IACGouB,EAAatnB,KAAKoB,QAAQ7uB,GAAMs3B,eAC9B7J,KAAKoB,QAAQ7uB,GAAMi1C,eAAiBxnB,KAAKynB,gBAC5CtuB,iBAKU,IAAlB6G,KAAK+C,UASP3jB,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM4iB,GAA4BuI,KAAKoB,QAAQ7uB,GAAMk0B,YAC/D/uB,KACC+f,IACGuI,KAAKoB,QAAQ7uB,GACdytB,KAAKoB,QAAQ7uB,GAAM2vB,UACnBlC,KAAKoB,QAAQ7uB,GAAM6vB,OACnBpC,KAAKoB,QAAQ7uB,GAAM4vB,KACnBnC,KAAK0C,QACL,WAIH,GAAa,MAATr0B,EAAc,CAEvB,IAAK2xB,KAAKiE,gBAAgB1xB,GAAO,MAAO,GACxC6M,EAAE,WAAWoM,UAAYwU,KAAK0nB,aAC5B1nB,KAAKiE,gBAAgB1xB,GACrB,aAEgB,MAATlE,EAAc+Q,EAAE,WAAWoM,UAAYwU,KAAK2nB,cAErC,MAATt5C,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQ,gBAAgBD,SAASymB,aAC7Dr1C,EADuBytB,GAIT,MAAT3xB,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKyX,YAAY,GAAGtW,SAAS0mB,YACpDt1C,EAAK,GACLA,EAAK,GAFkBytB,GAKT,OAAT3xB,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKyX,YAAY,GAAGtW,SAAS2mB,YAAY,EAAzC9nB,GACT,OAAT3xB,EAAe+Q,EAAE,WAAWoM,UAAY,GAC/B,QAATnd,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQF,OAAOC,SAAS4mB,WAAWx1C,EAAxCytB,GACT,QAAT3xB,IACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQF,OAAOC,SAAS6mB,YACpDz1C,EAAK,GADkBytB,IAK3B,GACY,MAAT3xB,GAAiC,IAAjB2xB,KAAK+C,SACb,MAAT10B,GACS,MAATA,GACS,MAATA,GACU,MAATA,IAAiB2xB,KAAK3rB,KAAK,KACnB,OAAThG,GACS,OAATA,GACS,QAATA,GACU,QAATA,IAA+B,IAAbkE,EAAK,GACxB,CACA,MAAM01C,EAAO37C,SAAS4D,cAAc,OACpC+3C,EAAK1mB,GAAK,gBACVniB,EAAE,WAAWwK,YAAYq+B,GAS3B,OALA/wB,EAAc7oB,EACd8oB,GAAc5kB,EAEd64B,KAEOhsB,EAAE,WAAWoM,UA6GtB,SAAS08B,KACHloB,KAAKoB,QAAQ,gBAAgBU,gBAC/BtwB,OAAO6C,KAAK2rB,KAAKoB,QAAQ,gBAAgBD,SAASwL,YAAY1J,SAC3Dj1B,IAC4C,OAAvCoR,EAAE,gBAAgBpR,KAAKy3C,cACzB1wB,EAAsB/mB,GAAKoR,EAAE,gBAAgBpR,KAAKy3C,YAClDrmC,EAAE,gBAAgBpR,KAAKy3C,YAAc,WACnCzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,IAAK,GAAGr5C,OAE/B,QAEFgyB,KAAKmK,QAAQie,cAoBzB,SAASC,KACP,IACGl0B,GACD6L,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,SAAEA,GAAanB,KAAKoB,QAAQ,gBAClCnN,EAAqBkN,EAAS3b,KAC9Bwa,KAAKoB,QAAQ,gBAAgBD,SAAS3b,KAAO,WAC3CyO,IAC8B,IAA1BR,EAAUkqB,aAAqBxc,EAAS0J,MAAQ1J,EAAS0L,SAC3D1L,EAASmnB,cAAc98B,WAAa,KAAKqN,GACvC4R,GACEtJ,EAAS0J,MACT1J,EAAS0L,OACT1L,EAAS0L,cAKjB1Y,GAA+B,GAkCnC,SAASo0B,MA3BT,WACE,IACGr0B,GACD8L,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,SAAEA,GAAanB,KAAKoB,QAAQ,gBAClCrN,EAAuBoN,EAASqnB,OAChCx0B,EAA0B,IAAIvkB,SAC5B,UAAU0xB,EAASqnB,OAChB/xC,WACA5B,MAAM,SACN6C,KAAK,8CAEVsoB,KAAKoB,QAAQ,gBAAgBD,SAASqnB,OAAS,WAC7Cx0B,IACAk0B,KACA/zB,GAA+B,EAC/Bk0B,KAEAn0B,GAAiC,IASrCu0B,GACAJ,KAiJF,IAAIt7C,GAAUkmB,EAAoB,KAC9By1B,GAA+Bz1B,EAAoBhiB,EAAElE,IA+OzD,MAAM47C,GAA6B,WA8BnC,SAASC,GAAmBhG,GACG,OAAzBxjC,EAAE,SAASwjC,OACbxjC,EAAE,SAASwjC,UAAep3B,UAAY,GAAGpM,EAAE,SAASwjC,KAAUxxC,SAC9DqiB,EAAUmvB,GAAUrsC,KAAKC,MAAM4I,EAAE,SAASwjC,KAAUxxC,QAEtDk1C,KAQF,SAASuC,GAAajG,GACpBnvB,EAAUkrB,OAAOiE,IAAW,EACxBnvB,EAAUkrB,OAAOiE,GAAU,IAAGnvB,EAAUkrB,OAAOiE,GAAU,GAC7D0D,KAiBF,SAASwC,GAAY3vB,EAAMypB,GACzB,MAAMte,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,QAChB61B,EAAIruB,MAAMwK,QAAU,WACpB6jB,EAAIruB,MAAM6U,QAAU,MACpBwZ,EAAIruB,MAAMuvB,SAAW,OACrBlB,EAAIruB,MAAMqvC,WAAa,2BACvBhhB,EAAI1a,YAAYtd,SAASqgB,eAAe,GAAGwM,OAC3C,MAAM4vB,EAAOz8C,SAAS4D,cAAc,QAiBpC,OAhBA64C,EAAK9yC,MAAM+U,OAAS,UACpB+9B,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK9yC,MAAMmG,OAAS,OACpB2sC,EAAK9yC,MAAMkG,MAAQ,OACnB4sC,EAAK9yC,MAAMsU,aAAe,MAC1Bw+B,EAAK9yC,MAAMuW,UAAY,SACvBu8B,EAAK9yC,MAAM4U,gBAAkB,UAC7Bk+B,EAAK9yC,MAAM2F,MAAQ,QACnBmtC,EAAK9yC,MAAMuvB,SAAW,OACtBujB,EAAK9yC,MAAMyvB,cAAgB,SAC3BqjB,EAAK13C,YAAcoiB,EAAUkrB,OAAOiE,GAAU,IAAM,IACpDmG,EAAKxD,QAAU,WACbsD,GAAajG,GACb5iB,KAAK2S,cAEPrO,EAAI1a,YAAYm/B,GACTzkB,EAYT,SAAS0kB,GAAa36C,EAAMkE,EAAM4mB,EAAM+Y,GACtC,MAAM5N,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,UAEhB,MAAMw6C,EAAc38C,SAAS4D,cAAc,KAG3C,GAFA+4C,EAAY53C,YAAckB,EAC1B+xB,EAAI1a,YAAYq/B,GACH,gBAAT56C,EAAwB,CAC1Bi2B,EAAI71B,UAAY,UAChB61B,EAAI1a,YAAYtd,SAASqgB,eAAe,MAExC,MAAMwd,EAAU79B,SAAS4D,cAAc,QACvCi6B,EAAQyb,WAAa,WACnB5lB,KAAKmK,QAAQnlB,QAEfmlB,EAAQsb,YAAc,WACpBzlB,KAAKmK,QAAQ3kB,KAAK9Y,KAAM2lC,OAAOvc,EAAYoc,GAAa1mB,aAE1D2e,EAAQl0B,MAAM+U,OAAS,UACvBmf,EAAQl0B,MAAMqV,QAAU,eACxB6e,EAAQl0B,MAAMmG,OAAS,OACvB+tB,EAAQl0B,MAAMkG,MAAQ,OACtBguB,EAAQl0B,MAAMsU,aAAe,MAC7B4f,EAAQl0B,MAAMuW,UAAY,SAC1B2d,EAAQl0B,MAAM4U,gBAAkB,UAChCsf,EAAQl0B,MAAM2F,MAAQ,QACtBuuB,EAAQl0B,MAAMuvB,SAAW,MACzB2E,EAAQl0B,MAAMyvB,cAAgB,SAC9ByE,EAAQ94B,YAAc,IACtBizB,EAAI1a,YAAYugB,GAIlB,OAFA7F,EAAI1a,YAAYtd,SAASqgB,eAAe,OACxC2X,EAAI1a,YAAYuP,GACTmL,EAQT,SAAS4kB,GAAcC,GACrB,MAAMC,EAAO98C,SAAS+8C,yBACtBD,EAAKx/B,YAAYtd,SAASqgB,eAAe,GAAGw8B,EAAYl7C,YACxD,MAAM86C,EAAOz8C,SAAS4D,cAAc,QACpC64C,EAAKnD,WAAa,WAChB5lB,KAAKmK,QAAQnlB,QAEf,MAAMktB,EAAc5lC,SAAS4D,cAAc,OACrCo5C,EAAUh9C,SAAS4D,cAAc,OACvCo5C,EAAQrzC,MAAMm8B,SAAW,QACzBkX,EAAQrzC,MAAMo0B,aAAe,MAC7B,MAAMmZ,EAAQl3C,SAAS4D,cAAc,OA4BrC,OA3BAszC,EAAM/0C,UAAY,OAClB+0C,EAAMvtC,MAAMo0B,aAAe,MAC3BmZ,EAAMvtC,MAAMuW,UAAY,SACxBg3B,EAAMnyC,YAAc,UACpBi4C,EAAQ1/B,YAAY45B,GACpBhyC,OAAO6C,KAAK80C,GAAalmB,SAASj1B,IAChC,MAAMs2B,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAI1a,YAAYtd,SAASqgB,eAAew8B,EAAYn7C,KACpDs7C,EAAQ1/B,YAAY0a,MAEtB4N,EAAYtoB,YAAY0/B,GACxBP,EAAKtD,YAAc,WACjBzlB,KAAKmK,QAAQ3kB,KAAK9Y,KAAM2lC,OAAOH,EAAY1mB,aAE7Cu9B,EAAK9yC,MAAM+U,OAAS,UACpB+9B,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK9yC,MAAMmG,OAAS,OACpB2sC,EAAK9yC,MAAMkG,MAAQ,OACnB4sC,EAAK9yC,MAAMsU,aAAe,MAC1Bw+B,EAAK9yC,MAAMuW,UAAY,SACvBu8B,EAAK9yC,MAAM4U,gBAAkB,UAC7Bk+B,EAAK9yC,MAAM2F,MAAQ,QACnBmtC,EAAK9yC,MAAMuvB,SAAW,MACtBujB,EAAK9yC,MAAMyvB,cAAgB,SAC3BqjB,EAAK13C,YAAc,IACnB+3C,EAAKx/B,YAAYm/B,GACVK,EA8tBT,SAASG,GAAa/F,GACpB,MAAMgG,EAAQl9C,SAAS4D,cAAc,OAiCrC,GAhCAs5C,EAAM/6C,UAAY,aAClB+6C,EAAM5/B,YAAY45B,GAElBgG,EAAM5/B,YAAYk/B,GAAY,gBAAiB,UAC3Cr1B,EAAUkrB,OAAOgB,OACnB6J,EAAM5/B,YAhtBV,WAEE,MAAM6/B,EAAkBzpB,KAAKsW,SAAS,oBAClC,2CACA,6BAEEoT,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQj7C,UAAY,sBAEpB,MAAMk7C,EACJ3pB,KAAK0G,QAAUvB,KAAuBxJ,GAAanG,EAAWH,EAC1Du0B,EACJ5pB,KAAK0G,QAAUvB,KAAuBxJ,GAClC9C,IACG8C,IAAcqE,KAAK0G,QAAUvB,OAAyBN,MAEzD,GACAglB,EAAev9C,SAAS+8C,yBACxBS,EAAex9C,SAAS4D,cAAc,QAK5C,GAJA45C,EAAa7zC,MAAMg0B,WAAa,OAChC6f,EAAar7C,UAAYymB,EAAey0B,EACxCG,EAAaz4C,YAAcomB,GAA4BkE,IACvDkuB,EAAajgC,YAAYkgC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgBz9C,SAAS4D,cAAc,SAC7C65C,EAAc14C,YAAc,KAAKu4C,KACjCC,EAAajgC,YAAYmgC,GAE3BL,EAAQ9/B,YACNo/B,GACE,cACA,4BACAa,EACAJ,IAIJ,MAAMO,EACJhqB,KAAK0G,QAAUvB,KAAuBrJ,GAClCtG,EACAH,EACA40B,EACJjqB,KAAK0G,QAAUvB,KAAuBrJ,GAClCjD,IACGiD,IAAoBkE,KAAK0G,QAAUvB,OAAyBN,MAE/D,GACAqlB,EAAmB59C,SAAS+8C,yBAC5Bc,EAAmB79C,SAAS4D,cAAc,QAKhD,GAJAi6C,EAAiBl0C,MAAMg0B,WAAa,OACpCkgB,EAAiB17C,UAAYymB,EAAe80B,EAC5CG,EAAiB94C,YAAcomB,GAA4BqE,IAC3DouB,EAAiBtgC,YAAYugC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoB99C,SAAS4D,cAAc,SACjDk6C,EAAkB/4C,YAAc,KAAK44C,KACrCC,EAAiBtgC,YAAYwgC,GAE/BV,EAAQ9/B,YACNo/B,GACE,cACA,qCACAkB,EACAT,IAIJ,MAAMY,EAAazuB,KAAqBC,GAElCyuB,EAAqBh+C,SAAS4D,cAAc,QAClDo6C,EAAmBr0C,MAAMg0B,WAAa,OACtCqgB,EAAmB77C,UAAYymB,EAAe0G,GAC9C0uB,EAAmBj5C,YACjBomB,GAA4BmE,KAC3ByuB,EAAa,MAAM5yB,GAA4BoE,MAA2B,IAC7E6tB,EAAQ9/B,YACNo/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DC,EACAb,IAIJ,MAAMc,EAA2Bj+C,SAAS4D,cAAc,QACxDq6C,EAAyBt0C,MAAMg0B,WAAa,OAC5CsgB,EAAyB97C,UAAYymB,EAAeq1B,EACpDA,EAAyBl5C,YACvBomB,GAA4BsE,KAC3BsuB,EAAa,MAAM5yB,GAA4BuE,MAAiC,IACnF0tB,EAAQ9/B,YACNo/B,GACE,cACA,kCAAiCqB,EAAa,oBAAsB,IACpEE,EACAd,IAIJ,MAAMe,EACJj0C,KAAK2D,IACqC,KAAvC8lB,KAAK0G,QAAUvB,MAChB9I,GAA6BC,GAAoC,GAAK,IACpE,GACAmuB,EAAen+C,SAAS4D,cAAc,QAc5C,OAbAu6C,EAAax0C,MAAMg0B,WAAa,OAChCwgB,EAAah8C,UAAYymB,EAAeu1B,EACxCA,EAAap5C,YACXomB,GAA4B8E,GAAyBiuB,IACpDH,EAAa,MAAM5yB,GAA4B+E,GAAwBguB,KAAkB,IAC5Fd,EAAQ9/B,YACNo/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DI,EACAhB,IAGGC,EA0lBagB,IAGpBlB,EAAM5/B,YAAYk/B,GAAY,gBAAiB,UAC3Cr1B,EAAUkrB,OAAOiB,OACnB4J,EAAM5/B,YAxlBV,WAEE,MAAM6/B,EAAkBzpB,KAAKsW,SAAS,oBAClC,2CACA,6BAEEoT,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQj7C,UAAY,sBAEpB,MAAMk8C,EACJ3qB,KAAK0G,QAAUvB,KAAuBzH,GAClClI,EACAH,EACAu1B,EACJ5qB,KAAK0G,QAAUvB,KAAuBzH,GAClC7E,IACG6E,IAAsBsC,KAAK0G,QAAUvB,OACpCN,MAEJ,GACAgmB,EAAev+C,SAAS+8C,yBACxByB,EAAex+C,SAAS4D,cAAc,QAK5C,GAJA46C,EAAa70C,MAAMg0B,WAAa,OAChC6gB,EAAar8C,UAAYymB,EAAey1B,EACxCG,EAAaz5C,YAAcomB,GAA4BiG,IACvDmtB,EAAajhC,YAAYkhC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgBz+C,SAAS4D,cAAc,SAC7C66C,EAAc15C,YAAc,KAAKu5C,KACjCC,EAAajhC,YAAYmhC,GAE3BrB,EAAQ9/B,YACNo/B,GACE,cACA,2BACA6B,EACApB,IAIJ,MAAMuB,EACJhrB,KAAK0G,QAAUvB,KAAuBtH,GAClCrI,EACAH,EACA41B,EACJjrB,KAAK0G,QAAUvB,KAAuBtH,GAClChF,IACGgF,IAA2BmC,KAAK0G,QAAUvB,OACzCN,MAEJ,GACAqmB,EAAoB5+C,SAAS+8C,yBAC7B8B,EAAoB7+C,SAAS4D,cAAc,QAKjD,GAJAi7C,EAAkBl1C,MAAMg0B,WAAa,OACrCkhB,EAAkB18C,UAAYymB,EAAe81B,EAC7CG,EAAkB95C,YAAcomB,GAA4BoG,IAC5DqtB,EAAkBthC,YAAYuhC,GACP,KAAnBF,EAAuB,CACzB,MAAMG,EAAqB9+C,SAAS4D,cAAc,SAClDk7C,EAAmB/5C,YAAc,KAAK45C,KACtCC,EAAkBthC,YAAYwhC,GAEhC1B,EAAQ9/B,YACNo/B,GACE,cACA,mCACAkC,EACAzB,IAIJ,MAAM4B,EACJrrB,KAAK0G,QAAUvB,KAAuBnH,GAClCxI,EACAH,EACAi2B,EACJtrB,KAAK0G,QAAUvB,KAAuBnH,GAClCnF,IACGmF,IAA4BgC,KAAK0G,QAAUvB,OAC1CN,MAEJ,GACA0mB,EAAmBj/C,SAAS+8C,yBAC5BmC,EAAmBl/C,SAAS4D,cAAc,QAKhD,GAJAs7C,EAAiBv1C,MAAMg0B,WAAa,OACpCuhB,EAAiB/8C,UAAYymB,EAAem2B,EAC5CG,EAAiBn6C,YAAcomB,GAA4BuG,IAC3DutB,EAAiB3hC,YAAY4hC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBn/C,SAAS4D,cAAc,SACjDu7C,EAAkBp6C,YAAc,KAAKi6C,KACrCC,EAAiB3hC,YAAY6hC,GAE/B/B,EAAQ9/B,YACNo/B,GACE,cACA,oCACAuC,EACA9B,IAIJ,MAAMiC,EACJ1rB,KAAK0G,QAAUvB,KAAuBhH,GAClC3I,EACAH,EACAs2B,EACJ3rB,KAAK0G,QAAUvB,KAAuBhH,GAClCtF,IACGsF,IACE6B,KAAK0G,QAAUvB,OAChBN,MAEJ,GACA+mB,EAAwBt/C,SAAS+8C,yBACjCwC,EAAwBv/C,SAAS4D,cAAc,QAKrD,GAJA27C,EAAsB51C,MAAMg0B,WAAa,OACzC4hB,EAAsBp9C,UAAYymB,EAAew2B,EACjDG,EAAsBx6C,YAAcomB,GAA4B0G,IAChEytB,EAAsBhiC,YAAYiiC,GACL,KAAzBF,EAA6B,CAC/B,MAAMG,EAAyBx/C,SAAS4D,cAAc,SACtD47C,EAAuBz6C,YAAc,KAAKs6C,KAC1CC,EAAsBhiC,YAAYkiC,GAEpCpC,EAAQ9/B,YACNo/B,GACE,cACA,4CACA4C,EACAnC,IAIJC,EAAQ9/B,YACNo/B,GACE,cACA,wCACA18C,SAASqgB,eACP,GAAG8K,GAA4BmG,GAAoB,SAASnG,GAC1DsG,GAAyB,OAG7B0rB,IAIJC,EAAQ9/B,YACNo/B,GACE,cACA,iDACA18C,SAASqgB,eACP,GAAG8K,GAA4ByG,GAA0B,SAASzG,GAChEyG,GAA0B,OAG9BurB,IAIJ,MAAMsC,EAAcx1C,KAAK2D,IACN,GAAjB8lB,KAAKgF,UAAiB,GAAK,EAAI1I,GAChB,GAAf0D,KAAK0G,SAEDslB,EAAWhT,GACf,EACA+S,EACAxvB,IACA,GACI0vB,EAAgBjT,GACpB,EACA+S,EACAvvB,IACA,GAoCF,OAnCAktB,EAAQ9/B,YACNo/B,GACE,cACA,wCACA18C,SAASqgB,eACP,GAAG8K,GAA4Bu0B,QAAev0B,GAA4Bw0B,MAE5ExC,IAIJC,EAAQ9/B,YACNo/B,GACE,cACA,oCACA18C,SAASqgB,eACP,GAAG8K,GAA4BkG,SAA6BlG,GAC1DqG,OAGJ,8BAGJ4rB,EAAQ9/B,YACNo/B,GACE,cACA,6CACA18C,SAASqgB,eACP,GAAG8K,GAA4BwG,SAAmCxG,GAChE2G,OAGJ,8BAGGsrB,EAuYawC,IAGhBlsB,KAAKoB,QAAQ,gBAAgBU,iBAC/B0nB,EAAM5/B,YAAYk/B,GAAY,SAAU,WACpCr1B,EAAUkrB,OAAOkB,QACnB2J,EAAM5/B,YAtYZ,WACE,MAAM8/B,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQj7C,UAAY,uBAEpB,MAAM09C,EACJnsB,KAAK0G,QAAUvB,KAAuBlJ,GAAezG,EAAWH,EAC5D+2B,EACJpsB,KAAK0G,QAAUvB,KAAuBlJ,GAClCpD,IACGoD,IAAgB+D,KAAK0G,QAAUvB,OAAyBN,MAE3D,GAEAwnB,EAAiB//C,SAAS+8C,yBAC1BiD,EAAiBhgD,SAAS4D,cAAc,QAK9C,GAJAo8C,EAAer2C,MAAMg0B,WAAa,OAClCqiB,EAAe79C,UAAYymB,EAAei3B,EAC1CG,EAAej7C,YAAcomB,GAA4BwE,IACzDowB,EAAeziC,YAAY0iC,GACP,KAAhBF,EAAoB,CACtB,MAAMG,EAAkBjgD,SAAS4D,cAAc,SAC/Cq8C,EAAgBl7C,YAAc,KAAK+6C,KACnCC,EAAeziC,YAAY2iC,GAE7B7C,EAAQ9/B,YACNo/B,GACE,cACA,yCACAqD,EACA,+BAGJ3C,EAAQ9/B,YACNo/B,GACE,cACA,qCACA18C,SAASqgB,eAAe8K,GAA4ByE,KACpD,+BAIJ,MAAMswB,EACJxsB,KAAK0G,QAAUvB,KAAsC,EAAflJ,GAClCzG,EACAH,EACAo3B,EAAmBl2C,KAAK2D,IACY,KAAvC8lB,KAAK0G,QAAUvB,MACa,GAA7B9I,GAAkC,IAE9BqwB,EACJ1sB,KAAK0G,QAAUvB,KAAsC,EAAflJ,GAClCpD,IACkB,EAAfoD,IAAoB+D,KAAK0G,QAAUvB,OAAyBN,MAE/D,GAEA8nB,EAAuBrgD,SAAS+8C,yBAChCuD,EAAuBtgD,SAAS4D,cAAc,QAKpD,GAJA08C,EAAqB32C,MAAMg0B,WAAa,OACxC2iB,EAAqBn+C,UAAYymB,EAAes3B,EAChDI,EAAqBv7C,YAAcomB,GAA2C,EAAfwE,IAC/D0wB,EAAqB/iC,YAAYgjC,GACP,KAAtBF,EAA0B,CAC5B,MAAMG,EAAwBvgD,SAAS4D,cAAc,SACrD28C,EAAsBx7C,YAAc,KAAKq7C,KACzCC,EAAqB/iC,YAAYijC,GAsCnC,OApCAnD,EAAQ9/B,YACNo/B,GACE,cACA,kDACA2D,EACA,+BAGJjD,EAAQ9/B,YACNo/B,GACE,cACA,8CACA18C,SAASqgB,eAAe8K,GAAiD,EAArByE,KACpD,+BAGJwtB,EAAQ9/B,YACNo/B,GACE,cACA,qCACA18C,SAASqgB,eAAe8K,GAA4Bg1B,IACpD,+BAGAtwB,IACFutB,EAAQ9/B,YACNo/B,GACE,cACA,mEACA18C,SAASqgB,eACP,GAAG8K,GAA4B0E,QAAkBC,OAEnD,+BAICstB,EA+ReoD,KAIlB9sB,KAAKoB,QAAQiM,KAAKvL,iBACpB0nB,EAAM5/B,YAAYk/B,GAAY,SAAU,WACpCr1B,EAAUkrB,OAAOmB,QACnB0J,EAAM5/B,YA/RZ,WACE,MAAM8/B,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQj7C,UAAY,uBAEpB,MAAMs+C,EACJ/sB,KAAK0G,QAA2B,GAAjB1G,KAAKgF,UAAiB,GAAK,IAAMxP,EAAWH,EACvD23B,EAAgB1gD,SAAS4D,cAAc,QAC7C88C,EAAc/2C,MAAMg0B,WAAa,OACjC+iB,EAAcv+C,UAAYymB,EAAe63B,EACzCC,EAAc37C,YAAcomB,GAA6C,GAAjBuI,KAAKgF,UAAiB,GAAK,KACnF0kB,EAAQ9/B,YACNo/B,GACE,QACA,iDACAgE,IAIJ,MAAMC,EACJjtB,KAAK0G,QAA2B,GAAjB1G,KAAKgF,UAAiB,IAAMxP,EAAWH,EAClD63B,EAAgB5gD,SAAS4D,cAAc,QAC7Cg9C,EAAcj3C,MAAMg0B,WAAa,OACjCijB,EAAcz+C,UAAYymB,EAAe+3B,EACzCC,EAAc77C,YAAcomB,GAA6C,GAAjBuI,KAAKgF,UAAiB,KAC9E0kB,EAAQ9/B,YACNo/B,GACE,QACA,iDACAkE,IAIJ,MAAMC,EACJntB,KAAK0G,QAA2B,GAAjB1G,KAAKgF,UAAiB,GAAK,GAAKxP,EAAWH,EACtD+3B,EAAgB9gD,SAAS4D,cAAc,QAC7Ck9C,EAAcn3C,MAAMg0B,WAAa,OACjCmjB,EAAc3+C,UAAYymB,EAAei4B,EACzCC,EAAc/7C,YAAcomB,GAA6C,GAAjBuI,KAAKgF,UAAiB,GAAK,IACnF0kB,EAAQ9/B,YACNo/B,GACE,QACA,iDACAoE,IAIJ,MAAMC,EACJrtB,KAAK0G,QAA2B,GAAjB1G,KAAKgF,UAAiB,GAAK,IAAMxP,EAAWH,EACvDi4B,EAAgBhhD,SAAS4D,cAAc,QAW7C,OAVAo9C,EAAcr3C,MAAMg0B,WAAa,OACjCqjB,EAAc7+C,UAAYymB,EAAem4B,EACzCC,EAAcj8C,YAAcomB,GAA6C,GAAjBuI,KAAKgF,UAAiB,GAAK,KACnF0kB,EAAQ9/B,YACNo/B,GACE,QACA,iDACAsE,IAGG5D,EAoOe6D,KAItB/D,EAAM5/B,YAAYk/B,GAAY,WAAY,aACtCr1B,EAAUkrB,OAAOoB,UACnByJ,EAAM5/B,YAnOV,WACE,MAAM8/B,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQj7C,UAAY,yBAEpB,MAAM++C,EAAkBj3C,KAAKkE,MAC3BulB,KAAK4Z,gBACHtb,GACE0B,KAAK6Z,aACL7c,IACCgD,KAAKqU,YAAY,mBAAqBrU,KAAKqR,IAAI,iBAC5CzU,GACA,KAGV8sB,EAAQ9/B,YACNo/B,GACE,cACA,6BACA18C,SAASqgB,eACP,GAAG8K,GAA4BuI,KAAK4J,eAAenS,GAA4B+1B,MAEjF,+BAIJ,MAAMC,EAAal3C,KAAK6D,IACtB,EACA4lB,KAAKilB,oBAAoBuI,EAAkB,IACxClvB,GACC0B,KAAK6Z,aACL7c,IAEEgD,KAAKqU,YAAY,mBAAqBrU,KAAKqR,IAAI,kBAC3CzU,GAGFA,GACA,KAEJ8wB,EAAkBphD,SAAS+8C,yBACjCqE,EAAgB9jC,YAAYtd,SAASqgB,eAAe8K,GAA4Bg2B,KAChF,MAAME,EAAmBrhD,SAAS4D,cAAc,SAChDy9C,EAAiBt8C,YAAc,KAAKwnB,GAClC40B,EAAalvB,GACb,MAEFmvB,EAAgB9jC,YAAY+jC,GAC5BjE,EAAQ9/B,YACNo/B,GACE,cACA,wBACA0E,EACA,gCAIJhE,EAAQ9/B,YACNo/B,GACE,cACA,6BACA18C,SAASqgB,eACP,GAAG8K,GAA4BuI,KAAK4tB,oBAAoBn2B,GACtD+1B,EAAkBxtB,KAAK4J,SAAW5J,KAAK4tB,kBAG3C,oCAIJlE,EAAQ9/B,YACNo/B,GACE,QACA,6CACA18C,SAASqgB,eAAe8K,GAA4BgF,GAAkB,MAI1E,MAAMoxB,EAAW31B,OAAOzE,EAAUmqB,qBAClC,IAAK1lB,OAAO5I,MAAMu+B,GAAW,CAC3B,MAAMC,EACJD,EACAt3C,KAAKkE,MAAMulB,KAAK4Z,gBAAgB5Z,KAAK6Z,aAAe7Z,KAAKwT,gBACvDsa,EAAoB,IACtBpE,EAAQ9/B,YACNo/B,GACE,QACA,iDACA18C,SAASqgB,eAAe8K,GAA4Bq2B,MAGxDpE,EAAQ9/B,YACNo/B,GACE,QACA,iDACA18C,SAASqgB,eACPkM,GAAWi1B,EAAoBrxB,QAOzC,MAAMsxB,EAh5BR,SAAoBC,GAElB,IAAIC,EAASjuB,KAAKgF,UAElBuE,KAE2C,IAAvC1J,GAAY,gBAAgBkB,SAC9BlB,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErCkU,KAEAgZ,EAAS5yB,GAETkO,MAGEjL,IAA0B,KAAS0W,GAAO,aAC1C1W,IAA0B,KAAY0W,GAAO,YAC7C1W,IAA0B,MAAe0W,GAAO,gBAChD1W,IAA0B,MAAkB0W,GAAO,YACnD1W,IAA0B,MAAqB0W,GAAO,iBACtD1W,IAA0B,MAC5B0W,GAAO,kBACL1W,IAA0B,MAC5B0W,GAAO,iBACL1W,IAA0B,MAC5B0W,GAAO,cACL1W,IAA0B,MAC5B0W,GAAO,iBACL1W,IAA0B,MAC5B0W,GAAO,uBACL1W,IAA0B,MAC5B0W,GAAO,mBACL1W,IAA0B,MAC5B0W,GAAO,uBACL1W,IAA0B,MAC5B0W,GAAO,wBACL1W,IAA0B,MAC5B0W,GAAO,mBAEP1W,IAA0B,MAE1B0W,GAAO,WAEP1W,IACA,MAEA0W,GAAO,iBAEP1W,IACA,MAEA0W,GAAO,iCAETnV,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErClG,GAAcmzB,EAEd,MAAM7V,EAAwBxd,GAE9Bsa,KAEAkC,KAEIgB,IAA0Bxd,IAC5Bsa,KAGF,MAAMiZ,EAAW7yB,GAAe4yB,EAKhC,OAFApzB,GAAcmF,KAAK4J,SAEZskB,EA+zBYC,CAAWX,GACxBY,EAAY9hD,SAAS+8C,yBAC3B+E,EAAUxkC,YAAYtd,SAASqgB,eAAe8K,GAA4Bs2B,KAC1E,MAAMtiB,EAAWl1B,KAAKC,MAAOu3C,EAAa/tB,KAAKgF,UAAa,KAC5D,GAAI9M,OAAOC,SAASsT,IAA0B,IAAbA,EAAgB,CAC/C,MAAM4iB,EAAa/hD,SAAS4D,cAAc,SAC1Cm+C,EAAWh9C,YAAc,KAAKo6B,EAAW,kBACzC2iB,EAAUxkC,YAAYykC,GAExB3E,EAAQ9/B,YACNo/B,GACE,cACA,qBACAoF,EACA,4BAIJ,MAAME,EAAkB/3C,KAAKkE,MAAMulB,KAAK4Z,gBAAgB5Z,KAAK6Z,eACvD0U,EAAWh4C,KAAKkE,MACpBulB,KAAK4Z,gBAAgB5Z,KAAK6Z,aAAe7Z,KAAKwT,gBAE1Cgb,EAAUD,EAAWD,EAC3B,IAAKtuB,KAAKqR,IAAI,eAAgB,CAC5B,IAAIod,EAAS,EAAKF,EAAW,GACzBE,EAAS,IAAGA,GAAU,IAC1B,MAAMC,EAAaF,EAAUC,EACvBE,EAAaJ,EAAWE,EACxBG,EAAQtiD,SAAS+8C,yBACvBuF,EAAMhlC,YACJtd,SAASqgB,eACP,GAAGgiC,EAAWp2B,sBAAsBm2B,EAAWn2B,sBAAsBk2B,OAGzE/E,EAAQ9/B,YACNo/B,GAAa,QAAS,qCAAsC4F,IAIhE,IAAK5uB,KAAKqR,IAAI,gBAAiB,CAC7B,IAAIwd,EAAW,IAAON,EAAW,IAC7BM,EAAW,IAAGA,GAAY,KAC9B,MAAMC,EAAeN,EAAUK,EACzBE,EAAeR,EAAWM,EAC1BG,EAAU1iD,SAAS+8C,yBACzB2F,EAAQplC,YACNtd,SAASqgB,eACP,GAAGoiC,EAAax2B,sBAAsBu2B,EAAav2B,sBAAsBs2B,OAG7EnF,EAAQ9/B,YACNo/B,GAAa,QAAS,sCAAuCgG,IAIjE,IAAKhvB,KAAKqR,IAAI,gBAAiB,CAC7B,IAAI4d,EAAc,OAAUV,EAAW,IACnCU,EAAc,IAAGA,GAAe,KACpC,MAAMC,EAAkBV,EAAUS,EAC5BE,EAAkBZ,EAAWU,EAC7BG,EAAa9iD,SAAS+8C,yBAC5B+F,EAAWxlC,YACTtd,SAASqgB,eACP,GAAGwiC,EAAgB52B,sBAAsB22B,EAAgB32B,sBAAsB02B,OAGnFvF,EAAQ9/B,YACNo/B,GAAa,QAAS,sCAAuCoG,IAIjE,OAAO1F,EAsDa2F,IAGhBrvB,KAAKiF,UAAY,IACnBukB,EAAM5/B,YAAYk/B,GAAY,YAAa,UACvCr1B,EAAUkrB,OAAOqB,OAAO,CAC1B,MAAMsP,EAAahjD,SAAS+8C,yBAC5BiG,EAAW1lC,YACTtd,SAASqgB,eACP,GAAG8K,GAA4BuF,SAA0BvF,GACvDwF,SAIN,MAAMsyB,EAAUjjD,SAAS4D,cAAc,KACvCq/C,EAAQl+C,YAAc,iBACtBk+C,EAAQ9gD,UAAY,SACpB8gD,EAAQhK,QAAU,WAChB4B,MAEFmI,EAAW1lC,YAAY2lC,GACvB/F,EAAM5/B,YACJo/B,GACE,QACA,kCACAsG,IAGJ,MAAME,EAAiBljD,SAAS+8C,yBAChCmG,EAAe5lC,YACbtd,SAASqgB,eAAe,GAAG8K,GAA4ByF,GAAsB,SAE/E,MAAMuyB,EAAcnjD,SAAS4D,cAAc,KAC3Cu/C,EAAYp+C,YAAc,qBAC1Bo+C,EAAYhhD,UAAY,SACxBghD,EAAYlK,QAAU,WACa,OAA7BroB,GAAsB,KACxB8C,KAAKkF,UAAUhI,GAAsB,IAAIkqB,GAAK,IAElDoI,EAAe5lC,YAAY6lC,GAC3BjG,EAAM5/B,YACJo/B,GACE,QACA,6DAC+B,OAA7B9rB,GAAsB,GAClBA,GAAsB,GACtB,UAENsyB,IAMR,IAAIE,GAAW,EACf,MAAMC,EAA0B,GAChCn+C,OAAO6C,KAAKyiC,IAAc7T,SAASj1B,IAC5BgyB,KAAKqR,IAAIyF,GAAa9oC,MACzB2hD,EAAwB7/C,KAAKgnC,GAAa9oC,IAC1C0hD,GAAW,MAGf,MAAME,EAA0B,GAChCp+C,OAAO6C,KAAK0iC,IAAe9T,SAASj1B,IAC7BgyB,KAAKqR,IAAI0F,GAAc/oC,MAC1B4hD,EAAwB9/C,KAAKinC,GAAc/oC,IAC3C0hD,GAAW,MAGf,MAAMG,EAA0B,GAChCr+C,OAAO6C,KAAK2iC,IAAY/T,SAASj1B,IAC1BgyB,KAAKqR,IAAI2F,GAAWhpC,MACvB6hD,EAAwB//C,KAAKknC,GAAWhpC,IACxC0hD,GAAW,MAGf,MAAMI,EAAoB,GAC1Bt+C,OAAO6C,KAAK2rB,KAAK+vB,UAAU9sB,SAASj1B,IAC7BgyB,KAAKqU,YAAYrU,KAAK+vB,SAAS/hD,MAClC8hD,EAAkBhgD,KAAKkwB,KAAK+vB,SAAS/hD,IACrC0hD,GAAW,MAGf,MAAMM,EAAkB,GACxBx+C,OAAO6C,KAAK2rB,KAAKiwB,cAAchtB,SAASj1B,IACjCgyB,KAAKqU,YAAYrU,KAAKiwB,aAAajiD,MACtCgiD,EAAgBlgD,KAAKkwB,KAAKiwB,aAAajiD,IACvC0hD,GAAW,MAGf,MAAMQ,EAAoB,GAC1B1+C,OAAO6C,KAAK4iC,IAAYhU,SAASj1B,IAC1BgyB,KAAKqU,YAAY4C,GAAWjpC,MAC/BkiD,EAAkBpgD,KAAKmnC,GAAWjpC,IAClC0hD,GAAW,MAGf,MAAMtb,EACJpU,KAAKqU,YAAY,mBAAqBrU,KAAKqR,IAAI,iBAC3C8e,EAAUnwB,KAAKqR,IAAI,eAuFzB,IArFoB,cAAhBrR,KAAKyR,QAA0Bie,GAAYtb,GAAU+b,KACvD3G,EAAM5/B,YAAYk/B,GAAY,kBAAmB,QAC7Cr1B,EAAUkrB,OAAOsB,MACoB,IAAnC0P,EAAwB1hD,QAC1Bu7C,EAAM5/B,YACJo/B,GACE,QACA,gCACAE,GAAcyG,KAGmB,IAAnCC,EAAwB3hD,QAC1Bu7C,EAAM5/B,YACJo/B,GACE,QACA,gCACAE,GAAc0G,KAGmB,IAAnCC,EAAwB5hD,QAC1Bu7C,EAAM5/B,YACJo/B,GACE,QACA,gCACAE,GAAc2G,KAGa,IAA7BC,EAAkB7hD,QACpBu7C,EAAM5/B,YACJo/B,GACE,QACA,oCACAE,GAAc4G,KAGW,IAA3BE,EAAgB/hD,QAClBu7C,EAAM5/B,YACJo/B,GACE,QACA,kCACAE,GAAc8G,KAGa,IAA7BE,EAAkBjiD,QACpBu7C,EAAM5/B,YACJo/B,GACE,QACA,kCACAE,GAAcgH,KAIA,cAAhBlwB,KAAKyR,QACP+X,EAAM5/B,YACJo/B,GACE,QACA,kBACA18C,SAASqgB,eAAe8K,GAA4BkF,OAGtDyX,GACFoV,EAAM5/B,YACJo/B,GACE,cACA,wBACA18C,SAASqgB,eAAe8K,GAA4BmF,KACpD,6BAIFuzB,GACF3G,EAAM5/B,YACJo/B,GACE,QACA,yBACA18C,SAASqgB,eACJpW,KAAKC,MAA2B,KAApBkmB,GAAe,IAAc,IAA5C,SAQZ8sB,EAAM5/B,YAAYk/B,GAAY,gBAAiB,SAC3Cr1B,EAAUkrB,OAAOuB,KAAM,CAsBzB,GArBAsJ,EAAM5/B,YACJo/B,GACE,QACA,oCACEzyB,EAAY9C,EAAUygB,YAAc,GAChC,GAAG3d,EAAY9C,EAAUygB,sBACzB3d,EAAY9C,EAAUygB,YAAc,IACV,IAAzBzgB,EAAUygB,WAAmB,UAAY,eAEhD5nC,SAASqgB,eAAe8K,GAA4BoN,KAAU,MAGlE2kB,EAAM5/B,YACJo/B,GACE,QACA,0CACExyB,EAAW/C,EAAU6gB,iBACQ,IAA5B7gB,EAAU6gB,cAAsB,UAAY,cAC/ChoC,SAASqgB,eAAe8K,GAA4B6F,GAAoB,MAGxE0C,KAAKqR,IAAI,mBAAoB,CAC/B,MAAMyG,EAAW,GACjBtmC,OAAO6C,KAAKwiC,IAAU5T,SAASj1B,IACxBgyB,KAAKqR,IAAIwF,GAAS7oC,KACrB8pC,EAAShoC,KAAK+mC,GAAS7oC,OAGH,IAApB8pC,EAAS7pC,QACXu7C,EAAM5/B,YACJo/B,GACE,QACA,+BACAE,GAAcpR,KAatB,GATIrkB,EAAUoqB,cACZ2L,EAAM5/B,YACJo/B,GACE,QACA,wBACA18C,SAASqgB,eAAe8K,GAA4BuI,KAAKowB,uBAI3DpwB,KAAKuQ,MAAMC,SAAU,CACvB,MAAM1K,EAAQx5B,SAAS4D,cAAc,QACrC41B,EAAMvE,GAAK,uBACXuE,EAAM8K,UAAY5Q,KAAK6Q,QACV,GAAX7Q,KAAK8K,KAAY9K,KAAK6jB,SAAW,EAAI7jB,KAAK8Q,GAAgB,GAAX9Q,KAAK8K,MACpD,GAEF0e,EAAM5/B,YACJo/B,GAAa,QAAS,qBAAsBljB,KAKlD1mB,EAAE,QAAQwiC,aAAa4H,EAAOpqC,EAAE,QAAQilB,WAAW,IAE/C5Q,EAAUgqB,iBA73Idr+B,EAAE,QAAQilB,WAAWpB,SAASotB,IAC5B,GAAIA,EAAYjgB,SAAS,GACvB,GACwC,aAAtCigB,EAAYjgB,SAAS,GAAG5kB,WACxBgS,GACA,CACA,MAAM8yB,EACJ9yB,GAA6B9uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAC1DG,OAAS,EACRu1C,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAMjiB,GAAK,iCACXiiB,EAAM/0C,UAAY,UAClB,MAAM8hD,EAAYjkD,SAAS4D,cAAc,OACzCqgD,EAAU/kC,UAAY,qCAAqC8kC,KACzDtwB,KAAKwwB,iBAAiBviD,WACnBsI,KAAKkE,MACP61C,EAA0BtwB,KAAKwwB,iBAAiBviD,OAAU,SAE7Du1C,EAAM55B,YAAY2mC,GAClBF,EAAYzmC,YAAY45B,GACxB,MAAM/M,EAAWnqC,SAAS4D,cAAc,OACxCumC,EAAShoC,UAAY,mBACrBgoC,EAASjrB,UAAYgS,GACrB6yB,EAAYzmC,YAAY6sB,QACnB,GAA0C,aAAtC4Z,EAAYjgB,SAAS,GAAG5kB,UAA0B,CAC3D,GAAI+R,GAAsB,CACxB,MAAMkzB,EACJlzB,GAAqB7uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAAGG,OAAS,EAC7Du1C,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAMjiB,GAAK,yBACXiiB,EAAM/0C,UAAY,UAClB,MAAM8hD,EAAYjkD,SAAS4D,cAAc,OACzCqgD,EAAU/kC,UAAY,mCAAmCilC,KACvDzwB,KAAK4I,eAAe,IAAI36B,OAAS+xB,KAAK4I,eAAe8nB,KAAKziD,WACvDsI,KAAKkE,MACPg2C,GACEzwB,KAAK4I,eAAe,IAAI36B,OACvB+xB,KAAK4I,eAAe8nB,KAAKziD,QAC3B,SAEJu1C,EAAM55B,YAAY2mC,GAClBF,EAAYzO,aAAa4B,EAAO6M,EAAYhsB,WAAW,IACvD,MAAMoS,EAAWnqC,SAAS4D,cAAc,OACxCumC,EAAShoC,UAAY,mBACrBgoC,EAASjrB,UAAY+R,GACrB8yB,EAAYzO,aACVnL,EACAnqC,SAASoiC,eAAe,0BAA0BiiB,aAGtD,GAAIlzB,GAA6B,CAC/B,MAAMmzB,EACJnzB,GAA4B/uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GACzDG,OAAS,EACRu1C,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAMjiB,GAAK,gCACXiiB,EAAM/0C,UAAY,UAClB,MAAM8hD,EAAYjkD,SAAS4D,cAAc,OACzCqgD,EAAU/kC,UAAY,mCAAmColC,KACvD5wB,KAAK4I,eAAeyc,OAAOp3C,WACxBsI,KAAKkE,MACPm2C,EAAwB5wB,KAAK4I,eAAeyc,OAAOp3C,OAAU,SAEhEu1C,EAAM55B,YAAY2mC,GAClBF,EAAYzmC,YAAY45B,GACxB,MAAM/M,EAAWnqC,SAAS4D,cAAc,OACxCumC,EAAShoC,UAAY,mBACrBgoC,EAASjrB,UAAYiS,GACrB4yB,EAAYzmC,YAAY6sB,QAi3IlC,MAAMoa,GAAe,CACnBjS,WAAY,cACZC,YAAa,cACbC,aAAc,eACdS,QAAS,mCACTC,WAAY,aACZC,SAAU,WACVC,cAAe,iBAIXoR,GAA2B,CAC/B/R,oBAAqB,wBACrBC,eAAgB,gBAChBC,eAAgB,iBAChBC,gBAAiB,iBACjBC,iBAAkB,cAClBC,iBAAkB,iBAClBC,kBAAmB,WACnBC,qBAAsB,qBAuBxB,SAASyR,GAAiBnO,EAAQzpB,GAChC,MAAMmL,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,QAEhB61B,EAAIruB,MAAM6U,QAAU,MACpBwZ,EAAIruB,MAAMuvB,SAAW,OACrBlB,EAAI1a,YAAYtd,SAASqgB,eAAe,GAAGwM,OAC3C,MAAM4vB,EAAOz8C,SAAS4D,cAAc,QAiBpC,OAhBA64C,EAAK9yC,MAAM+U,OAAS,UACpB+9B,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK9yC,MAAMmG,OAAS,OACpB2sC,EAAK9yC,MAAMkG,MAAQ,OACnB4sC,EAAK9yC,MAAMsU,aAAe,MAC1Bw+B,EAAK9yC,MAAMuW,UAAY,SACvBu8B,EAAK9yC,MAAM4U,gBAAkB,UAC7Bk+B,EAAK9yC,MAAM2F,MAAQ,QACnBmtC,EAAK9yC,MAAMuvB,SAAW,OACtBujB,EAAK9yC,MAAMyvB,cAAgB,SAC3BqjB,EAAK13C,YAAcoiB,EAAUkrB,OAAOiE,GAAU,IAAM,IACpDmG,EAAKxD,QAAU,WACbsD,GAAajG,GACb5iB,KAAK2S,cAEPrO,EAAI1a,YAAYm/B,GACTzkB,EAQT,SAAS0sB,GAAiBpO,GACxB,MAAMte,EAAMh4B,SAAS4D,cAAc,OAEnC,GADAo0B,EAAI71B,UAAY,UACkB,SAA9BkzC,GAAaiB,GAAQv0C,KAAiB,CACxC,MAAMwI,EAAIvK,SAAS4D,cAAc,KAC7ByxC,GAAaiB,GAAQrB,QAAgC,IAAtB9tB,EAAUmvB,GAC3C/rC,EAAEpI,UAAY,aAEdoI,EAAEpI,UAAY,SAEhBoI,EAAE0qB,GAAKonB,GAA6B/F,EACpC/rC,EAAE0uC,QAAU,YA/yChB,SAAsB3C,GACpBnvB,EAAUmvB,IAAW,EAEjBnvB,EAAUmvB,KAAYjB,GAAaiB,GAAQvB,MAAMpzC,QACnDwlB,EAAUmvB,GAAU,EAChBjB,GAAaiB,GAAQrB,SACvBniC,EAAEupC,GAA6B/F,GAAQn0C,UAAY,eAChD2Q,EAAEupC,GAA6B/F,GAAQn0C,UAAY,cAEjB,IAA9BkzC,GAAaiB,GAAQ7vC,MAC9B4uC,GAAaiB,GAAQ7vC,OAGvBqM,EAAEupC,GAA6B/F,GAAQp3B,UACrCm2B,GAAaiB,GAAQvB,MAAM5tB,EAAUmvB,IACvC0D,KAiyCI2K,CAAarO,IAEf/rC,EAAExF,YAAcswC,GAAaiB,GAAQvB,MAAM5tB,EAAUmvB,IACrDte,EAAI1a,YAAY/S,GAChB,MAAMwqC,EAAQ/0C,SAAS4D,cAAc,SAGrC,OAFAmxC,EAAMhwC,YAAcswC,GAAaiB,GAAQtB,KACzChd,EAAI1a,YAAYy3B,GACT/c,EAET,GAAkC,QAA9Bqd,GAAaiB,GAAQv0C,KAAgB,CACvC,MAAM+0C,EAAS92C,SAAS4D,cAAc,OACtCkzC,EAAO30C,UAAY,YACnB,MAAM+0C,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAMvtC,MAAMi7C,MAAQ,OACpB1N,EAAMh4B,UAAYm2B,GAAaiB,GAAQtB,KACvC8B,EAAOx5B,YAAY45B,GACnB,MAAM2N,EAAU7kD,SAAS4D,cAAc,OACvCihD,EAAQ5vB,GAAK,SAASqhB,SACtBuO,EAAQl7C,MAAMi7C,MAAQ,QACtBC,EAAQ3lC,UAAY,GAAGiI,EAAUmvB,MACjCQ,EAAOx5B,YAAYunC,GACnB,MAAMC,EAAS9kD,SAAS4D,cAAc,SAiBtC,OAhBAkhD,EAAO3iD,UAAY,SACnB2iD,EAAO7vB,GAAK,SAASqhB,IACrBwO,EAAOn7C,MAAMwU,MAAQ,OACrB2mC,EAAO/iD,KAAO,QACd+iD,EAAOl3C,IAAM,IACbk3C,EAAOh3C,IAAM,MACbg3C,EAAOC,KAAO,IACdD,EAAOhgD,MAAQqiB,EAAUmvB,GACzBwO,EAAO9+B,QAAU,WACfs2B,GAAmBhG,IAErBwO,EAAOE,SAAW,WAChB1I,GAAmBhG,IAErBQ,EAAOx5B,YAAYwnC,GACnB9sB,EAAI1a,YAAYw5B,GACT9e,EAET,GAAkC,QAA9Bqd,GAAaiB,GAAQv0C,KAAgB,CACvC,MAAM06C,EAAOz8C,SAAS4D,cAAc,QACpC64C,EAAKt6C,UAAY,SACjBs6C,EAAK13C,YAAc,GAAGswC,GAAaiB,GAAQvB,SAC3C/c,EAAI1a,YAAYm/B,GAChB,MAAMwI,EAAQjlD,SAAS4D,cAAc,SACrCqhD,EAAMhwB,GAAKonB,GAA6B/F,EACxC2O,EAAM9iD,UAAY,SAClB8iD,EAAMljD,KAAO,OACbkjD,EAAMC,UAAW,EACjBD,EAAM3/C,aAAa,QAAS6hB,EAAUmvB,IACtC2O,EAAMt7C,MAAMkG,MAAQ,QACpBmoB,EAAI1a,YAAY2nC,GAChBjtB,EAAI1a,YAAYtd,SAASqgB,eAAe,MACxC,MAAM8kC,EAAcnlD,SAAS4D,cAAc,SAC3CuhD,EAAYlwB,GAAK,GAAGonB,GAA6B/F,UACjD6O,EAAYhjD,UAAY,SACxBgjD,EAAYpjD,KAAO,OACnBojD,EAAY7/C,aAAa,QAAS6hB,EAAUmvB,IAC5C,MAAM/rC,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE0uC,QAAU,WACVvlB,KAAK0xB,OAAOD,EAAYE,UAAW,CACjC,CACE,OACA,WACEl+B,EAAU,GAAGmvB,KAAYxjC,EAAE,WAAgCwjC,WAAgBxxC,MAC3Ek1C,KACAtmB,KAAK4xB,cACL5xB,KAAK2S,eAGT,YAGJ97B,EAAExF,YAAc,OAChBizB,EAAI1a,YAAY/S,GAChB,MAAMwqC,EAAQ/0C,SAAS4D,cAAc,SAGrC,OAFAmxC,EAAMhwC,YAAcswC,GAAaiB,GAAQtB,KACzChd,EAAI1a,YAAYy3B,GACT/c,EAET,GAAkC,UAA9Bqd,GAAaiB,GAAQv0C,KAAkB,CACzCi2B,EAAI71B,UAAY,GAChB,IAAK,IAAIT,EAAI,EAAGA,EAAI6nB,EAAO5nB,OAAQD,IAAK,CACtC,MAAM6jD,EAAWvlD,SAAS4D,cAAc,OACxC2hD,EAASpjD,UAAY,UACrB,MAAM8iD,EAAQjlD,SAAS4D,cAAc,SACrCqhD,EAAMhwB,GAAK1L,EAAO7nB,GAClBujD,EAAMt7C,MAAMkG,MAAQ,OACpBo1C,EAAM3/C,aAAa,QAAS6hB,EAAUoC,OAAOA,EAAO7nB,KACpD6jD,EAASjoC,YAAY2nC,GAOrBxkD,GAAQwkD,EAAO,CAAEnjC,MAAM,EAAMnQ,SAAU,QAAS4P,QANjC,WACb4F,EAAUoC,OAAOnpB,KAAKmD,cAAc0xB,IAAM70B,KAAK8gB,cAC/CszB,KACAwF,KACAtmB,KAAK2S,gBAGP,MAAM0O,EAAQ/0C,SAAS4D,cAAc,SACrCmxC,EAAMhwC,YAAcswC,GAAa9rB,OAAOyrB,KAAKzrB,EAAO7nB,IACpD6jD,EAASjoC,YAAYy3B,GACrB/c,EAAI1a,YAAYioC,GAGlB,OADAnJ,KAAkBp7C,OACXg3B,EAET,GAAkC,aAA9Bqd,GAAaiB,GAAQv0C,KAAqB,CAC5C,MAAM06C,EAAOz8C,SAAS4D,cAAc,QACpC64C,EAAKt6C,UAAY,SACjBs6C,EAAK13C,YAAc,GAAGswC,GAAaiB,GAAQvB,SAC3C/c,EAAI1a,YAAYm/B,GAChB,MAAMwI,EAAQjlD,SAAS4D,cAAc,SACrCqhD,EAAMhwB,GAAKonB,GAA6B/F,EACxC2O,EAAM9iD,UAAY,SAClB8iD,EAAMljD,KAAO,SACbkjD,EAAMngD,MAAQqiB,EAAUmvB,GACxB2O,EAAMr3C,IAAMynC,GAAaiB,GAAQ1oC,IACjCq3C,EAAMn3C,IAAMunC,GAAaiB,GAAQxoC,IACjCm3C,EAAMj/B,QAAU,WACV5lB,KAAK0E,MAAQ1E,KAAK0N,KAAKvL,QAAQ+pB,IAAI,QACvCnF,EAAUmvB,GAAUl2C,KAAK0E,MACzBk1C,KACA5F,MAEFpc,EAAI1a,YAAY2nC,GAChBjtB,EAAI1a,YAAYtd,SAASqgB,eAAe,MACxC,MAAM00B,EAAQ/0C,SAAS4D,cAAc,SAGrC,OAFAmxC,EAAMhwC,YAAcswC,GAAaiB,GAAQtB,KACzChd,EAAI1a,YAAYy3B,GACT/c,EAET,OAAOA,EAyTT,SAASwtB,GAAUz+C,GACjB,GAA2B,IAAvBogB,EAAUsT,UAA4C,IAA1BtT,EAAUuT,YAAmB,CAC3D,MAAM+qB,EAAiBj3C,SAASsE,EAAE,cAAcnJ,MAAMmG,OAAQ,IAC9D4jB,KAAKgyB,QAAUD,EACf1+C,IACA2sB,KAAKgyB,QAAUD,OAEf1+C,IAuBJ,SAAS4+C,KAEPh9B,EAAgBgD,SAAWA,SAE3BA,SAAWR,GAEXxC,EAAgBggB,eAAiBjV,KAAKiV,eACtCjV,KAAKiV,eAAiB,WACpBhgB,EAAgBggB,iBAChB9Z,GAAY,EACZ+E,GAAcmT,KAAKC,MACnBvT,GAAiBsT,KAAKC,OAGxBre,EAAgBkV,QAAU,GAC1BlV,EAAgBkV,QAAQ3kB,KAAOwa,KAAKmK,QAAQ3kB,KAC5CyP,EAAgBkV,QAAQ+nB,QAAU,IAAIziD,SACpC,UAAUuwB,KAAKmK,QAAQ3kB,KAAK/O,WAAW5B,MAAM,QAAQ6C,KAAK,kBAD1B,GAGlCsoB,KAAKmK,QAAQ3kB,KAAO,SAAU2sC,EAAMh5B,EAAMrI,GACxCmE,EAAgBkV,QAAQ+nB,QAAQC,EAAMh5B,EAAMrI,IAG9CmE,EAAgBkV,QAAQioB,OAASpyB,KAAKmK,QAAQioB,OAC9Cn9B,EAAgBkV,QAAQkoB,UAAY,IAAI5iD,SACtC,UAAUuwB,KAAKmK,QAAQioB,OACpB37C,WACA5B,MAAM,SACN6C,KAAK,mBAJ0B,GAMpCsoB,KAAKmK,QAAQioB,OAAS,WACpBn9B,EAAgBkV,QAAQkoB,YA9H5B,WACE,GAA4B,UAAxBryB,KAAKmK,QAAQrZ,OAAoB,CACnC,IAAIwhC,EAAa,EAEa,IAA5B7+B,EAAUmc,eACgB,IAA1Bnc,EAAU0X,aAC0B,OAApC/rB,EAAE,gCAEFkzC,EAAalzC,EAAE,8BAA8BpF,aAAe,GAE9DgmB,KAAKmK,QAAQooB,IAAIt8C,MAAMsC,IAAM,GAAGhC,KAAK2D,IACnCY,SAASklB,KAAKmK,QAAQooB,IAAIt8C,MAAMsC,IAAK,IACrC6G,EAAE,QAAQpF,aACRoF,EAAE,UAAUpF,aACZgmB,KAAKmK,QAAQqoB,GAAGx4C,aAChBs4C,EACA,SA+GJG,IAGFx9B,EAAgBy9B,gBAAkB1yB,KAAK0yB,gBACvC1yB,KAAK0yB,gBAAkB,WACrBZ,GAAU78B,EAAgBy9B,kBAG5Bz9B,EAAgB09B,cAAgB3yB,KAAK2yB,cACrC3yB,KAAK2yB,cAAgB,WACnBb,GAAU78B,EAAgB09B,gBAI5BvzC,EAAE,aAAazN,oBAAoB,QAASquB,KAAK4yB,aAAa,GAC9DxzC,EAAE,aAAahS,iBACb,SACA,WACE0kD,GAAU9xB,KAAK4yB,gBAEjB,GAGF39B,EAAgB4rB,gBAAkB7gB,KAAK6gB,gBACvC7gB,KAAK6gB,gBAAkB,WACrB5rB,EAAgB4rB,kBArHlB7rB,EAAuB,GACvBxjB,OAAO6C,KAAK2rB,KAAKiE,iBAAiBhB,SAASj1B,IACJ,OAAjCoR,EAAE,UAAUpR,KAAKy3C,cACnBzwB,EAAqBhnB,GAAKoR,EAAE,UAAUpR,KAAKy3C,YAC3CrmC,EAAE,UAAUpR,KAAKy3C,YAAc,WACxBzlB,KAAK6yB,YACR7yB,KAAK8yB,WAAWpmD,MAChBszB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,IAAK,GAAGr5C,OAE/B,SAEFgyB,KAAKmK,QAAQie,eAwGnBpoB,KAAKiV,kBAGPhgB,EAAgB89B,aAAe/yB,KAAK+yB,aAKpC/yB,KAAK+yB,aAAe,SAAU3yB,KAEzB3M,EAAUirB,cACX1e,KAAKyX,YAAYrX,GAAMqG,UAAYzG,KAAK0G,UACtB,IAAlB1G,KAAK+C,UAEL9N,EAAgB89B,aAAa3yB,IAIjCnL,EAAgB+9B,mBAAqBhzB,KAAKgzB,mBAM1ChzB,KAAKgzB,mBAAqB,SAAUC,GAClCh+B,EAAgB+9B,mBAAmBC,GA1gEvC,SAAqBA,GACnB,GAAiC,IAA7Bx/B,EAAU8pB,eAAsB,CAClC,MAAO2V,EAAUC,GA9DrB,SAA6BF,GAC3B1pB,KAGwBnqB,EAAE,iBAAiBgxB,SAAS,GAAG5kB,UAAU62B,SAC/D,aAEmBtnB,GAAiBk4B,EACjCn4B,GAAgBm4B,EAGrB,IAAIvxB,EAAQ,EACZ,GACE5G,KAAkBS,IAClBR,KAAmBS,GAEnB,IAAK,IAAIxtB,EAAIgyB,KAAKyX,YAAYxpC,OAAS,EAAGD,GAAK,IAAKA,EAClD,GAAIgyB,KAAKyX,YAAYzpC,EAAI,GAAGo0B,OAAS,EAAG,CACtC,MAAMsiB,EAAkB9kB,GAAWI,KAAKyX,YAAYzpC,GAAGuE,MAAMA,KAC7DqtB,GAAW8kB,GAAiBtiB,QAAU,EACtC5H,IAAqB,EACrBkH,EACE9B,GAAW8kB,GAAiBxiB,UAC5BlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAW8kB,GAAiBtiB,OAC1B,EACAxC,GAAW8kB,GAAiBviB,MAEpCT,EAAQ1B,KAAK4C,oBAAoBhD,GAAW8kB,GAAkBhjB,GAC9DA,EAAQnrB,KAAKoL,KAAK+f,GAClB,MAKN,MAAMyW,EAAwBxd,GAO9B,OANAsa,KAEAkC,KACIgB,IAA0Bxd,IAC5Bsa,KAEK,CAAC5Z,GAAe2E,KAAKgF,UAAWtD,GAkBH0xB,CAAoBH,GAChDI,EAAgBx6B,GACpBs6B,GAAiBD,EAAWlzB,KAAKgF,YAE7BsuB,EAAqB77B,GAA4By7B,EAAWlzB,KAAKgF,WAEvE5lB,EAAE,kBAAkBnJ,MAAMs9C,UAAY,OACtCn0C,EAAE,kBAAkBnJ,MAAMsvB,OAAS,MACnCnmB,EAAE,kBAAkBwK,YAAYtd,SAAS4D,cAAc,QAAQzB,UAC7D,OACF,MAAM61B,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMm8B,SAAW,QACrB9N,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAIjzB,YAAc,wCAAwComB,GACxDy7B,OACII,sBACNl0C,EAAE,kBAAkBwK,YAAY0a,GAChC,MAAMkvB,EAAOlnD,SAAS4D,cAAc,OACpCsjD,EAAKv9C,MAAMm8B,SAAW,QACtBohB,EAAKv9C,MAAMuW,UAAY,SACvBgnC,EAAKniD,YAAc,gBAAgBgiD,yBACnCj0C,EAAE,kBAAkBwK,YAAY4pC,IAo/DhCC,CAAYR,IAGdh+B,EAAgBy+B,kBAAoB1zB,KAAK0zB,kBAIzC1zB,KAAK0zB,kBAAoB,SAAUC,GACjC1+B,EAAgBy+B,kBAAkBC,GAp/DtC,WAEE,GAEwE,QADrEv0C,EAAE,gBAAgB3Q,UAAUC,MAAM,aACjC0Q,EAAE,gBAAgBgxB,SAAS,GAAGn6B,MAAMqB,WAAW5I,MAAM,WAEvD,IAAK,IAAIV,EAAI,EAAGA,EAAIoR,EAAE,gBAAgBilB,WAAWp2B,OAAQD,IACL,cAA9CoR,EAAE,gBAAgBilB,WAAWr2B,GAAGS,YAClC2Q,EAAE,gBAAgBgxB,SAASpiC,GAAGy3C,YAAc,WAC1CxD,KACAjiB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACXpG,EAAE,gBACF,mDAAmDsc,WACnD,QAEFsE,KAAKmK,QAAQie,UAEfhpC,EAAE,gBAAgBgxB,SAASpiC,GAAG43C,WAAa,WACzC5lB,KAAKmK,QAAQypB,WAAa,IAk+DhCC,IAGF5+B,EAAgB0d,WAAa3S,KAAK2S,WAClC3S,KAAK2S,WAAa,gBAEwB,IAA9B+V,KAAmBpqC,aACiB,IAApCoqC,KAAmBpqC,OAAOC,QAElC0W,EAAgB0d,aAvXtB,WACE,MAAM6Q,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAM/0C,UAAY,QAEE,UAAhBuxB,KAAK0Q,QACP8S,EAAMnyC,YAAc,0BApExB,SAAqBmyC,GACnB,MAAM4F,EAAO98C,SAAS+8C,yBACtBD,EAAKx/B,YAAY45B,GAEjBhyC,OAAO6C,KAAKw8C,IAAc5tB,SAASke,IACjC,MAAM2S,EAAc/C,GAAiB5P,EAAO0P,GAAa1P,IACzDiI,EAAKx/B,YAAYkqC,GACbrgC,EAAUkrB,OAAOwC,KAGL,iBAAVA,EACF3vC,OAAO6C,KAAKy8C,IAA0B7tB,SAAS8wB,IAC7C,MAAMC,EAAiBjD,GACrBgD,EACAjD,GAAyBiD,IAE3BC,EAAe/9C,MAAMuvB,SAAW,OAChCwuB,EAAe/9C,MAAM6U,QAAU,MAC/Bs+B,EAAKx/B,YAAYoqC,GACbvgC,EAAUkrB,OAAOoV,IACnBviD,OAAO6C,KAAKstC,IAAc1e,SAAS1b,IAC7Bo6B,GAAap6B,GAAQ45B,QAAU4S,GACjC3K,EAAKx/B,YAAYonC,GAAiBzpC,UAK1C/V,OAAO6C,KAAKstC,IAAc1e,SAAS1b,IAC7Bo6B,GAAap6B,GAAQ45B,QAAUA,GACjCiI,EAAKx/B,YAAYonC,GAAiBzpC,WAM5C,MAAM0sC,EAAS3nD,SAAS4D,cAAc,OACtC+jD,EAAOxlD,UAAY,UACnB,MAAMylD,EAAY5nD,SAAS4D,cAAc,KACzCgkD,EAAUzlD,UAAY,SACtBylD,EAAU3O,QAAU,WAClByB,GAAWhM,KAEbkZ,EAAU7iD,YAAc,kBACxB4iD,EAAOrqC,YAAYsqC,GACnB9K,EAAKx/B,YAAYqqC,GAEjB70C,EAAE,QAAQilB,WAAW,GAAGud,aACtBwH,EACAhqC,EAAE,QAAQilB,WAAW,GAAGA,WACtBjlB,EAAE,QAAQilB,WAAW,GAAGA,WAAWp2B,OAAS,IAoB9CkmD,CAAY3Q,IACa,UAAhBxjB,KAAK0Q,OACVjd,EAAUkd,QACZ6S,EAAMnyC,YAAc,4BACpBk4C,GAAa/F,IAEU,QAAhBxjB,KAAK0Q,SACd8S,EAAMnyC,YAAc,kBAtVxB,SAAqBmyC,GACnB,MAAM4Q,EAAO9nD,SAAS4D,cAAc,OACpCkkD,EAAK3lD,UAAY,aAEjB,MAAMs6C,EAAOz8C,SAAS4D,cAAc,QAmBpC,GAlBA64C,EAAK9yC,MAAM+U,OAAS,UACpB+9B,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK9yC,MAAMmG,OAAS,OACpB2sC,EAAK9yC,MAAMkG,MAAQ,OACnB4sC,EAAK9yC,MAAMsU,aAAe,MAC1Bw+B,EAAK9yC,MAAMuW,UAAY,SACvBu8B,EAAK9yC,MAAM4U,gBAAkB,UAC7Bk+B,EAAK9yC,MAAM2F,MAAQ,QACnBmtC,EAAK9yC,MAAMuvB,SAAW,OACtBujB,EAAK9yC,MAAMyvB,cAAgB,SAC3BqjB,EAAK13C,YAAcoiB,EAAUkrB,OAAOwB,QAAU,IAAM,IACpD4I,EAAKxD,QAAU,WACbsD,GAAa,WACb7oB,KAAK2S,cAEP6Q,EAAM55B,YAAYm/B,GAClBqL,EAAKxqC,YAAY45B,GAEb/vB,EAAUkrB,OAAOwB,QAAS,CAC5B,MAAMkU,EAAc/nD,SAAS4D,cAAc,OAC3CmkD,EAAY7oC,UA7nRO,siBA8nRnB4oC,EAAKxqC,YAAYyqC,GACjB,MAAMC,EAAQhoD,SAAS4D,cAAc,OACrCokD,EAAM9oC,UAtnRiB,gwBAunRvB4oC,EAAKxqC,YAAY0qC,GAGnB,MAAMC,EAAOn1C,EAAE,QAAQgxB,SAAS,GAChCmkB,EAAK3S,aAAawS,EAAMG,EAAKnkB,SAAS,IAsTpCokB,CAAYhR,IA0WViR,KAIJx/B,EAAgB4b,QAAU7Q,KAAK6Q,QAC/B7a,EAAY,SAAU8C,EAAM47B,GAC1B,OAAIx8B,OAAO5I,MAAMwJ,IAASA,GAAQ,EACzB7D,EAAgB4b,QAAQ/X,EAAM47B,GAChC77B,GAAWC,EAAOkH,KAAK8K,IAAK,IAGrC7V,EAAgB0/B,MAAQ30B,KAAK20B,MAC7B30B,KAAK20B,MAAQ,WACX1/B,EAAgB0/B,QAGhB,IAAInR,EAAQ,iBACQ,UAAhBxjB,KAAKyR,SAAoB+R,EAAQ,gBACrChsB,GAAQ,GAAGwI,KAAK6jB,SAAW,cAAgB,KAAKpsB,GAA4BuI,KAAK0G,YAC9D,IAAjB1G,KAAK0G,QAAgB,SAAW,eAC5B8c,IA9WV,WACE,GAAIxjB,KAAK6jB,UAAgC,IAApBpwB,EAAU+D,MAC7BlrB,SAASk3C,MAAQhsB,QACZ,GAAwB,IAApB/D,EAAU+D,MAAa,CAChC,IAEIo9B,EACAC,EACAC,EAJAC,GAAQ,EACRC,GAAQ,EAORJ,EAFAp2B,GACEA,GAA0BwiB,MAClB,KAAKzqC,KAAKoL,KAAK6c,GAA0BunB,KAAO/lB,KAAK8K,QAErD,KAAKv0B,KAAKoL,KAAK6c,GAA0BunB,KAAO/lB,KAAK8K,QACvD9K,KAAKqR,IAAI,uBAOJ,OANL,IACRnZ,OAAO9Y,EAAE,sBAAsB/N,aAAe,EAAI,IAAM,KACvDkF,KAAKoL,MACLqe,KAAKkR,aAAaC,OAAOI,QAAUvR,KAAKkR,aAAaC,OAAOrY,MAC3DkH,KAAK8K,QAIPxW,IACFygC,GAAQ,EACRF,EAAU,OAGQ,cAAhB70B,KAAKyR,SACPujB,GAAQ,EAENF,EADEzgC,EACQ,KAAK9d,KAAKoL,KAAK8c,GAAsBsnB,KAAO/lB,KAAK8K,QAEjD,IACR5S,OAAO9Y,EAAE,uBAAuB/N,aAAe,EAAI,IAAM,KACxDkF,KAAKoL,MACLqe,KAAKkR,aAAaQ,SAASH,QAC1BvR,KAAKkR,aAAaQ,SAAS5Y,MAC3BkH,KAAK8K,SAMb,IAAI17B,EAAMooB,GACY,MAAlBpoB,EAAI2L,OAAO,KACb3L,EAAMA,EAAIg3B,UAAUh3B,EAAI6lD,YAAY,KAAO,IAE7C3oD,SAASk3C,MAAQ,GACfoR,GAAWG,EAAQF,EAAU,KAAOG,EAAQF,EAAU,OACpD1lD,SACC,GAAwB,IAApBqkB,EAAU+D,MAAa,CAChC,IAAIpoB,EAAM,GACN8lD,GAAQ,EACR12B,KACF02B,GAAQ,EACJ12B,GAA0BwiB,MAC5B5xC,GAAO,KAAKmH,KAAKoL,KAAK6c,GAA0BunB,KAAO/lB,KAAK8K,QACzD17B,GAAO,KAAKmH,KAAKoL,KAAK6c,GAA0BunB,KAAO/lB,KAAK8K,SAE/DxW,IACF4gC,GAAQ,EACR9lD,GAAO,OAEW,cAAhB4wB,KAAKyR,QAA0Bpd,IACjCjlB,GAAO,KAAKmH,KAAKoL,KAAK8c,GAAsBsnB,KAAO/lB,KAAK8K,QACxDoqB,GAAQ,GAENA,IAAO9lD,GAAO,OAClB,IAAIo0C,EAAQ,iBACQ,UAAhBxjB,KAAKyR,SAAoB+R,EAAQ,gBACrCp0C,GAAOo0C,EACPl3C,SAASk3C,MAAQp0C,GAsSjB+lD,GAxRJ,WACE,MAAMnQ,EAAgBzuC,KAAK6D,IACzB,EACA4lB,KAAKilB,oBACH1uC,KAAKkE,MAAMulB,KAAK4Z,gBAAgB5Z,KAAK6Z,aAAe7Z,KAAKwT,gBACvD,IAEDxT,KAAKwT,cAAgBxT,KAAK6Z,eAGzB5Z,EAAYD,KAAK6Q,SACnBwC,KAAKC,MAAQtT,KAAKC,WAAa,IAAQD,KAAK8K,KAC7C,GAEH,IAAI17B,EAAM,GACVA,GAAO,kCACS,KAAd6wB,EAAmB,gBAAkBA,aAEvC7wB,GAAO,2BACH4wB,KAAK4J,SAAW,IAClBx6B,GAAO,uCAAuCqoB,GAC5CuI,KAAK4J,2BACYnS,GAA4BuI,KAAK4J,cACpDx6B,GAAO,4BAGPA,GADEirB,GAAyB,EACpB,6CACAA,GAAyB,EAE9B,6GAEK,uCAAuC5C,GAC5C4C,6BACyB5C,GACzB4C,uBACmB5C,GACnB4C,mCAEJjrB,GAAO,2BACPA,GAAO,eAAeqoB,GACpButB,8CAEF51C,GACEqkB,EAAU+pB,oBACN,oCAAoC9e,iDAAwEjH,GAC1GgF,GACA,iDAEF,GAENrd,EAAE,iBAAiBoM,UAAYpc,EAyO7BgmD,IAmDJ,SAASC,KACP5S,KACAhI,KACAM,KAGAlnB,EAAeriB,OAAO6C,KAAK2rB,KAAK+jB,MAAM91C,OAh9EtC4mB,EAAUvoB,SAAS4D,cAAc,SACjC2kB,EAAQxmB,KAAO,WACfwmB,EAAQ0M,GAAK,QAEbj1B,SAASgpD,KAAK1rC,YAAYiL,GA3xL5B,WACE,MAAMyR,EAASh6B,SAAS4D,cAAc,OACtCo2B,EAAO/E,GAAK,WACZ+E,EAAOrwB,MAAMmG,OAAS,OACtBkqB,EAAOrwB,MAAMkG,MAAQ,OACrBmqB,EAAOrwB,MAAMgI,SAAW,WACxBqoB,EAAOrwB,MAAMqV,QAAU,OACvBgb,EAAOrwB,MAAM4U,gBAAkB,UAC/Byb,EAAOrwB,MAAM8V,gBAAkB,+CAC/Bua,EAAOrwB,MAAMs/C,UAAY,kBACzBjvB,EAAOrwB,MAAMoV,SAAW,OACxBib,EAAOrwB,MAAMu/C,WACX,uDAEF,MAAMC,EAAQnvB,EAAO1c,YAAYtd,SAAS4D,cAAc,UACxDulD,EAAMx/C,MAAMkG,MAAQ,OACpBs5C,EAAMx/C,MAAMuW,UAAY,SACxBipC,EAAMx/C,MAAMoW,WAAa,SACzB,MAAMqpC,EAAQD,EAAM7rC,YAAYtd,SAAS4D,cAAc,UAEjDylD,EAAW,SAAUx8B,EAAMvd,GAC/B,MAAMg6C,EAAKtpD,SAAS4D,cAAc,MAIlC,OAHA0lD,EAAG3/C,MAAMuW,UAAY,QACrBopC,EAAGnnD,UAAYymB,EAAetZ,EAC9Bg6C,EAAGvkD,YAAc8nB,EACVy8B,GAEHvnD,EAAOqnD,EAAM9rC,YAAYtd,SAAS4D,cAAc,OACtD7B,EAAK4H,MAAMg0B,WAAa,OACxB57B,EAAKub,YAAY+rC,EAAS,aAAsCrgC,IAClDogC,EAAM9rC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAY+rC,EAAS,eAAgBvgC,IAChCsgC,EAAM9rC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAY+rC,EAAS,iBAAkBvgC,IAC7BsgC,EAAM9rC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAY+rC,EAAS,YAAavgC,IAEvChW,EAAE,WAAWwK,YAAY0c,GAEzB90B,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCg4B,GAA2Bh4B,MAmsQ7B6nD,GAljQF,WACE,MAAM9uB,EAAWz6B,SAAS4D,cAAc,OACxC62B,EAASxF,GAAK,aACdwF,EAAS9wB,MAAMgI,SAAW,WAC1B8oB,EAAS9wB,MAAMqV,QAAU,OACzByb,EAAS9wB,MAAMmG,OAAS,MACxB2qB,EAAS9wB,MAAMuvB,SAAW,OAC1BuB,EAAS9wB,MAAMg0B,WAAa,OAC5BlD,EAAS9wB,MAAM4U,gBAAkB,QAGjC,MAAMirC,EAAe1wB,GAAY,eAAgB,cAAe,CAC9D,CAAE7D,GAAI,qBAAsB3lB,MAAO8Z,GACnC,CAAE6L,GAAI,kBAAmB3lB,MAAO6Z,KAElCsR,EAASnd,YAAYksC,GAGrB,MAAMC,EAAgB3wB,GAAY,gBAAiB,gBAAiB,CAClE,CAAE7D,GAAI,sBAAuB3lB,MAAO8Z,GACpC,CAAE6L,GAAI,mBAAoB3lB,MAAO2Z,KAEnCwR,EAASnd,YAAYmsC,GACrB,MAAMC,EAAqB1pD,SAAS4D,cAAc,OAClD8lD,EAAmBz0B,GAAK,uBACxBwF,EAASnd,YAAYosC,GAErB52C,EAAE,WAAWwK,YAAYmd,GAwhQzBkvB,GA9tFF,WACE,MAAMC,EAAa5pD,SAAS4D,cAAc,OAC1CgmD,EAAW30B,GAAK,eAChB20B,EAAWjgD,MAAMkG,MAAQ,OACzB+5C,EAAWjgD,MAAM4U,gBAAkB,QACnCqrC,EAAWjgD,MAAMuW,UAAY,SAC7B0pC,EAAWjgD,MAAMg0B,WAAa,OAC9BisB,EAAWjgD,MAAMqV,QAAU,OAC3B4qC,EAAWjgD,MAAMyU,OAAS,KAC1BwrC,EAAWtQ,WAAa,WACtB5lB,KAAKmK,QAAQnlB,QAGf,MAAMktB,EAAc5lC,SAAS4D,cAAc,OAC3CgiC,EAAYtoB,YA7Dd,WACE,MAAMusC,EAAS7pD,SAAS4D,cAAc,OACtCimD,EAAOlgD,MAAMm8B,SAAW,QACxB+jB,EAAOlgD,MAAMo0B,aAAe,MAC5B,MAAMmZ,EAAQl3C,SAAS4D,cAAc,OACrCszC,EAAM/0C,UAAY,OAClB+0C,EAAMvtC,MAAMo0B,aAAe,MAC3BmZ,EAAMnyC,YAAc,SACpB8kD,EAAOvsC,YAAY45B,GAEnB,MAAM4S,EAAa,SAAUx6C,EAAOud,GAClC,MAAMmL,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMyvB,cAAgB,SAC1B,MAAMqjB,EAAOz8C,SAAS4D,cAAc,QAQpC,OAPA64C,EAAKt6C,UAAY0mB,EAAevZ,EAChCmtC,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK9yC,MAAMmG,OAAS,OACpB2sC,EAAK9yC,MAAMkG,MAAQ,OACnB4sC,EAAK9yC,MAAMwvB,YAAc,MACzBnB,EAAI1a,YAAYm/B,GAChBzkB,EAAI1a,YAAYtd,SAASqgB,eAAewM,IACjCmL,GAoBT,OAjBA6xB,EAAOvsC,YAAYwsC,EAAWhhC,EAAW,iCACzC+gC,EAAOvsC,YAAYwsC,EAAW/gC,EAAY,6BAC1C8gC,EAAOvsC,YACLwsC,EACE9gC,EACA,uDAGJ6gC,EAAOvsC,YACLwsC,EACE7gC,EACA,wDAGJ4gC,EAAOvsC,YAAYwsC,EAAW5gC,EAAU,8BACxC2gC,EAAOvsC,YAAYwsC,EAAW3gC,EAAa,iCAC3C0gC,EAAOvsC,YAAYwsC,EAAW1gC,EAAW,4BAClCygC,EAoBiBE,IACxBH,EAAWzQ,YAAc,WACvBzlB,KAAKmK,QAAQ3kB,KAAK9Y,KAAM2lC,OAAOH,EAAY1mB,WAAY,UAGzD,MAAM8qC,EAAgB,SAAU/0B,EAAI3lB,GAClC,MAAMmtC,EAAOz8C,SAAS4D,cAAc,QAMpC,OALA64C,EAAKxnB,GAAKA,EACVwnB,EAAKt6C,UAAYymB,EAAetZ,EAChCmtC,EAAK9yC,MAAMkG,MAAQ,qBACnB4sC,EAAK9yC,MAAMqV,QAAU,eACrBy9B,EAAK13C,YAAc,IACZ03C,GAETmN,EAAWtsC,YAAY0sC,EAAc,mBAAoBlhC,IACzD8gC,EAAWtsC,YAAY0sC,EAAc,oBAAqBjhC,IAC1D6gC,EAAWtsC,YAAY0sC,EAAc,qBAAsBhhC,IAC3D4gC,EAAWtsC,YAAY0sC,EAAc,qBAAsB/gC,IAC3D2gC,EAAWtsC,YAAY0sC,EAAc,kBAAmB9gC,IACxD0gC,EAAWtsC,YAAY0sC,EAAc,qBAAsB7gC,IAC3DygC,EAAWtsC,YAAY0sC,EAAc,mBAAoB5gC,IAEzDtW,EAAE,YAAY+N,WAAWy0B,aACvBsU,EACA92C,EAAE,YAAY+N,WAAWkX,WAAW,IAyrFtCkyB,GA/7EF,WACE,MAAMC,EAAclqD,SAAS4D,cAAc,OAC3CsmD,EAAYj1B,GAAK,gBACjBi1B,EAAYvgD,MAAMkG,MAAQ,OAC1Bq6C,EAAYvgD,MAAMmG,OAAS,OAC3Bo6C,EAAYvgD,MAAM4U,gBAAkB,QACpC2rC,EAAYvgD,MAAMqV,QAAU,OAC5BkrC,EAAYvgD,MAAMyU,OAAS,aAC3B8rC,EAAYvgD,MAAMgI,SAAW,WAC7BmB,EAAE,WAAWwK,YAAY4sC,GAu7EzBC,GAlhJF,WACE,MAAMjY,EAAUlyC,SAAS4D,cAAc,QACvCsuC,EAAQjd,GAAK,YACbid,EAAQt6B,IAAM,gBACds6B,EAAQyC,KAAO,uDACf30C,SAASoqD,qBAAqB,QAAQ,GAAG9sC,YAAY40B,GA8gJrDmY,GACAnlD,OAAO6C,KAAKyhB,GAAamN,SAASj1B,KAxpFpC,SAA6BkkC,EAAa/Y,EAAMiZ,GAC9C,MAAMmN,EAAUjzC,SAAS4D,cAAc,OACvCqvC,EAAQhe,GAAK2Q,EACb,MAAMoP,EAAOh1C,SAAS4D,cAAc,OACpCoxC,EAAKrrC,MAAMm8B,SAAWA,EACtBkP,EAAKrrC,MAAMo0B,aAAe,MAC1B,MAAM/F,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,OACtB8X,EAAIjzB,YAAc8nB,EAClBmoB,EAAK13B,YAAY0a,GACjBib,EAAQ31B,YAAY03B,GA+oFlBsV,CACE9gC,EAAY9nB,GAAG,GACf8nB,EAAY9nB,GAAG,GACf8nB,EAAY9nB,GAAG,OArhFrB,WACE,MAAMuhD,EAAUjjD,SAAS4D,cAAc,KACvCq/C,EAAQhuB,GAAK,6BACbguB,EAAQl+C,YAAc,iBACtBk+C,EAAQ9gD,UAAY,SACpB8gD,EAAQhK,QAAU,WAChB4B,MAEFoI,EAAQ3J,WAAa,WACnB5lB,KAAKmK,QAAQypB,WAAa,GAE5BrE,EAAQ9J,YAAc,WACpBzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,KAAM,YAE7B,QAEFrnB,KAAKmK,QAAQie,UAEfhpC,EAAE,oBAAoBgxB,SAAS,GAAGymB,OAAOtH,GACzC,MAAME,EAAcnjD,SAAS4D,cAAc,KAC3Cu/C,EAAYluB,GAAK,2BACjBkuB,EAAYp+C,YAAc,qBAC1Bo+C,EAAYhhD,UAAY,SACxBghD,EAAYlK,QAAU,WACa,OAA7BroB,GAAsB,KACxB8C,KAAKkF,UAAUhI,GAAsB,IAAIkqB,GAAK,IAElDqI,EAAY7J,WAAa,WACvB5lB,KAAKmK,QAAQypB,WAAa,GAE5BnE,EAAYhK,YAAc,WACxBzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,KAAM,gBAE7B,QAEFrnB,KAAKmK,QAAQie,UAEfhpC,EAAE,oBAAoBgxB,SAAS,GAAGymB,OAAOpH,GA2+EzCqH,GAp9EA13C,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,aAAanJ,MAAMstB,QAAU,MAE/BnkB,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,YAAYnJ,MAAM,aAAe,OAqInCzE,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,MAAMk2B,EAAKlE,KAAKoB,QAAQpzB,GACiB,OAArCoR,EAAE,UAAU8kB,EAAG3C,MAAMkkB,cACvB3wB,EAAmB9mB,GAAKoR,EAAE,UAAU8kB,EAAG3C,MAAMkkB,YAC7CrmC,EAAE,UAAU8kB,EAAG3C,MAAMkkB,YAAc,WACjCzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,IAAK,GAAGr5C,OAE/B,SAEFgyB,KAAKmK,QAAQie,cAUfpoB,KAAK+2B,aACPjjC,EAAoB1U,EAAE,SAASqmC,YAC/BrmC,EAAE,SAASqmC,YAAc,WACvBzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,IAAK,UAE5B,QAEFrnB,KAAKmK,QAAQie,WAkFjBh0B,EAAgB4L,KAAK5L,cACrB4L,KAAK5L,cAAgB,WACnBA,IA3EE4L,KAAKoB,QAAQiM,KAAKvL,iBACpB1iB,EAAE,gBAAgBqmC,YAAc,WAC9BzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,KAAM,sBAE7B,QAEFrnB,KAAKmK,QAAQie,UAEf5wC,MAAM26C,KAAK/yC,EAAE,cAAcgxB,UAAUnN,SAAS+zB,IAC5C,MAAMC,EAASD,EAAMz1B,GAAGxP,OAAO,GAC/BilC,EAAMvR,YAAc,WAClBzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,IAAK,CAAC,GAAG4P,EAAO,KAAM,GAAGA,EAAO,SAEvD,QAEFj3B,KAAKmK,QAAQie,cAsDjBF,KAhDJ,WACE,GAAIloB,KAAKoB,QAAQF,OAAOY,eAAgB,CACtC,IAAK,IAAI9zB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3BoR,EAAE,YAAYpR,KAAKy3C,YAAc,WAC/BzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,MAAOr5C,KAE9B,QAEFgyB,KAAKmK,QAAQie,UAGjB,IAAK,IAAIp6C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BoR,EAAE,aAAapR,KAAKy3C,YAAc,WAChCzlB,KAAKmK,QAAQge,QAAU,EACvBnoB,KAAKmK,QAAQ3kB,KACX9Y,MACA,WACE,OAAO26C,GAAc,MAAO,CAC1Br5C,EACAgyB,KAAKoB,QAAQF,OAAOC,SAAS2I,KAAK97B,OAGtC,QAEFgyB,KAAKmK,QAAQie,WAqBjB8O,GACA3O,MAEFvoB,KAAK5L,gBAmpELhV,EAAE,wBAAwBqmC,YAAc,WACtCxvB,EAAsB,GAExB7W,EAAE,wBAAwBwmC,WAAa,WACrC3vB,EAAsB,EACtB+J,KAAKmK,QAAQnlB,OACbxT,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACnCmoB,EAA0BnoB,GAAK,MA4DnCikD,KACA1J,KACAvoB,KAAKiV,iBAEL+R,KACAjxB,EAAoBiK,KAAK6jB,SAErB7jB,KAAKuQ,MAAM4mB,OACbn3B,KAAKo3B,MACH,0CAGFp3B,KAAKq3B,OACH,yCACA,GACA,GACA,EACA,GAGJr3B,KAAKs3B,IAAI,eAoEX,MAAMC,GAAK,CACTjqD,KApDF,WACEo1C,IAAiB,EACjB,IAAI8U,GAAU,EACVx3B,KAAKgiB,UAAY9pB,OAz7SF,WA07SjBs/B,EAAUC,QACR,8JAGAD,IACFnC,KACAr1B,KAAK03B,aAAa,OAAQpnB,IAC1BtQ,KAAK03B,aAAa,QAAS9T,IAC3BlB,IAAiB,IAyCnBiV,KA5BF,SAAcvoD,GACZ,MAAMyyC,EAAOxyC,KAAKC,MAAMF,GACxBqzC,KACAuE,GAAWnF,EAAKE,UACK,YAAjBF,EAAKG,UACHhiB,KAAKuQ,MAAM4mB,OACbn3B,KAAKo3B,MACH,iGAGFp3B,KAAKq3B,OACH,gGACA,GACA,GACA,EACA,KAcNxV,KAAMA,IAGR7hB,KAAK43B,YAAY,gBAAiBL,KAr/SlC,IAvgHS","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Disp/MenuSections/SettingsPage.js b/src/Disp/MenuSections/SettingsPage.js index fc68ab56..30bb3ff5 100644 --- a/src/Disp/MenuSections/SettingsPage.js +++ b/src/Disp/MenuSections/SettingsPage.js @@ -20,6 +20,7 @@ import Config from '../../Data/SettingsData'; import ConfigDefault from '../../Data/SettingsDefault'; import RefreshScale from '../HelperFunctions/RefreshScale'; import UpdateColors from '../HelperFunctions/UpdateColors'; +import PlaySound from '../Notifications/Sound'; import { Colors } from '../VariablesAndData'; /** @@ -110,6 +111,18 @@ function CreatePrefOption(config) { }; volume.appendChild(slider); div.appendChild(volume); + const a = document.createElement('a'); + a.className = 'option'; + a.onclick = function () { + PlaySound( + CMOptions[config.replace('Volume', 'SoundURL')], + config.replace('Volume', 'Sound'), + config, + true, + ); + }; + a.textContent = 'Test sound'; + div.appendChild(a); return div; } if (Config[config].type === 'url') { diff --git a/src/Disp/Notifications/Sound.js b/src/Disp/Notifications/Sound.js index e4063925..c76df66e 100644 --- a/src/Disp/Notifications/Sound.js +++ b/src/Disp/Notifications/Sound.js @@ -7,12 +7,13 @@ import { isInitializing } from '../../InitSaveLoad/Variables'; * @param {variable} url A variable that gives the url for the sound (e.g., CM.Options.GCSoundURL) * @param {string} sndConfig The setting in CM.Options that is checked before creating the sound * @param {string} volConfig The setting in CM.Options that is checked to determine volume + * @param {bool} forced Whether the sound should play regardless of settings, used to test the sound */ -export default function PlaySound(url, sndConfig, volConfig) { +export default function PlaySound(url, sndConfig, volConfig, forced) { // The arguments check makes the sound not play upon initialization of the mod - if (CMOptions[sndConfig] === 1 && isInitializing === false) { + if ((CMOptions[sndConfig] === 1 || forced) && isInitializing === false) { // eslint-disable-next-line new-cap - const sound = new realAudio(url); + const sound = new Audio(url); if (CMOptions.GeneralSound) sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100); else sound.volume = CMOptions[volConfig] / 100; diff --git a/src/Main/CheckStates/Garden.js b/src/Main/CheckStates/Garden.js index 808f8064..4e12a93b 100644 --- a/src/Main/CheckStates/Garden.js +++ b/src/Main/CheckStates/Garden.js @@ -13,7 +13,7 @@ export default function CheckGardenTick() { ) { if (LastGardenNextStep !== 0 && LastGardenNextStep < Date.now()) { Flash(3, 'GardFlash'); - PlaySound(CMOptions.GardSoundURL, 'GardSound', 'GardVolume'); + PlaySound(CMOptions.GardSoundURL, 'GardSound', 'GardVolume', false); } LastGardenNextStep = Game.Objects.Farm.minigame.nextStep; } diff --git a/src/Main/CheckStates/GoldenCookie.js b/src/Main/CheckStates/GoldenCookie.js index f04c8935..b8953ef8 100644 --- a/src/Main/CheckStates/GoldenCookie.js +++ b/src/Main/CheckStates/GoldenCookie.js @@ -50,7 +50,7 @@ export default function CheckGoldenCookie() { if (LastGoldenCookieState) { if (LastSpawnedGoldenCookieState < CurrSpawnedGoldenCookieState) { Flash(3, 'GCFlash'); - PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume'); + PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume', false); CreateNotification( 'GCNotification', 'Golden Cookie Spawned', diff --git a/src/Main/CheckStates/Grimoire.js b/src/Main/CheckStates/Grimoire.js index d6bbde15..7be6748e 100644 --- a/src/Main/CheckStates/Grimoire.js +++ b/src/Main/CheckStates/Grimoire.js @@ -18,7 +18,7 @@ export default function CheckMagicMeter() { else if (!LastMagicBarFull) { LastMagicBarFull = true; Flash(3, 'MagicFlash'); - PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume'); + PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume', false); CreateNotification( 'MagicNotification', 'Magic Meter full', diff --git a/src/Main/CheckStates/Season.js b/src/Main/CheckStates/Season.js index 5b0dbb4e..5fec2ccc 100644 --- a/src/Main/CheckStates/Season.js +++ b/src/Main/CheckStates/Season.js @@ -19,7 +19,7 @@ export default function CheckSeasonPopup() { } }); Flash(3, 'SeaFlash'); - PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume'); + PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume', false); CreateNotification( 'SeaNotification', 'Reindeer sighted!', diff --git a/src/Main/CheckStates/Ticker.js b/src/Main/CheckStates/Ticker.js index 22dc0119..27016f97 100644 --- a/src/Main/CheckStates/Ticker.js +++ b/src/Main/CheckStates/Ticker.js @@ -17,7 +17,12 @@ export default function CheckTickerFortune() { Game.TickerEffect && Game.TickerEffect.type === 'fortune'; if (LastTickerFortuneState) { Flash(3, 'FortuneFlash'); - PlaySound(CMOptions.FortuneSoundURL, 'FortuneSound', 'FortuneVolume'); + PlaySound( + CMOptions.FortuneSoundURL, + 'FortuneSound', + 'FortuneVolume', + false, + ); CreateNotification( 'FortuneNotification', 'Fortune Cookie found', diff --git a/src/Main/CheckStates/Wrinkler.js b/src/Main/CheckStates/Wrinkler.js index 07bb4cf9..7b9e10df 100644 --- a/src/Main/CheckStates/Wrinkler.js +++ b/src/Main/CheckStates/Wrinkler.js @@ -32,12 +32,14 @@ export default function CheckWrinklerCount() { CMOptions.WrinklerMaxSoundURL, 'WrinklerMaxSound', 'WrinklerMaxVolume', + false, ); } else { PlaySound( CMOptions.WrinklerSoundURL, 'WrinklerSound', 'WrinklerVolume', + false, ); } if ( From f138745a0f80c2732947f62e7ddfd88e789cb3df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 13:31:30 +0100 Subject: [PATCH 09/25] Formatting changes --- webpack.config.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 41e981f5..7142da38 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,19 +1,22 @@ /** We know this is not how Webpack should be used, but we are slowly transferring our code. * For now this is how at least start to create a structure that allows us to transfer towards * more modular code. Any help is highly appreciated. -*/ + */ const path = require('path'); module.exports = function (env) { - return { - mode: 'production', - devtool: env.production ? 'source-map' : 'eval-source-map', - entry: { - CookieMonster: { import: './src/CookieMonster.js', filename: './CookieMonster.js' }, - }, - output: { - filename: 'CookieMonster.js', - path: path.resolve(__dirname, 'dist'), - }, - }; + return { + mode: 'production', + devtool: env.production ? 'source-map' : 'eval-source-map', + entry: { + CookieMonster: { + import: './src/CookieMonster.js', + filename: './CookieMonster.js', + }, + }, + output: { + filename: 'CookieMonster.js', + path: path.resolve(__dirname, 'dist'), + }, + }; }; From e3d3f649c3cb8fc92044cfaa6df1c56c61b5fca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 13:34:23 +0100 Subject: [PATCH 10/25] Moved files into Github folder --- CONTRIBUTING.md => .github/CONTRIBUTING.md | 0 LICENSE => .github/LICENSE.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename CONTRIBUTING.md => .github/CONTRIBUTING.md (100%) rename LICENSE => .github/LICENSE.md (100%) diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md diff --git a/LICENSE b/.github/LICENSE.md similarity index 100% rename from LICENSE rename to .github/LICENSE.md From 6caee4d8fb3c3c6d68481c69931cd6bb522e073d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 22:28:54 +0100 Subject: [PATCH 11/25] Changed PP colour coding #683 --- CookieMonster.js | 2 +- README.md | 14 +-- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Cache/PP/Building.js | 130 +++++++----------------- src/Cache/PP/ColourOfPP.js | 10 +- src/Cache/VariablesAndData.js | 7 +- src/Data/SettingsData.js | 40 ++------ src/Data/SettingsDefault.js | 4 +- src/Disp/BuildingsUpgrades/Buildings.js | 50 ++++++--- src/Disp/MenuSections/SettingsPage.js | 3 +- 11 files changed, 106 insertions(+), 158 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index a2872f55..ae0a4fc9 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&It.length!==t-1;)t+=1;$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/README.md b/README.md index 776df405..78024948 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,13 @@ Cookie Monster also indicates the time left before being able to buy an upgrade This index is computed for buildings and upgrades. If the relevant option is enabled, it will color-code each of them based on their value: -* Light Blue: (upgrades) This item has a better PP than any building -* Green: This item has the best PP -* Yellow: This item is not the best, but it is closer to best than it is to worst -* Orange: This item is not the worst, but it is closer to worst than it is to best -* Red: This item has the worst PP -* Purple: (upgrades) This item has a worse PP than any building -* Gray: (upgrades) This item has not been calculated and/or cannot be calculated due to no definitive worth. +* Light Blue: (upgrades) This item has a better PP than the best building to buy +* Green: This building has the best PP +* Yellow: This building is within the top 10 of best PP's +* Orange: This building is within the top 20 of best PP's +* Red: This building is within the top 30 of best PP's +* Purple: This building is worse than the top 10 of best PP's +* Gray: This item does not have a PP, often this means that there is no change to CPS Note: For this index, **lower is better**, meaning a building with a PP of 1 is more interesting than one with a PP of 3. diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index a2872f55..ae0a4fc9 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Pt=0,Et=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=0,zt=0,Vt=[],_t={},Xt=0,Qt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},qt=[],Yt=[],Kt=[],Jt=Game.startDate,Zt=Game.startDate;function eo(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function to(){let e=.25;return e*=1+eo("Earth Shatterer"),e}function oo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function no(e){const t=Yt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function io(e){if(Game.hasGod){void 0===qt.Temple.minigame&&(qt.Temple.minigame=Game.Objects.Temple.minigame);const t=qt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function ao(e,t){let o=t;if(no("Season savings")&&(o*=.99),no("Santa's dominion")&&(o*=.99),no("Faberge egg")&&(o*=.99),no("Divine discount")&&(o*=.99),no("Fortune #100")&&(o*=.99),o*=1-.02*eo("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&no(e.fortune.name)&&(o*=.93),o*=oo("buildingCost"),qt.Temple.minigameLoaded){const e=io("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ro(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function lo(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(ro(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){const e=Object.keys(t).map((e=>{const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o}));e.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+po()))/co());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&no(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(no(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&no(e.fortune.name)&&(t*=1.07),e.grandma&&no(e.grandma.name)&&(t*=1+.01*qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&no(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Go(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;no("Thousand fingers")&&(t+=.1),no("Million fingers")&&(t*=5),no("Billion fingers")&&(t*=10),no("Trillion fingers")&&(t*=20),no("Quadrillion fingers")&&(t*=20),no("Quintillion fingers")&&(t*=20),no("Sextillion fingers")&&(t*=20),no("Septillion fingers")&&(t*=20),no("Octillion fingers")&&(t*=20),no("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(qt).forEach((e=>{"Cursor"!==qt[e].name&&(n+=qt[e].amount)})),t*=n,o*=ko(e),o*=Game.magicCpS("Cursor"),o*=oo("cursorCps"),Game.ComputeCps(.1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{no(Game.GrandmaSynergies[e])&&(o*=2)})),no("Bingo center/Research facility")&&(o*=4),no("Ritual rolling pins")&&(o*=2),no("Naughty list")&&(o*=2),no("Elderwort biscuits")&&(o*=1.02),o*=oo("grandmaCps"),no("Cat ladies"))for(let e=0;e{"Grandma"!==qt[e].name&&(i+=qt[e].amount)})),o*=1+.01*eo("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=ko(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function vo(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(qt).forEach((t=>{qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(no("Starlove")&&(e=3),Game.hasGod){const t=io("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function wo(){Ee=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e],mo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Yt[e];void 0===o&&(Yt[e]=vo(e),o=Yt[e]),o.bought=t.bought,Yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Kt[e];void 0===o&&(Kt[e]=bo(e),o=Kt[e]),o.won=t.won,Kt[e]=o})),yo(),Le=ze,Ae=Ve}function xo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function To(e){e.appendChild(xo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(xo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(xo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(xo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(xo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function Mo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Bo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Po(){if(wo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(To(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+po()))/co());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(xo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(xo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=uo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,fo())}}(),ho(),Po(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class No{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Oo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Xt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;ezt?W:t.pp>It?O:N,0!==Number(e.PPSecondsLowerLimit)&&o/co()0&&(n=F),n}function Wo(e){Object.keys(e).forEach((t=>{Game.cookiesPs?e[t].pp=Math.max(e[t].price-(Game.cookies+po()),0)/Game.cookiesPs+e[t].price/e[t].bonus:e[t].pp=e[t].price/e[t].bonus,e[t].color=Fo(e[t],e[t].price)}))}function Lo(){!function(){if($t=1/0,zt=1,Vt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),0===e.ColorPPBulkMode&&Game.buyMode>0){if(Object.keys(ut).forEach((e=>{Game.cookiesPs?ut[e].pp=Math.max(Game.Objects[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].getPrice()/ut[e].bonus:ut[e].pp=Game.Objects[e].getPrice()/ut[e].bonus,Vt.push([ut[e].pp,Game.Objects[e].getPrice()])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((t=>{ut[t].color=Fo(ut[t],Game.Objects[t].getPrice());for(let o=0;o0){let t;if(1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),Object.keys(t).forEach((e=>{Game.cookiesPs?t[e].pp=Math.max(Game.Objects[e].bulkPrice-(Game.cookies+po()),0)/Game.cookiesPs+Game.Objects[e].bulkPrice/t[e].bonus:t[e].pp=Game.Objects[e].bulkPrice/t[e].bonus,Vt.push([t[e].pp,Game.Objects[e].bulkPrice])})),Vt.sort(((e,t)=>e[0]-t[0])),e.PPOnlyConsiderBuyable)for(;Vt[0][1]>Game.cookies&&1!==Vt.length;)Vt.shift();$t=Vt[e.PPExcludeTop][0],zt=Vt[Vt.length-1][0],It=(zt-$t)/2+$t,Object.keys(ut).forEach((o=>{t[o].color=Fo(t[o],Game.Objects[o].bulkPrice);for(let n=0;n{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+po()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=Fo(kt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(no("Heavenly chip secret")&&(e+=.05),no("Heavenly cookie stand")&&(e+=.2),no("Heavenly bakery")&&(e+=.25),no("Heavenly confectionery")&&(e+=.25),no("Heavenly key")&&(e+=.25),e*=1+.05*eo("Dragon God"),no("Lucky digit")&&(e*=1.01),no("Lucky number")&&(e*=1.01),no("Lucky payout")&&(e*=1.01),Game.hasGod){const t=io("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=oo("cps"),no("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];no(o.name)&&("function"==typeof o.power?e*=1+.01*Yt[o.name].power(Yt[o.name]):e*=1+.01*o.power)})),no("Specialized chocolate chips")&&(e*=1.01),no("Designer cocoa beans")&&(e*=1.02),no("Underworld ovens")&&(e*=1.03),no("Exotic nuts")&&(e*=1.04),no("Arcane sugar")&&(e*=1.05),no("Increased merriness")&&(e*=1.15),no("Improved jolliness")&&(e*=1.15),no("A lump of coal")&&(e*=1.01),no("An itchy sweater")&&(e*=1.01),no("Santa's dominion")&&(e*=1.2),no("Fortune #100")&&(e*=1.01),no("Fortune #101")&&(e*=1.07),no("Dragon scale")&&(e*=1.03);let o=1;if(io){let t=io("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=io("ages"),1===t?e*=1+.15*Math.sin(Zt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Zt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Zt/1e3/86400*Math.PI*2)),t=io("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=io("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=io("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}no("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(no("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*eo("Breath of Milk"),io){const e=io("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=oo("milk");let a=1;no("Kitten helpers")&&(a*=1+.1*n*i),no("Kitten workers")&&(a*=1+.125*n*i),no("Kitten engineers")&&(a*=1+.15*n*i),no("Kitten overseers")&&(a*=1+.175*n*i),no("Kitten managers")&&(a*=1+.2*n*i),no("Kitten accountants")&&(a*=1+.2*n*i),no("Kitten specialists")&&(a*=1+.2*n*i),no("Kitten experts")&&(a*=1+.2*n*i),no("Kitten consultants")&&(a*=1+.2*n*i),no("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),no("Kitten marketeers")&&(a*=1+.15*n*i),no("Kitten analysts")&&(a*=1+.125*n*i),no("Kitten executives")&&(a*=1+.115*n*i),no("Kitten angels")&&(a*=1+.1*n*i),no("Fortune #103")&&(a*=1+.05*n*i),Object.keys(qt).forEach((e=>{const t=qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&no("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),no('"egg"')&&($e+=9),e*=a;let r=1;if(no("Chicken egg")&&(r*=1.01),no("Duck egg")&&(r*=1.01),no("Turkey egg")&&(r*=1.01),no("Quail egg")&&(r*=1.01),no("Robin egg")&&(r*=1.01),no("Ostrich egg")&&(r*=1.01),no("Cassowary egg")&&(r*=1.01),no("Salmon roe")&&(r*=1.01),no("Frogspawn")&&(r*=1.01),no("Shark egg")&&(r*=1.01),no("Turtle egg")&&(r*=1.01),no("Ant larva")&&(r*=1.01),no("Century egg")){let e=10*Math.floor((Jt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,no("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+eo("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=eo("Dragon's Fortune");for(let t=0;t{no(e[o])&&(t+=.1)}))}e*=t}if(no("Shimmering veil [off]")){let t=.5;no("Reinforced membrane")&&(t+=.1),e*=1+t}no("Magic shenanigans")&&(e*=1e3),no("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=So(),$e*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Kt[e]?Kt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{no(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(qt).forEach((e=>{t+=qt[e].amount,i=Math.min(qt[e].amount,i),zo("Mathematician")||qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ee>=20&&jo("Enhancer"),Ee>=50&&jo("Augmenter"),Ee>=100&&jo("Upgrader"),Ee>=200&&jo("Lord of Progress"),Ee>=300&&jo("The full picture"),Ee>=400&&jo("When there's nothing left to add"),t>=4e3&&Ee>=300&&jo("Polymath"),t>=8e3&&Ee>=400&&jo("Renaissance baker"),qt.Cursor.amount+qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{no(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{no(Ho[e])||(r=!1)})),r&&jo("Let it snow"),no("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{no(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){wo(),qt[e].amount+=t;const o=qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return Uo(),Vo(),n!==Oe&&Uo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){ut=_o(1),mt=_o(10),ht=_o(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){wo(),"Shimmering veil [on]"===Yt[e].name?Yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Yt[e].name?Yt["Golden switch [off]"].bought=0:Yt[e].bought=(Yt[e].bought+1)%2,Yt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ee+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&jo("Elder nap"),Ne>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Oe;Uo(),Vo(),t!==Oe&&Uo();const o=function(){let e=0;no("Thousand fingers")&&(e+=.1),no("Million fingers")&&(e*=5),no("Billion fingers")&&(e*=10),no("Trillion fingers")&&(e*=20),no("Quadrillion fingers")&&(e*=20),no("Quintillion fingers")&&(e*=20),no("Sextillion fingers")&&(e*=20),no("Septillion fingers")&&(e*=20),no("Octillion fingers")&&(e*=20),no("Nonillion fingers")&&(e*=20);let t=0;Object.keys(qt).forEach((e=>{t+=qt[e].amount})),t-=qt.Cursor.amount,e*=t,no("Plastic mouse")&&(e+=.01*$e),no("Iron mouse")&&(e+=.01*$e),no("Titanium mouse")&&(e+=.01*$e),no("Adamantium mouse")&&(e+=.01*$e),no("Unobtainium mouse")&&(e+=.01*$e),no("Eludium mouse")&&(e+=.01*$e),no("Wishalloy mouse")&&(e+=.01*$e),no("Fantasteel mouse")&&(e+=.01*$e),no("Nevercrack mouse")&&(e+=.01*$e),no("Armythril mouse")&&(e+=.01*$e),no("Technobsidian mouse")&&(e+=.01*$e),no("Plasmarble mouse")&&(e+=.01*$e),no("Miraculite mouse")&&(e+=.01*$e),no("Fortune #104")&&(e+=.01*$e);let o=1;if(no("Santa's helpers")&&(o*=1.1),no("Cookie egg")&&(o*=1.1),no("Halo gloves")&&(o*=1.1),no("Dragon claw")&&(o*=1.03),no("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,no("Luminous gloves")?20:10)),o*=oo("click"),qt.Temple.minigameLoaded&&io){const e=io("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*eo("Dragon Cursor");let n=o*Game.ComputeCps(1,no("Reinforced index finger")+no("Carpal tunnel prevention cream")+no("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Et=qo(6,e,lt),Bt=2*Et[1]/lt,Pt=Et[2]/60/60/6/at,Ft=qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function en(){Qe=900*it/.15,Qe*=at;const e=So();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function tn(){let e=1,t=1,o=1;no("Green yeast digestives")&&(o*=1.01),no("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function nn(){yo(),on(),en(),tn(),Yo(),Jo(),Zo(),ce=new No(Q[Q.length-1]),de=new No(Q[Q.length-1]),pe=new No(Q[Q.length-1]),ue=new No(Q[Q.length-1]),me=new No(q[q.length-1]),he=new No(5),Ko(),Oo(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,BulkBuildColor:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,ColorPPBulkMode:1,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:0,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",ho()):l("CMBotBar").style.display="none",fo()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),ho(),lo(),so()}function cn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){Co()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),fo()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP"],"Sort the display of buildings in either default order or by PP",!1,(function(){lo()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){so()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){lo()})),BulkBuildColor:new un("bool","BarsColors",["Bulk Building Colors (Single Building Color)","Bulk Building Colors (Calculated Bulk Color)"],"Color code bulk buildings based on single buildings color or calculated bulk value color",!1,(function(){lo()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",so()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",so()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show worst PP building, for Clot bar, and for various labels",Purple:"Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),ColorPPBulkMode:new un("bool","Calculation",["Color of PP (Compared to Single)","Color of PP (Compared to Bulk)"],"Color PP-values based on comparison with single purchase or with selected bulk-buy mode",!1,(function(){Lo()})),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Bo()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=_t[e].l.style.left,ie[e].style.top=_t[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Upgrades).forEach((e=>{Yt[e]=vo(e)})),Kt=[],Object.keys(Game.Achievements).forEach((e=>{Kt[e]=bo(e)})),wo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),Co()),go()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(wo(),Yt["Golden switch [off]"].bought=0,Uo(),it=$e):it=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Qt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;wo();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{qt[t].amount>0&&(e=t)})),qt[e].amount-=1,Pe-=1}return Object.keys(qt).forEach((t=>{const o=qt[t];e+=ro(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Xt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(Xo(),Se=0),function(){on(),Lo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Oo(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/co())}(),k=0,_t={},Object.keys(Game.shimmers).forEach((e=>{_t[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===_t[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=_t[e].l.style.opacity,ie[e].style.transform=_t[e].l.style.transform,ie[e].textContent=Math.ceil(_t[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,Po(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+po()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;wo(),0===Yt["Heavenly key"].bought&&(Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,Uo(),t=$e,wo()),jt>=1e6&&jo("Sacrifice"),jt>=1e9&&jo("Oblivion"),jt>=1e12&&jo("From scratch"),jt>=1e15&&jo("Nihilism"),jt>=1e18&&jo("Dematerialize"),jt>=1e21&&jo("Nil zero zilch"),jt>=1e24&&jo("Transcendence"),jt>=1e27&&jo("Obliterate"),jt>=1e30&&jo("Negative void"),jt>=1e33&&jo("To crumbs, you say?"),jt>=1e36&&jo("You get nothing"),jt>=1e39&&jo("Humble rebeginnings"),jt>=1e42&&jo("The end of the world"),jt>=1e45&&jo("Oh, you're back"),jt>=1e48&&jo("Lazarus"),jt>=1e51&&jo("Smurf account"),jt>=1e54&&jo("If at first you don't succeed"),Yt["Heavenly chip secret"].bought=1,Yt["Heavenly cookie stand"].bought=1,Yt["Heavenly bakery"].bought=1,Yt["Heavenly confectionery"].bought=1,Yt["Heavenly key"].bought=1,We=e;const o=Oe;Uo(),Vo(),o!==Oe&&Uo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(co(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Zt=Date.now(),Jt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=qt[Game.ObjectsById[e].name].name;qt[o].amount-=1,Pe-=1,t=qt[o].basePrice*Game.priceIncrease**Math.max(0,qt[o].amount-1-qt[o].free),t=Game.modifyBuildingPrice(qt[o],t),t=Math.ceil(t);break}const o=Oe;return Uo(),Vo(),o!==Oe&&Uo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{mo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=uo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=uo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&It.length!==t-1;)t+=1;$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index b388b807..812f6b87 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMidPP","CacheMaxPP","CacheArrayOfPPs","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheBuildingsBulkPP","CachePP","PPExcludeTop","ColorPPBulkMode","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","BulkBuildColor","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAU7mB,QAG3C,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOinB,WAC7B,IAAOjnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBG,EAAExL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBG,EAAI,CAAC/mB,EAASgnB,KACjC,IAAI,IAAIC,KAAOD,EACXJ,EAAoBM,EAAEF,EAAYC,KAASL,EAAoBM,EAAElnB,EAASinB,IAC5E9hB,OAAOC,eAAepF,EAASinB,EAAK,CAAEE,YAAY,EAAM9hB,IAAK2hB,EAAWC,MAQ3EL,EAAoBM,EAAI,CAACzhB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAoCA,IAAIuhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAU7mB,QAG3C,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOinB,WAC7B,IAAOjnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBG,EAAExL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBG,EAAI,CAAC/mB,EAASgnB,KACjC,IAAI,IAAIC,KAAOD,EACXJ,EAAoBM,EAAEF,EAAYC,KAASL,EAAoBM,EAAElnB,EAASinB,IAC5E9hB,OAAOC,eAAepF,EAASinB,EAAK,CAAEE,YAAY,EAAM9hB,IAAK2hB,EAAWC,MAQ3EL,EAAoBM,EAAI,CAACzhB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAoCA,IAAIuhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Cache/PP/Building.js b/src/Cache/PP/Building.js index d676f211..edf283f7 100644 --- a/src/Cache/PP/Building.js +++ b/src/Cache/PP/Building.js @@ -4,13 +4,11 @@ import { CMOptions } from '../../Config/VariablesAndData'; import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank'; import { ColorGray } from '../../Disp/VariablesAndData'; import { - CacheArrayOfPPs, - CacheMaxPP, - CacheMidPP, CacheMinPP, CacheObjects1, CacheObjects10, CacheObjects100, + CachePPArray, } from '../VariablesAndData'; import ColourOfPP from './ColourOfPP'; @@ -19,16 +17,29 @@ import ColourOfPP from './ColourOfPP'; * It saves all date in CM.Cache.Objects... * It is called by CM.Cache.CacheBuildingsPP() */ -function CacheBuildingsBulkPP(target) { +function CacheColor(target, amount) { Object.keys(target).forEach((i) => { + target[i].color = ColourOfPP( + target[i], + Game.Objects[i].getSumPrice(amount), + ); + // Colour based on excluding certain top-buildings + for (let j = 0; j < CMOptions.PPExcludeTop; j++) { + if (target[i].pp === CachePPArray[j][0]) target[i].color = ColorGray; + } + }); +} + +function CachePP(target, amount) { + Object.keys(target).forEach((i) => { + const price = Game.Objects[i].getSumPrice(amount); if (Game.cookiesPs) { target[i].pp = - Math.max(target[i].price - (Game.cookies + GetWrinkConfigBank()), 0) / + Math.max(price - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs + - target[i].price / target[i].bonus; - } else target[i].pp = target[i].price / target[i].bonus; - - target[i].color = ColourOfPP(target[i], target[i].price); + price / target[i].bonus; + } else target[i].pp = price / target[i].bonus; + CachePPArray.push([target[i].pp, amount]); }); } @@ -38,91 +49,28 @@ function CacheBuildingsBulkPP(target) { */ export default function CacheBuildingsPP() { CacheMinPP = Infinity; - CacheMaxPP = 1; - CacheArrayOfPPs = []; + CachePPArray = []; if (typeof CMOptions.PPExcludeTop === 'undefined') CMOptions.PPExcludeTop = 0; // Otherwise breaks during initialization - // Calculate PP and colors when compared to purchase of optimal building in single-purchase mode - if (CMOptions.ColorPPBulkMode === 0 && Game.buyMode > 0) { - Object.keys(CacheObjects1).forEach((i) => { - if (Game.cookiesPs) { - CacheObjects1[i].pp = - Math.max( - Game.Objects[i].getPrice() - (Game.cookies + GetWrinkConfigBank()), - 0, - ) / - Game.cookiesPs + - Game.Objects[i].getPrice() / CacheObjects1[i].bonus; - } else - CacheObjects1[i].pp = - Game.Objects[i].getPrice() / CacheObjects1[i].bonus; - CacheArrayOfPPs.push([CacheObjects1[i].pp, Game.Objects[i].getPrice()]); - }); - // Set CM.Cache.min to best non-excluded buidliung - CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); - if (CMOptions.PPOnlyConsiderBuyable) { - while (CacheArrayOfPPs[0][1] > Game.cookies) { - if (CacheArrayOfPPs.length === 1) { - break; - } - CacheArrayOfPPs.shift(); - } - } - CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; - CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; - CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; - Object.keys(CacheObjects1).forEach((i) => { - CacheObjects1[i].color = ColourOfPP( - CacheObjects1[i], - Game.Objects[i].getPrice(), - ); - // Colour based on excluding certain top-buildings - for (let j = 0; j < CMOptions.PPExcludeTop; j++) { - if (CacheObjects1[i].pp === CacheArrayOfPPs[j][0]) - CacheObjects1[i].color = ColorGray; - } - }); - // Calculate PP of bulk-buy modes - CacheBuildingsBulkPP(CacheObjects10); - CacheBuildingsBulkPP(CacheObjects100); - } else if (Game.buyMode > 0) { - // Calculate PP and colors when compared to purchase of selected bulk mode - let target; - if (Game.buyBulk === 1) target = CacheObjects1; - else if (Game.buyBulk === 10) target = CacheObjects10; - else if (Game.buyBulk === 100) target = CacheObjects100; - Object.keys(target).forEach((i) => { - if (Game.cookiesPs) { - target[i].pp = - Math.max( - Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank()), - 0, - ) / - Game.cookiesPs + - Game.Objects[i].bulkPrice / target[i].bonus; - } else target[i].pp = Game.Objects[i].bulkPrice / target[i].bonus; - CacheArrayOfPPs.push([target[i].pp, Game.Objects[i].bulkPrice]); - }); - // Set CM.Cache.min to best non-excluded buidliung - CacheArrayOfPPs.sort((a, b) => a[0] - b[0]); - if (CMOptions.PPOnlyConsiderBuyable) { - while (CacheArrayOfPPs[0][1] > Game.cookies) { - if (CacheArrayOfPPs.length === 1) { - break; - } - CacheArrayOfPPs.shift(); - } - } - CacheMinPP = CacheArrayOfPPs[CMOptions.PPExcludeTop][0]; - CacheMaxPP = CacheArrayOfPPs[CacheArrayOfPPs.length - 1][0]; - CacheMidPP = (CacheMaxPP - CacheMinPP) / 2 + CacheMinPP; + // Calculate PP and colors + CachePP(CacheObjects1, 1); + CachePP(CacheObjects10, 10); + CachePP(CacheObjects100, 100); - Object.keys(CacheObjects1).forEach((i) => { - target[i].color = ColourOfPP(target[i], Game.Objects[i].bulkPrice); - // Colour based on excluding certain top-buildings - for (let j = 0; j < CMOptions.PPExcludeTop; j++) { - if (target[i].pp === CacheArrayOfPPs[j][0]) target[i].color = ColorGray; + // Set CM.Cache.min to best non-excluded buidliung + CachePPArray.sort((a, b) => a[0] - b[0]); + let indexOfMin = 0; + if (CMOptions.PPOnlyConsiderBuyable) { + while (CachePPArray[indexOfMin][1] > Game.cookies) { + if (CachePPArray.length === indexOfMin - 1) { + break; } - }); + indexOfMin += 1; + } } + CacheMinPP = CachePPArray[CMOptions.PPExcludeTop][indexOfMin]; + + CacheColor(CacheObjects1, 1); + CacheColor(CacheObjects10, 10); + CacheColor(CacheObjects100, 100); } diff --git a/src/Cache/PP/ColourOfPP.js b/src/Cache/PP/ColourOfPP.js index 2c0c722f..6940ca45 100644 --- a/src/Cache/PP/ColourOfPP.js +++ b/src/Cache/PP/ColourOfPP.js @@ -9,7 +9,7 @@ import { ColorRed, ColorYellow, } from '../../Disp/VariablesAndData'; -import { CacheMaxPP, CacheMidPP, CacheMinPP } from '../VariablesAndData'; +import { CacheMinPP, CachePPArray } from '../VariablesAndData'; /** * This functions return the colour assosciated with the given pp value @@ -24,10 +24,10 @@ export default function ColourOfPP(me, price) { if (me.pp <= 0 || me.pp === Infinity) color = ColorGray; else if (me.pp < CacheMinPP) color = ColorBlue; else if (me.pp === CacheMinPP) color = ColorGreen; - else if (me.pp === CacheMaxPP) color = ColorRed; - else if (me.pp > CacheMaxPP) color = ColorPurple; - else if (me.pp > CacheMidPP) color = ColorOrange; - else color = ColorYellow; + else if (me.pp < CachePPArray[10][0]) color = ColorYellow; + else if (me.pp < CachePPArray[20][0]) color = ColorOrange; + else if (me.pp > CachePPArray[30][0]) color = ColorRed; + else color = ColorPurple; // Colour based on price in terms of CPS if (Number(CMOptions.PPSecondsLowerLimit) !== 0) { diff --git a/src/Cache/VariablesAndData.js b/src/Cache/VariablesAndData.js index 5c885806..25df5f6e 100644 --- a/src/Cache/VariablesAndData.js +++ b/src/Cache/VariablesAndData.js @@ -65,10 +65,10 @@ export let CacheSeasonPopShimmer = {}; export let CacheTimeTillNextPrestige = 0; +/** Stores lowest PP value */ export let CacheMinPP = 0; -export let CacheMidPP = 0; -export let CacheMaxPP = 0; -export let CacheArrayOfPPs = []; +/** Stores all PP values of all buildings for all buy settings (1, 10, 100) */ +export let CachePPArray = []; export let CacheGoldenShimmersByID = {}; @@ -100,6 +100,7 @@ export let CacheDoRemakeBuildPrices; export let CacheHadBuildAura; +/** Store the CPS effect of each god if it was put into each slot */ export let CacheGods = { 0: [0, 0, 0], 1: [0, 0, 0], diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index 87bde73b..367cc1f1 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -1,4 +1,3 @@ -import CachePP from '../Cache/PP/PP'; import CheckNotificationPermissions from '../Config/CheckNotificationPermissions'; import { ToggleTimerBar, ToggleTimerBarPos } from '../Config/SpecificToggles'; import ToggleBotBar from '../Config/Toggles/ToggleBotBar'; @@ -68,7 +67,11 @@ const Config = { SortBuildings: new SettingStandard( 'bool', 'BarsColors', - ['Sort Buildings: Default', 'Sort Buildings: PP'], + [ + 'Sort Buildings: Default', + 'Sort Buildings: PP of x1 purchase', + 'Sort Buildings: PP of selected bulk mode', + ], 'Sort the display of buildings in either default order or by PP', false, function () { @@ -95,19 +98,6 @@ const Config = { UpdateBuildings(); }, ), - BulkBuildColor: new SettingStandard( - 'bool', - 'BarsColors', - [ - 'Bulk Building Colors (Single Building Color)', - 'Bulk Building Colors (Calculated Bulk Color)', - ], - 'Color code bulk buildings based on single buildings color or calculated bulk value color', - false, - function () { - UpdateBuildings(); - }, - ), UpBarColor: new SettingStandard( 'bool', 'BarsColors', @@ -127,17 +117,17 @@ const Config = { 'BarsColors', { Blue: - 'Color Blue. Used to show better than best PP building, for Click Frenzy bar, and for various labels', + 'Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels', Green: 'Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels', Yellow: - 'Color Yellow. Used to show between best and worst PP buildings closer to best, for Frenzy bar, and for various labels', + 'Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels', Orange: - 'Color Orange. Used to show between best and worst PP buildings closer to worst, for Next Reindeer bar, and for various labels', + 'Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels', Red: - 'Color Red. Used to show worst PP building, for Clot bar, and for various labels', + 'Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels', Purple: - 'Color Purple. Used to show worse than worst PP building, for Next Cookie bar, and for various labels', + 'Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels', Gray: 'Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar', Pink: 'Color Pink. Used for Dragonflight bar', @@ -206,16 +196,6 @@ const Config = { 'How much time average Cookie Clicks should consider', false, ), - ColorPPBulkMode: new SettingStandard( - 'bool', - 'Calculation', - ['Color of PP (Compared to Single)', 'Color of PP (Compared to Bulk)'], - 'Color PP-values based on comparison with single purchase or with selected bulk-buy mode', - false, - function () { - CachePP(); - }, - ), PPExcludeTop: new SettingStandard( 'bool', 'Calculation', diff --git a/src/Data/SettingsDefault.js b/src/Data/SettingsDefault.js index e9891034..57883e86 100644 --- a/src/Data/SettingsDefault.js +++ b/src/Data/SettingsDefault.js @@ -5,18 +5,16 @@ const ConfigDefault = { TimerBarPos: 0, TimerBarOverlay: 2, BuildColor: 1, - BulkBuildColor: 0, UpBarColor: 1, UpgradeBarFixedPos: 1, CalcWrink: 0, CPSMode: 1, AvgCPSHist: 3, AvgClicksHist: 0, - ColorPPBulkMode: 1, PPExcludeTop: 0, PPSecondsLowerLimit: 0, PPOnlyConsiderBuyable: 0, - ToolWarnBon: 0, + ToolWarnBon: 1, Title: 1, GeneralSound: 1, GCNotification: 0, diff --git a/src/Disp/BuildingsUpgrades/Buildings.js b/src/Disp/BuildingsUpgrades/Buildings.js index 20c55980..e6c6452d 100644 --- a/src/Disp/BuildingsUpgrades/Buildings.js +++ b/src/Disp/BuildingsUpgrades/Buildings.js @@ -62,22 +62,42 @@ export default function UpdateBuildings() { // (grid rows are 1-based indexing, and row 1 is the bulk buy/sell options) // This regulates sorting of buildings if (Game.buyMode === 1 && CMOptions.SortBuildings) { - const arr = Object.keys(target).map((k) => { - const o = target[k]; - o.name = k; - o.id = Game.Objects[k].id; - return o; - }); + let arr; + if (CMOptions.SortBuildings === 1) { + arr = Object.keys(CacheObjects1).map((k) => { + const o = CacheObjects1[k]; + o.name = k; + o.id = Game.Objects[k].id; + return o; + }); - arr.sort(function (a, b) { - return Colors.indexOf(a.color) > Colors.indexOf(b.color) - ? 1 - : Colors.indexOf(a.color) < Colors.indexOf(b.color) - ? -1 - : a.pp < b.pp - ? -1 - : 0; - }); + arr.sort(function (a, b) { + return Colors.indexOf(a.color) > Colors.indexOf(b.color) + ? 1 + : Colors.indexOf(a.color) < Colors.indexOf(b.color) + ? -1 + : a.pp < b.pp + ? -1 + : 0; + }); + } else if (CMOptions.SortBuildings === 2) { + arr = Object.keys(target).map((k) => { + const o = target[k]; + o.name = k; + o.id = Game.Objects[k].id; + return o; + }); + + arr.sort(function (a, b) { + return Colors.indexOf(a.color) > Colors.indexOf(b.color) + ? 1 + : Colors.indexOf(a.color) < Colors.indexOf(b.color) + ? -1 + : a.pp < b.pp + ? -1 + : 0; + }); + } for (let x = 0; x < arr.length; x++) { Game.Objects[arr[x].name].l.style.gridRow = `${x + 2}/${x + 2}`; diff --git a/src/Disp/MenuSections/SettingsPage.js b/src/Disp/MenuSections/SettingsPage.js index 30bb3ff5..4807ae6b 100644 --- a/src/Disp/MenuSections/SettingsPage.js +++ b/src/Disp/MenuSections/SettingsPage.js @@ -183,7 +183,8 @@ function CreatePrefOption(config) { SaveConfig(); Game.UpdateMenu(); }; - JsColor(input, { hash: true, position: 'right', onInput: change }); + // eslint-disable-next-line no-new + new JsColor(input, { hash: true, position: 'right', onInput: change }); const label = document.createElement('label'); label.textContent = Config.Colors.desc[Colors[i]]; innerDiv.appendChild(label); From f6b2e70f9bf7689526e7a5d2d12262b10b420921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 22:55:02 +0100 Subject: [PATCH 12/25] Fixed formatting and flickering of bottom bar #686 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Cache/PP/Building.js | 4 ++-- src/Disp/InfoBars/BottomBar.js | 2 +- src/Disp/InfoBars/CreateDOMElements.js | 4 ++++ 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index ae0a4fc9..a6a2fd97 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&It.length!==t-1;)t+=1;$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(Math.round(o[t].pp),2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&(t+=1,It.length!==t+1););$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index ae0a4fc9..a6a2fd97 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(o[t].pp,2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&It.length!==t-1;)t+=1;$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(Math.round(o[t].pp),2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&(t+=1,It.length!==t+1););$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 812f6b87..011c984b 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","lastChild","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAU7mB,QAG3C,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOinB,WAC7B,IAAOjnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBG,EAAExL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBG,EAAI,CAAC/mB,EAASgnB,KACjC,IAAI,IAAIC,KAAOD,EACXJ,EAAoBM,EAAEF,EAAYC,KAASL,EAAoBM,EAAElnB,EAASinB,IAC5E9hB,OAAOC,eAAepF,EAASinB,EAAK,CAAEE,YAAY,EAAM9hB,IAAK2hB,EAAWC,MAQ3EL,EAAoBM,EAAI,CAACzhB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAoCA,IAAIuhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Cache/PP/Building.js b/src/Cache/PP/Building.js index edf283f7..172424d7 100644 --- a/src/Cache/PP/Building.js +++ b/src/Cache/PP/Building.js @@ -62,10 +62,10 @@ export default function CacheBuildingsPP() { let indexOfMin = 0; if (CMOptions.PPOnlyConsiderBuyable) { while (CachePPArray[indexOfMin][1] > Game.cookies) { - if (CachePPArray.length === indexOfMin - 1) { + indexOfMin += 1; + if (CachePPArray.length === indexOfMin + 1) { break; } - indexOfMin += 1; } } CacheMinPP = CachePPArray[CMOptions.PPExcludeTop][indexOfMin]; diff --git a/src/Disp/InfoBars/BottomBar.js b/src/Disp/InfoBars/BottomBar.js index 9bc1ef63..0f6e5d2e 100644 --- a/src/Disp/InfoBars/BottomBar.js +++ b/src/Disp/InfoBars/BottomBar.js @@ -96,7 +96,7 @@ export function UpdateBotBar() { ].className = ColorTextPre + target[i].color; l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[ count - ].textContent = Beautify(target[i].pp, 2); + ].textContent = Beautify(Math.round(target[i].pp), 2); const timeColor = GetTimeColor( (Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), diff --git a/src/Disp/InfoBars/CreateDOMElements.js b/src/Disp/InfoBars/CreateDOMElements.js index 15ced101..01fb3715 100644 --- a/src/Disp/InfoBars/CreateDOMElements.js +++ b/src/Disp/InfoBars/CreateDOMElements.js @@ -86,8 +86,12 @@ export function CreateBotBarBuildingColumn(buildingName) { span.className = ColorTextPre + ColorBlue; header.appendChild(document.createTextNode(')')); + type.lastChild.style.paddingLeft = '8px'; bonus.appendChild(document.createElement('td')); + bonus.lastChild.style.paddingLeft = '8px'; pp.appendChild(document.createElement('td')); + pp.lastChild.style.paddingLeft = '8px'; time.appendChild(document.createElement('td')); + time.lastChild.style.paddingLeft = '2px'; } } From af508ceee513153f01ac834a2e3847ede4734e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 23:10:33 +0100 Subject: [PATCH 13/25] Fix simple tooltips #687 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Disp/MenuSections/CreateDOMElements.js | 7 +++++-- src/Disp/Tooltips/Tooltip.js | 7 ++++++- src/Disp/VariablesAndData.js | 1 + 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index a6a2fd97..e6be0a27 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(Math.round(o[t].pp),2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&(t+=1,It.length!==t+1););$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(e);Gt[e]={},t[0]&&(Gt[e].bonus=t[0]),t[1]&&(Gt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index a6a2fd97..e6be0a27 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]];let R,H,$=0,I=-1,z=[],V=1,_=1,X=1;const Q=[10,15,30,60,300,600,900,1800],q=[1,5,10,15,30],Y={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let K,J,Z,ee,te,oe,ne,ie={},ae="";function re(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function se(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=le(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let ce,de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze=0,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=1,rt=1,lt=1,st=0,ct=0,dt=0,pt=0,ut={},mt={},ht={},gt=0,ft=0,Ct=[0,null],yt=0,bt=0,kt={},Gt={},vt={},wt={},xt={},Tt=0,Mt=0,St=[],Bt=0,Et=0,Pt=[],Nt=0,Ot=0,Ft=[],Wt=0,Lt=0,At=[],jt=0,Ut=0,Dt={},Rt={},Ht=0,$t=0,It=[],zt={},Vt=0,_t={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Xt=[],Qt=[],qt=[],Yt=Game.startDate,Kt=Game.startDate;function Jt(e){let t=0;return Game.dragonAuras[Le].name!==e&&Game.dragonAuras[Ae].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Le].name&&"Reality Bending"!==Game.dragonAuras[Ae].name||(t+=.1),t}function Zt(){let e=.25;return e*=1+Jt("Earth Shatterer"),e}function eo(e,t){return void 0===He[e]?void 0===t?1:t:He[e]}function to(e){const t=Qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function oo(e){if(Game.hasGod){void 0===Xt.Temple.minigame&&(Xt.Temple.minigame=Game.Objects.Temple.minigame);const t=Xt.Temple.minigame.gods[e];if(je===t.id)return 1;if(Ue===t.id)return 2;if(De===t.id)return 3}return!1}function no(e,t){let o=t;if(to("Season savings")&&(o*=.99),to("Santa's dominion")&&(o*=.99),to("Faberge egg")&&(o*=.99),to("Divine discount")&&(o*=.99),to("Fortune #100")&&(o*=.99),o*=1-.02*Jt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&to(e.fortune.name)&&(o*=.93),o*=eo("buildingCost"),Xt.Temple.minigameLoaded){const e=oo("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function io(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ao(){let t=Game.buyBulk;if(1===Game.buyMode?_=t:t=_,1===t?t=ut:10===t?t=mt:100===t&&(t=ht),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(ut).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=re(io(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(ut).map((e=>{const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=ut[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?V=o:o=V,1===o&&(o=ut),10===o&&(o=mt),100===o&&(o=ht),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=re(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=re(Math.round(o[t].pp),2);const n=se((Game.Objects[t].bulkPrice-(Game.cookies+so()))/lo());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&to(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(to(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&to(e.fortune.name)&&(t*=1.07),e.grandma&&to(e.grandma.name)&&(t*=1+.01*Xt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&to(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function bo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;to("Thousand fingers")&&(t+=.1),to("Million fingers")&&(t*=5),to("Billion fingers")&&(t*=10),to("Trillion fingers")&&(t*=20),to("Quadrillion fingers")&&(t*=20),to("Quintillion fingers")&&(t*=20),to("Sextillion fingers")&&(t*=20),to("Septillion fingers")&&(t*=20),to("Octillion fingers")&&(t*=20),to("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Xt).forEach((e=>{"Cursor"!==Xt[e].name&&(n+=Xt[e].amount)})),t*=n,o*=yo(e),o*=Game.magicCpS("Cursor"),o*=eo("cursorCps"),Game.ComputeCps(.1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{to(Game.GrandmaSynergies[e])&&(o*=2)})),to("Bingo center/Research facility")&&(o*=4),to("Ritual rolling pins")&&(o*=2),to("Naughty list")&&(o*=2),to("Elderwort biscuits")&&(o*=1.02),o*=eo("grandmaCps"),to("Cat ladies"))for(let e=0;e{"Grandma"!==Xt[e].name&&(i+=Xt[e].amount)})),o*=1+.01*Jt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=yo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function ko(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Xt).forEach((t=>{Xt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(to("Starlove")&&(e=3),Game.hasGod){const t=oo("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Go(){Pe=Game.UpgradesOwned,Ne=Game.pledges,Oe=Game.AchievementsOwned,Fe=Game.heavenlyPower,We=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Xt[e];void 0===o&&(Xt[e]=bo(e),o=Xt[e],po(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(je=t.minigame.slot[0],Ue=t.minigame.slot[1],De=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Xt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e]),o.bought=t.bought,Qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=qt[e];void 0===o&&(qt[e]=Co(e),o=qt[e]),o.won=t.won,qt[e]=o})),fo(),Le=ze,Ae=Ve}function vo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function wo(e){e.appendChild(vo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(vo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(vo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(vo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===Z){e.appendChild(vo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function xo(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Mo(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function So(){if(Go(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===Z?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(wo(l("CMTooltipBorder")),1===Game.buyMode?X=t:t=X,1===Game.buyBulk?t=ut:10===Game.buyBulk?t=mt:100===Game.buyBulk&&(t=ht),K=Game.Objects[ee].bulkPrice,J=t[ee].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=re(J,2);const o=Math.round(J/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[ee].color,l("CMTooltipPP").textContent=re(t[ee].pp,2),l("CMTooltipPP").className=S+t[ee].color;const n=se((K-(Game.cookies+so()))/lo());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[ee[1]][ee[0]][0]-1].matureBase,o=t.plantsById[t.plot[ee[1]][ee[0]][0]-1].name;l("CMTooltipBorder").appendChild(vo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${re(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${re(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${re(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?re(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${re(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===Z?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(vo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Y[Game.buffs[t].name]?Y[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ne!==n&&(ne=n,ho())}}(),uo(),So(),function(){if(1===e.TooltipWrink&&1===$){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===z[t]||void 0===z[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),I=t,z[t]=1}}else z[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[I],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[I].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Xt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=re(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,re(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function Po(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+Vt;Game.cpsSucked>0&&(o+=gt),jt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-ge,i=Math.max(0,Game.cookies-fe)/n,a=Math.max(0,gt-Ce)/n,r=Math.max(0,Ct[0]-ye)/n,l=Math.max(0,o-pt)/n,s=(Game.cookieClicks-be)/n;for(let e=0;eIt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/lo()0&&(n=F),n}function Oo(t,o){Object.keys(t).forEach((n=>{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+so()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,It.push([e[o].pp,t])}))}function Wo(){!function(){$t=1/0,It=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Fo(ut,1),Fo(mt,10),Fo(ht,100),It.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;It[t][1]>Game.cookies&&(t+=1,It.length!==t+1););$t=It[e.PPExcludeTop][t],Oo(ut,1),Oo(mt,10),Oo(ht,100)}(),Object.keys(kt).forEach((e=>{Game.cookiesPs?kt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+so()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/kt[e].bonus:kt[e].pp=Game.Upgrades[e].getPrice()/kt[e].bonus,Number.isNaN(kt[e].pp)&&(kt[e].pp=1/0),kt[e].color=No(kt[e],Game.Upgrades[e].getPrice())}))}function Lo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),He=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(We)*Fe*function(){let e=0;if(to("Heavenly chip secret")&&(e+=.05),to("Heavenly cookie stand")&&(e+=.2),to("Heavenly bakery")&&(e+=.25),to("Heavenly confectionery")&&(e+=.25),to("Heavenly key")&&(e+=.25),e*=1+.05*Jt("Dragon God"),to("Lucky digit")&&(e*=1.01),to("Lucky number")&&(e*=1.01),to("Lucky payout")&&(e*=1.01),Game.hasGod){const t=oo("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=eo("cps"),to("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];to(o.name)&&("function"==typeof o.power?e*=1+.01*Qt[o.name].power(Qt[o.name]):e*=1+.01*o.power)})),to("Specialized chocolate chips")&&(e*=1.01),to("Designer cocoa beans")&&(e*=1.02),to("Underworld ovens")&&(e*=1.03),to("Exotic nuts")&&(e*=1.04),to("Arcane sugar")&&(e*=1.05),to("Increased merriness")&&(e*=1.15),to("Improved jolliness")&&(e*=1.15),to("A lump of coal")&&(e*=1.01),to("An itchy sweater")&&(e*=1.01),to("Santa's dominion")&&(e*=1.2),to("Fortune #100")&&(e*=1.01),to("Fortune #101")&&(e*=1.07),to("Dragon scale")&&(e*=1.03);let o=1;if(oo){let t=oo("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=oo("ages"),1===t?e*=1+.15*Math.sin(Kt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Kt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Kt/1e3/86400*Math.PI*2)),t=oo("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=oo("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=oo("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}to("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Oe/25;let i=1;if(to("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Jt("Breath of Milk"),oo){const e=oo("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=eo("milk");let a=1;to("Kitten helpers")&&(a*=1+.1*n*i),to("Kitten workers")&&(a*=1+.125*n*i),to("Kitten engineers")&&(a*=1+.15*n*i),to("Kitten overseers")&&(a*=1+.175*n*i),to("Kitten managers")&&(a*=1+.2*n*i),to("Kitten accountants")&&(a*=1+.2*n*i),to("Kitten specialists")&&(a*=1+.2*n*i),to("Kitten experts")&&(a*=1+.2*n*i),to("Kitten consultants")&&(a*=1+.2*n*i),to("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),to("Kitten marketeers")&&(a*=1+.15*n*i),to("Kitten analysts")&&(a*=1+.125*n*i),to("Kitten executives")&&(a*=1+.115*n*i),to("Kitten angels")&&(a*=1+.1*n*i),to("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Xt).forEach((e=>{const t=Xt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&to("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),$e+=t.amount*a})),to('"egg"')&&($e+=9),e*=a;let r=1;if(to("Chicken egg")&&(r*=1.01),to("Duck egg")&&(r*=1.01),to("Turkey egg")&&(r*=1.01),to("Quail egg")&&(r*=1.01),to("Robin egg")&&(r*=1.01),to("Ostrich egg")&&(r*=1.01),to("Cassowary egg")&&(r*=1.01),to("Salmon roe")&&(r*=1.01),to("Frogspawn")&&(r*=1.01),to("Shark egg")&&(r*=1.01),to("Turtle egg")&&(r*=1.01),to("Ant larva")&&(r*=1.01),to("Century egg")){let e=10*Math.floor((Yt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),ct=1+.1*(1-(1-e/100)**3),r*=ct}e*=r,to("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Jt("Radiant Appetite");const l=$e*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Ao(Game.CpsAchievements[e].name)})),Ie=l;const{n:s}=Game.shimmerTypes.golden,c=Jt("Dragon's Fortune");for(let t=0;t{to(e[o])&&(t+=.1)}))}e*=t}if(to("Shimmering veil [off]")){let t=.5;to("Reinforced membrane")&&(t+=.1),e*=1+t}to("Magic shenanigans")&&(e*=1e3),to("Occult obstruction")&&(e*=0),$e=Game.runModHookOnValue("cps",$e),e*=To(),$e*=e}const Uo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Do=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Ho=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],$o=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Io(e){return qt[e]?qt[e].won:0}function zo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{to(Game.GrandmaSynergies[t])&&(e+=1)})),!Io("Elder")&&e>=7&&Ao("Elder"),!Io("Veteran")&&e>=14&&Ao("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount,i=Math.min(Xt[e].amount,i),Io("Mathematician")||Xt[e].amount=1&&Ao("One with everything"),1===o&&Ao("Mathematician"),1===n&&Ao("Base 10"),i>=100&&Ao("Centennial"),i>=150&&Ao("Centennial and a half"),i>=200&&Ao("Bicentennial"),i>=250&&Ao("Bicentennial and a half"),i>=300&&Ao("Tricentennial"),i>=350&&Ao("Tricentennial and a half"),i>=400&&Ao("Quadricentennial"),i>=450&&Ao("Quadricentennial and a half"),i>=500&&Ao("Quincentennial"),i>=550&&Ao("Quincentennial and a half"),i>=600&&Ao("Sexcentennial"),t>=100&&Ao("Builder"),t>=500&&Ao("Architect"),t>=1e3&&Ao("Engineer"),t>=2e3&&Ao("Lord of Constructs"),t>=4e3&&Ao("Grand design"),t>=8e3&&Ao("Ecumenopolis"),Pe>=20&&Ao("Enhancer"),Pe>=50&&Ao("Augmenter"),Pe>=100&&Ao("Upgrader"),Pe>=200&&Ao("Lord of Progress"),Pe>=300&&Ao("The full picture"),Pe>=400&&Ao("When there's nothing left to add"),t>=4e3&&Pe>=300&&Ao("Polymath"),t>=8e3&&Pe>=400&&Ao("Renaissance baker"),Xt.Cursor.amount+Xt.Grandma.amount>=777&&Ao("The elder scrolls");let a=!0;Object.keys(Do).forEach((e=>{to(Do[e])||(a=!1)})),a&&Ao("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{to(Ro[e])||(r=!1)})),r&&Ao("Let it snow"),to("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{to(e[o].name)&&(t+=1)})),t>=e.length&&Ao("O Fortuna")}}function Vo(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){Go(),Xt[e].amount+=t;const o=Xt[e];"Cursor"===e?(o.amount>=1&&Ao("Click"),o.amount>=2&&Ao("Double-click"),o.amount>=50&&Ao("Mouse wheel"),o.amount>=100&&Ao("Of Mice and Men"),o.amount>=200&&Ao("The Digital"),o.amount>=300&&Ao("Extreme polydactyly"),o.amount>=400&&Ao("Dr. T"),o.amount>=500&&Ao("Thumbs, phalanges, metacarpals"),o.amount>=600&&Ao("With her finger and her thumb"),o.amount>=700&&Ao("Gotta hand it to you"),o.amount>=800&&Ao("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Ao(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Oe;return jo(),zo(),n!==Oe&&jo(),$e-Game.cookiesPs}(t,e),1!==e&&(Se=1)})),o}function _o(){Object.keys(Game.Objects).forEach((e=>{ut[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),mt[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),ht[e].price=Lo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Xo(){ut=Vo(1),mt=Vo(10),ht=Vo(100),kt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Go(),"Shimmering veil [on]"===Qt[e].name?Qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===Qt[e].name?Qt["Golden switch [off]"].bought=0:Qt[e].bought=(Qt[e].bought+1)%2,Qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Pe+=1),"Elder Pledge"===e?(Ne+=1,Ne>0&&Ao("Elder nap"),Ne>=5&&Ao("Elder slumber")):"Elder Covenant"===e?Ao("Elder calm"):"Prism heart biscuits"===e?Ao("Lovely cookies"):"Heavenly key"===e&&Ao("Wholesome");const t=Oe;jo(),zo(),t!==Oe&&jo();const o=function(){let e=0;to("Thousand fingers")&&(e+=.1),to("Million fingers")&&(e*=5),to("Billion fingers")&&(e*=10),to("Trillion fingers")&&(e*=20),to("Quadrillion fingers")&&(e*=20),to("Quintillion fingers")&&(e*=20),to("Sextillion fingers")&&(e*=20),to("Septillion fingers")&&(e*=20),to("Octillion fingers")&&(e*=20),to("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Xt).forEach((e=>{t+=Xt[e].amount})),t-=Xt.Cursor.amount,e*=t,to("Plastic mouse")&&(e+=.01*$e),to("Iron mouse")&&(e+=.01*$e),to("Titanium mouse")&&(e+=.01*$e),to("Adamantium mouse")&&(e+=.01*$e),to("Unobtainium mouse")&&(e+=.01*$e),to("Eludium mouse")&&(e+=.01*$e),to("Wishalloy mouse")&&(e+=.01*$e),to("Fantasteel mouse")&&(e+=.01*$e),to("Nevercrack mouse")&&(e+=.01*$e),to("Armythril mouse")&&(e+=.01*$e),to("Technobsidian mouse")&&(e+=.01*$e),to("Plasmarble mouse")&&(e+=.01*$e),to("Miraculite mouse")&&(e+=.01*$e),to("Fortune #104")&&(e+=.01*$e);let o=1;if(to("Santa's helpers")&&(o*=1.1),to("Cookie egg")&&(o*=1.1),to("Halo gloves")&&(o*=1.1),to("Dragon claw")&&(o*=1.03),to("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,to("Luminous gloves")?20:10)),o*=eo("click"),Xt.Temple.minigameLoaded&&oo){const e=oo("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Jt("Dragon Cursor");let n=o*Game.ComputeCps(1,to("Reinforced index finger")+to("Carpal tunnel prevention cream")+to("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[$e-Game.cookiesPs,o]:[$e-Game.cookiesPs]}return[]}(e);kt[e]={},t[0]&&(kt[e].bonus=t[0]),t[1]&&(kt[e].bonusMouse=t[1])}))}function Qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,St=Qo(7,e,rt),Tt=2*St[1]/rt,Mt=St[2]/60/60/6/at,Pt=Qo(6,e,lt),Bt=2*Pt[1]/lt,Et=Pt[2]/60/60/6/at,Ft=Qo(7,7*e,rt),Nt=2*Ft[1]/rt,Ot=Ft[2]/60/60/6/at,At=Qo(6,7*e,lt),Wt=2*At[1]/lt,Lt=At[2]/60/60/6/at}function Yo(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Te,i=Math.max(0,o-Me)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?wt+=e:"cookie"===o.pool?xt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(vt+=e)}}))}function Jo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),dt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(dt*=2)}}function Zo(){Qe=900*it/.15,Qe*=at;const e=To();e>0?Qe/=e:Qe=0,qe=rt*(.15*Qe)+13,Ye=lt*(.15*Qe)+13,Ke=7*Qe,Je=rt*(.15*Ke)+13,Ze=lt*(.15*Ke)+13,et=2*Qe,tt=.15*et,ot=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountot&&(ot=2*Game.Objects[e].price,nt=e)}))}function en(){let e=1,t=1,o=1;to("Green yeast digestives")&&(o*=1.01),to("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),rt=o*e,lt=o*t,at=1,0===Game.shimmerTypes.golden.n&&(at*=1+1.23*Game.auraMult("Dragon's Fortune"))}function tn(){gt=0,ft=0,Ct=[0,null];for(let e=0;eCt[0]&&(Ct=[t,e]))}}function on(){fo(),tn(),Zo(),en(),qo(),Ko(),Jo(),ce=new Eo(Q[Q.length-1]),de=new Eo(Q[Q.length-1]),pe=new Eo(Q[Q.length-1]),ue=new Eo(Q[Q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(5),Yo(),Po(),Xo(),_o(),Wo()}const nn={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},an=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function rn(){1===e.BotBar?(l("CMBotBar").style.display="",uo()):l("CMBotBar").style.display="none",ho()}function ln(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),uo(),ao(),ro()}function sn(){let t="";for(let o=0;o0?Dt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class dn{constructor(e,t){this.type=e,this.group=t}}class pn extends dn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class un extends dn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class mn extends dn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const hn={BotBar:new pn("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){rn()})),TimerBar:new pn("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){go()})),TimerBarPos:new pn("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ho()})),TimerBarOverlay:new pn("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new pn("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ao()})),SortUpgrades:new pn("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){ro()})),BuildColor:new pn("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ao()})),UpBarColor:new pn("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",ro()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",ro()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends dn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){sn()})),UpgradeBarFixedPos:new pn("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new pn("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new pn("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new pn("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new pn("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new pn("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new mn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new pn("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new pn("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new pn("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new pn("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new pn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){an(e.GCNotification)})),GCFlash:new pn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new pn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new un("vol","NotificationGC",[],"Volume"),GCSoundURL:new pn("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new pn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){an(e.FortuneNotification)})),FortuneFlash:new pn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new pn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new un("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new pn("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new pn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){an(e.SeaNotification)})),SeaFlash:new pn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new pn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new un("vol","NotificationSea",[],"Volume"),SeaSoundURL:new pn("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new pn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new pn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new un("vol","NotificationGard",[],"Volume"),GardSoundURL:new pn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new pn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){an(e.MagicNotification)})),MagicFlash:new pn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new pn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new un("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new pn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new pn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){an(e.WrinklerNotification)})),WrinklerFlash:new pn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new pn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new un("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new pn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new pn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){an(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new pn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new pn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new un("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new pn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new pn("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new pn("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new pn("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new pn("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new pn("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new pn("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new pn("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new mn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new pn("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){Mo()})),TooltipGrim:new pn("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new pn("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new pn("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new pn("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new pn("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new pn("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new pn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new pn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new pn("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new pn("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new pn("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new pn("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=H:Game.sayTime=M.sayTime})),GrimoireBar:new pn("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new mn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new pn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new pn("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){ln()})),ScaleDecimals:new pn("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){ln()})),ScaleSeparator:new pn("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){ln()})),ScaleCutoff:new mn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new pn("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ie).forEach((e=>{ie[e].style.display="block",ie[e].style.left=zt[e].l.style.left,ie[e].style.top=zt[e].l.style.top})):Object.keys(ie).forEach((e=>ie[e].style.display="none"))})),Favicon:new pn("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){cn()})),WrinklerButtons:new pn("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new pn("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function gn(){return JSON.stringify({settings:e,version:"2.031.5"})}function fn(){if(_e!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Xt[e]=bo(e)})),Qt=[],Object.keys(Game.Upgrades).forEach((e=>{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Achievements).forEach((e=>{qt[e]=Co(e)})),Go()}let bn=!1;function kn(t,o){1===e[o]&&3===t&&!1===bn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){kn(2,o)}),1e3/Game.fps)):setTimeout((function(){kn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){kn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function Gn(t,o,n,i){if((1===e[o]||i)&&!1===bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function vn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function wn(){if(oe!==Game.OnAscend&&(oe=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(rn(),go()),mo()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(yn(),on(),a=Object.keys(Game.mods).length),Re&&(Xo(),Game.Has("Golden switch [off]")?(Go(),Qt["Golden switch [off]"].bought=0,jo(),it=$e):it=Game.cookiesPs,en(),Zo(),Ko(),qo(),fn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)_t[e][t]=Cn(e,t)}(),Jo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Go();let t=2;5!==Le&&18!==Le||(t-=1),5!==Ae&&18!==Ae||(t-=1),Le=5,Ae=18;for(let e=0;e{Xt[t].amount>0&&(e=t)})),Xt[e].amount-=1,Ee-=1}return Object.keys(Xt).forEach((t=>{const o=Xt[t];e+=io(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),Vt=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Be&&t?(Be=!0,Se=1):Be&&!t&&(Be=!1,Se=1),Se&&(_o(),Se=0),function(){tn(),Wo(),function(){yt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Xt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}bt=e,yt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Po(),Yo();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);Ht=le(e/lo())}(),k=0,zt={},Object.keys(Game.shimmers).forEach((e=>{zt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Dt=Game.shimmers[e],k+=1)})),Object.keys(ie).forEach((e=>{void 0===zt[e]&&(ie[e].parentNode.removeChild(ie[e]),delete ie[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ie[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ie[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),cn(),y=k,0===k&&(Dt=0)):1===e.GCTimer&&C&&Object.keys(ie).forEach((e=>{ie[e].style.opacity=zt[e].l.style.opacity,ie[e].style.transform=zt[e].l.style.transform,ie[e].textContent=Math.ceil(zt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(kn(3,"FortuneFlash"),Gn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),vn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),kn(3,"SeaFlash"),Gn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),vn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?kn(3,"WrinklerMaxFlash"):kn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Gn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Gn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?vn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):vn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function xn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${gn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Tn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(nn).forEach((t=>{void 0===e[t]?(o=!0,e[t]=nn[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=nn[t][n])})):Object.keys(nn.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=nn[t][n])}))})),o&&xn(),wn(),Object.keys(nn).forEach((e=>{"Header"!==e&&void 0!==hn[e].func&&hn[e].func()}))}else Tn(nn)}function Mn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Sn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Lo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${re(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${se((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(re(Game.Objects[o].bulkPrice)).join(re((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return Z=t,ee=o,So(),l("tooltip").innerHTML}function Bn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),xn()}function An(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Ln(o),Game.UpdateMenu()},n.appendChild(i),n}function jn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(D[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Un(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Dn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(An("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+so()0&&(t.appendChild(jn("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(re(e)))),t.appendChild(jn("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(le(e/st)))))}const l=function(e){let t=Game.cookiesPs;Go(),0===Qt["Heavenly key"].bought&&(Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,jo(),t=$e,Go()),jt>=1e6&&Ao("Sacrifice"),jt>=1e9&&Ao("Oblivion"),jt>=1e12&&Ao("From scratch"),jt>=1e15&&Ao("Nihilism"),jt>=1e18&&Ao("Dematerialize"),jt>=1e21&&Ao("Nil zero zilch"),jt>=1e24&&Ao("Transcendence"),jt>=1e27&&Ao("Obliterate"),jt>=1e30&&Ao("Negative void"),jt>=1e33&&Ao("To crumbs, you say?"),jt>=1e36&&Ao("You get nothing"),jt>=1e39&&Ao("Humble rebeginnings"),jt>=1e42&&Ao("The end of the world"),jt>=1e45&&Ao("Oh, you're back"),jt>=1e48&&Ao("Lazarus"),jt>=1e51&&Ao("Smurf account"),jt>=1e54&&Ao("If at first you don't succeed"),Qt["Heavenly chip secret"].bought=1,Qt["Heavenly cookie stand"].bought=1,Qt["Heavenly bakery"].bought=1,Qt["Heavenly confectionery"].bought=1,Qt["Heavenly key"].bought=1,We=e;const o=Oe;jo(),zo(),o!==Oe&&jo();const n=$e-t;return We=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(re(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(jn("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(jn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(An("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${re(gt)} / ${re(ft)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Mn()},e.appendChild(t),o.appendChild(jn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${re(Ct[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},n.appendChild(i),o.appendChild(jn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==Ct[1]?Ct[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(i.push(Do[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(r.push(Ho[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys($o).forEach((e=>{Game.HasUnlocked($o[e])||(d.push($o[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(An("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(jn("basic","Halloween Cookies Left to Buy",Un(i))),0!==a.length&&o.appendChild(jn("basic","Christmas Cookies Left to Buy",Un(a))),0!==r.length&&o.appendChild(jn("basic","Valentine Cookies Left to Buy",Un(r))),0!==s.length&&o.appendChild(jn("basic","Normal Easter Eggs Left to Unlock",Un(s))),0!==c.length&&o.appendChild(jn("basic","Rare Easter Eggs Left to Unlock",Un(c))),0!==d.length&&o.appendChild(jn("basic","Rare Plant Drops Left to Unlock",Un(d))),"christmas"===Game.season&&o.appendChild(jn("basic","Reindeer Reward",document.createTextNode(re(dt)))),p&&o.appendChild(jn("withTooltip","Chocolate Egg Cookies",document.createTextNode(re(pt)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(jn("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(ct-1))/100+"%"))))),o.appendChild(An("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(jn("basic",`Average Cookies Per Second (Past ${Q[e.AvgCPSHist]<60?`${Q[e.AvgCPSHist]} seconds`:Q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(re(lo(),3)))),o.appendChild(jn("basic",`Average Cookie Clicks Per Second (Past ${q[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(re(Gt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Uo).forEach((t=>{Game.Has(Uo[t])||e.push(Uo[t])})),0!==e.length&&o.appendChild(jn("basic","Fortune Upgrades Left to Buy",Un(e)))}if(e.ShowMissedGC&&o.appendChild(jn("basic","Missed Golden Cookies",document.createTextNode(re(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(jn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(vt){const t=vt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=vt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},Hn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function $n(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Ln(t),Game.UpdateMenu()},n.appendChild(i),n}function In(t){const o=document.createElement("div");if(o.className="listing","bool"===hn[t].type){const n=document.createElement("a");hn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Fn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===hn[t].label.length?(e[t]=0,hn[t].toggle&&(l(Fn+t).className="option off")):l(Fn+t).className="option",void 0!==hn[t].func&&hn[t].func(),l(Fn+t).innerHTML=hn[t].label[e[t]],xn()}(t)},n.textContent=hn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=hn[t].desc,o.appendChild(i),o}if("vol"===hn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=hn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Wn(t)},r.onchange=function(){Wn(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Gn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===hn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${hn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Fn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Fn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,xn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=hn[t].desc,o.appendChild(s),o}if("color"===hn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,xn(),ln()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=hn[t].desc,o.appendChild(a),o}return o}function zn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function Vn(){M.Beautify=Beautify,Beautify=re,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Kt=Date.now(),Yt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){zn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){zn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){zn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Xt[Game.ObjectsById[e].name].name;Xt[o].amount-=1,Ee-=1,t=Xt[o].basePrice*Game.priceIncrease**Math.max(0,Xt[o].amount-1-Xt[o].free),t=Game.modifyBuildingPrice(Xt[o],t),t=Math.ceil(t);break}const o=Oe;return jo(),zo(),o!==Oe&&jo(),[$e-Game.cookiesPs,t]}(t),n=le(o/(e+Game.cookiesPs)),i=re(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${re(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Xe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==On().picker&&void 0!==On().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=$n(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys(Hn).forEach((t=>{const n=$n(t,Hn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))}))})):Object.keys(hn).forEach((e=>{hn[e].group===t&&o.appendChild(In(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Tn(nn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Dn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Ln("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,H=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):le(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ae=`${Game.OnAscend?"Ascending! ":""}${re(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ae;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Dt?Dt.wrath?`[W${Math.ceil(Dt.life/Game.fps)}]`:`[G${Math.ceil(Dt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ae;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Dt&&(t=!0,Dt.wrath?e+=`[W${Math.ceil(Dt.life/Game.fps)}]`:e+=`[G${Math.ceil(Dt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${re(Game.prestige)}.
(CpS +${re(Game.prestige)}%)`,n+='
'),n+=Me<1?"Ascending now would grant you no prestige.":Me<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${re(Me)} prestige levels (+${re(Me)}% CpS)
and ${re(Me)} heavenly chips to spend.`,n+='
',n+=`You need ${re(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${Ht} to reach the next level and you are making ${re(st,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function _n(){yn(),Zo(),on(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{po(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i)}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Mn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==Ct[1]&&(Game.wrinklers[Ct[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Bn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Sn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Pn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){$=1},l("backgroundLeftCanvas").onmouseout=function(){$=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{z[e]=0}))},Vn(),Pn(),Game.CalculateGains(),Tn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Xn={init:function(){bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(_n(),Game.registerHook("draw",Bo),Game.registerHook("logic",wn),bn=!1)},load:function(e){const t=JSON.parse(e);yn(),Tn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:gn};Game.registerMod("CookieMonster",Xn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(e);Gt[e]={},t[0]&&(Gt[e].bonus=t[0]),t[1]&&(Gt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 011c984b..20a2fa05 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Disp/MenuSections/CreateDOMElements.js b/src/Disp/MenuSections/CreateDOMElements.js index aefdd3e3..bafd0da9 100644 --- a/src/Disp/MenuSections/CreateDOMElements.js +++ b/src/Disp/MenuSections/CreateDOMElements.js @@ -2,7 +2,7 @@ import { ToggleHeader } from '../../Config/ToggleSetting'; import { CMOptions } from '../../Config/VariablesAndData'; -import { TooltipText } from '../VariablesAndData'; +import { SimpleTooltipElements } from '../VariablesAndData'; /** * This function creates a header-object for the stats page @@ -64,7 +64,10 @@ export function StatsListing(type, name, text, placeholder) { Game.tooltip.hide(); }; tooltip.onmouseover = function () { - Game.tooltip.draw(this, escape(TooltipText[placeholder].innerHTML)); + Game.tooltip.draw( + this, + escape(SimpleTooltipElements[placeholder].innerHTML), + ); }; tooltip.style.cursor = 'default'; tooltip.style.display = 'inline-block'; diff --git a/src/Disp/Tooltips/Tooltip.js b/src/Disp/Tooltips/Tooltip.js index 3353fa98..a7edcaa9 100644 --- a/src/Disp/Tooltips/Tooltip.js +++ b/src/Disp/Tooltips/Tooltip.js @@ -6,7 +6,11 @@ import { GetTimeColor, } from '../BeautifyAndFormatting/BeautifyFormatting'; import CopyData from '../../Sim/SimulationData/CopyData'; -import { TooltipName, TooltipType } from '../VariablesAndData'; +import { + SimpleTooltipElements, + TooltipName, + TooltipType, +} from '../VariablesAndData'; import { CMOptions } from '../../Config/VariablesAndData'; import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding'; @@ -30,6 +34,7 @@ export function CreateSimpleTooltip(placeholder, text, minWidth) { div.textContent = text; desc.appendChild(div); Tooltip.appendChild(desc); + SimpleTooltipElements[placeholder] = Tooltip; } /** diff --git a/src/Disp/VariablesAndData.js b/src/Disp/VariablesAndData.js index 1423ff94..e58b7af1 100644 --- a/src/Disp/VariablesAndData.js +++ b/src/Disp/VariablesAndData.js @@ -80,6 +80,7 @@ export const TooltipText = [ '250px', ], ]; +export const SimpleTooltipElements = {}; /** * These are variables used by the functions that create tooltips for wrinklers From 5390c1af58af16bfc105d16ed8e627e315e99be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 23:13:26 +0100 Subject: [PATCH 14/25] Updated max length of lines --- .prettierrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.prettierrc.json b/.prettierrc.json index 94099675..cc82d22d 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,5 +1,5 @@ { "singleQuote": true, "trailingComma": "all", - "printWidth": 80 + "printWidth": 90 } From b66caab11e63ba1739a7ffa2741a3eb74d7912e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 23:53:28 +0100 Subject: [PATCH 15/25] Set max length of lines --- .prettierrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.prettierrc.json b/.prettierrc.json index cc82d22d..94099675 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,5 +1,5 @@ { "singleQuote": true, "trailingComma": "all", - "printWidth": 90 + "printWidth": 80 } From 9c2350a8e3f0a5c9f2959c0909509f295ce0ef05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 16 Mar 2021 23:53:41 +0100 Subject: [PATCH 16/25] Fixed elder pledge tooltip #613 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Cache/PriceAndIncome/PriceAndIncome.js | 21 ++++++++++++++++++--- src/Data/SettingsData.js | 5 +++++ 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index e6be0a27..4edba845 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(e);Gt[e]={},t[0]&&(Gt[e].bonus=t[0]),t[1]&&(Gt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index e6be0a27..4edba845 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((e=>{const t=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(e);Gt[e]={},t[0]&&(Gt[e].bonus=t[0]),t[1]&&(Gt[e].bonusMouse=t[1])}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 20a2fa05..8b37f271 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Cache/PriceAndIncome/PriceAndIncome.js b/src/Cache/PriceAndIncome/PriceAndIncome.js index d96469fd..36467ebd 100644 --- a/src/Cache/PriceAndIncome/PriceAndIncome.js +++ b/src/Cache/PriceAndIncome/PriceAndIncome.js @@ -1,10 +1,16 @@ /* eslint-disable no-unused-vars */ /** Section: Functions related to caching income */ +import { CMOptions } from '../../Config/VariablesAndData'; +import GetCPS from '../../Disp/HelperFunctions/GetCPS'; import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding'; import BuyBuildingsBonusIncome from '../../Sim/SimulationEvents/BuyBuildingBonusIncome'; import BuyUpgradesBonusIncome from '../../Sim/SimulationEvents/BuyUpgrades'; import { + CacheAverageCPS, + CacheAverageGainBank, + CacheAverageGainWrink, + CacheAverageGainWrinkFattest, CacheDoRemakeBuildPrices, CacheObjects1, CacheObjects10, @@ -38,9 +44,18 @@ function CacheUpgradeIncome() { CacheUpgrades = []; Object.keys(Game.Upgrades).forEach((i) => { const bonusIncome = BuyUpgradesBonusIncome(i); - CacheUpgrades[i] = {}; - if (bonusIncome[0]) CacheUpgrades[i].bonus = bonusIncome[0]; - if (bonusIncome[1]) CacheUpgrades[i].bonusMouse = bonusIncome[1]; + if (i === 'Elder Pledge') { + CacheUpgrades[i] = { bonus: Game.cookiesPs - CacheAverageGainBank }; + if (CMOptions.CalcWrink === 1) + CacheUpgrades[i].bonus -= CacheAverageGainWrink; + else if (CMOptions.CalcWrink === 2) + CacheUpgrades[i].bonus -= CacheAverageGainWrinkFattest; + if (!Number.isFinite(CacheUpgrades[i].bonus)) CacheUpgrades[i].bonus = 0; + } else { + CacheUpgrades[i] = {}; + if (bonusIncome[0]) CacheUpgrades[i].bonus = bonusIncome[0]; + if (bonusIncome[1]) CacheUpgrades[i].bonusMouse = bonusIncome[1]; + } }); } diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index 367cc1f1..618be14c 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -1,3 +1,4 @@ +/* eslint-disable no-unused-vars */ import CheckNotificationPermissions from '../Config/CheckNotificationPermissions'; import { ToggleTimerBar, ToggleTimerBarPos } from '../Config/SpecificToggles'; import ToggleBotBar from '../Config/Toggles/ToggleBotBar'; @@ -13,6 +14,7 @@ import UpdateUpgrades from '../Disp/BuildingsUpgrades/Upgrades'; import RefreshScale from '../Disp/HelperFunctions/RefreshScale'; import UpdateColors from '../Disp/HelperFunctions/UpdateColors'; import { UpdateFavicon } from '../Disp/TabTitle/FavIcon'; +import { SimDoSims } from '../Sim/VariablesAndData'; import { SettingStandard, SettingColours, @@ -159,6 +161,9 @@ const Config = { ], 'Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers', true, + function () { + SimDoSims = true; + }, ), CPSMode: new SettingStandard( 'bool', From ff81b4ff029d715f3f6be8b373a6777ea98968ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Wed, 17 Mar 2021 00:05:57 +0100 Subject: [PATCH 17/25] Renamed commands --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 27c324c8..36b395a3 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,12 @@ ], "scripts": { "copy-file": "cp dist/CookieMonster.js CookieMonster.js", - "eslint_src": "eslint src", - "build": "run-s eslint_src pack_prod remove_comment copy-file", - "build_test": "run-s pack_dev", - "pack_prod": "webpack --env production", - "pack_dev": "webpack", - "remove_comment": "sed -i '' -e '/\\/\\/# sourceMappingURL.*/d' dist/CookieMonster.js" + "eslint-src": "eslint src", + "build": "run-s eslint-src pack-prod remove-comment copy-file", + "build-test": "run-s pack-dev", + "pack-prod": "webpack --env production", + "pack-dev": "webpack", + "remove-comment": "sed -i '' -e '/\\/\\/# sourceMappingURL.*/d' dist/CookieMonster.js" }, "repository": { "type": "git", From 1a0750e8d7191e9f91c01d1428a21a9d52be840f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Wed, 17 Mar 2021 00:08:07 +0100 Subject: [PATCH 18/25] Regenerated package lock --- package-lock.json | 2239 +++++++++++++++++++++++++++++++++------------ 1 file changed, 1643 insertions(+), 596 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55866b46..c4cea10b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,7 @@ "version": "2.031.5", "license": "MIT", "dependencies": { - "@eastdesire/jscolor": "^2.4.5", - "lodash": "^4.17.20" + "@eastdesire/jscolor": "^2.4.5" }, "devDependencies": { "eslint": "^7.19.0", @@ -25,22 +24,25 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.13", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.12.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true }, "node_modules/@babel/highlight": { - "version": "7.12.13", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", @@ -49,8 +51,9 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -60,8 +63,9 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -73,29 +77,33 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -105,8 +113,9 @@ }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -117,9 +126,10 @@ "integrity": "sha512-LDCEGN7qKKO3tq6yYtx6cbz/tQlr9LqKNSFaG2GIIn03y67ot3doucpDGoQjCwXG2xUB4pDXRuH2lobjjxhtJA==" }, "node_modules/@eslint/eslintrc": { - "version": "0.3.0", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -128,7 +138,6 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -136,10 +145,35 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@types/eslint": { "version": "7.2.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", + "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -147,8 +181,9 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -156,28 +191,33 @@ }, "node_modules/@types/estree": { "version": "0.0.46", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true }, "node_modules/@types/json-schema": { "version": "7.0.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true }, "node_modules/@types/node": { - "version": "14.14.33", - "dev": true, - "license": "MIT" + "version": "14.14.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", + "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", + "dev": true }, "node_modules/@webassemblyjs/ast": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.0", "@webassemblyjs/helper-wasm-bytecode": "1.11.0" @@ -185,23 +225,27 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", + "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", + "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", + "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.0", "@webassemblyjs/helper-api-error": "1.11.0", @@ -210,13 +254,15 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", + "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/helper-buffer": "1.11.0", @@ -226,29 +272,33 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", "dev": true, - "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", + "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/helper-buffer": "1.11.0", @@ -262,8 +312,9 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/helper-wasm-bytecode": "1.11.0", @@ -274,8 +325,9 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/helper-buffer": "1.11.0", @@ -285,8 +337,9 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/helper-api-error": "1.11.0", @@ -298,8 +351,9 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.0", "@xtuc/long": "4.2.2" @@ -307,8 +361,9 @@ }, "node_modules/@webpack-cli/configtest": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", + "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", "dev": true, - "license": "MIT", "peerDependencies": { "webpack": "4.x.x || 5.x.x", "webpack-cli": "4.x.x" @@ -316,8 +371,9 @@ }, "node_modules/@webpack-cli/info": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", + "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", "dev": true, - "license": "MIT", "dependencies": { "envinfo": "^7.7.3" }, @@ -327,8 +383,9 @@ }, "node_modules/@webpack-cli/serve": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", + "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", "dev": true, - "license": "MIT", "peerDependencies": { "webpack-cli": "4.x.x" }, @@ -340,18 +397,21 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true }, "node_modules/acorn": { "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -361,16 +421,18 @@ }, "node_modules/acorn-jsx": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -384,32 +446,36 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-colors": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -422,16 +488,18 @@ }, "node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/array-includes": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -448,8 +516,9 @@ }, "node_modules/array.prototype.flat": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -464,21 +533,24 @@ }, "node_modules/astral-regex": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/balanced-match": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -486,8 +558,9 @@ }, "node_modules/browserslist": { "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "dev": true, - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", @@ -508,13 +581,15 @@ }, "node_modules/buffer-from": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "node_modules/call-bind": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -525,21 +600,24 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001197", - "dev": true, - "license": "CC-BY-4.0" + "version": "1.0.30001202", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001202.tgz", + "integrity": "sha512-ZcijQNqrcF8JNLjzvEiXqX4JUYxoZa7Pvcsd9UD8Kz4TvhTonOSNRsK+qtvpVL4l6+T1Rh4LFtLfnNWg6BGWCQ==", + "dev": true }, "node_modules/chalk": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -553,8 +631,9 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^1.9.0" }, @@ -564,8 +643,9 @@ }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -577,8 +657,9 @@ }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -588,41 +669,48 @@ }, "node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/colorette": { "version": "1.2.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true }, "node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/confusing-browser-globals": { "version": "1.0.10", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "dev": true }, "node_modules/contains-path": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -634,8 +722,9 @@ }, "node_modules/debug": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -650,13 +739,15 @@ }, "node_modules/deep-is": { "version": "0.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true }, "node_modules/define-properties": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "license": "MIT", "dependencies": { "object-keys": "^1.0.12" }, @@ -666,8 +757,9 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -676,19 +768,22 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.684", - "dev": true, - "license": "ISC" + "version": "1.3.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.690.tgz", + "integrity": "sha512-zPbaSv1c8LUKqQ+scNxJKv01RYFkVVF1xli+b+3Ty8ONujHjAMg+t/COmdZqrtnS1gT+g4hbSodHillymt1Lww==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/enhanced-resolve": { "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -699,8 +794,9 @@ }, "node_modules/enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -710,8 +806,9 @@ }, "node_modules/envinfo": { "version": "7.7.4", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", + "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", "dev": true, - "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -721,31 +818,35 @@ }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.18.0-next.2", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -756,13 +857,15 @@ }, "node_modules/es-module-lexer": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true }, "node_modules/es-to-primitive": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -777,27 +880,30 @@ }, "node_modules/escalade": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { - "version": "7.19.0", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", + "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -808,12 +914,12 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -821,7 +927,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -846,8 +952,9 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, - "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -875,8 +982,9 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^2.6.9", "resolve": "^1.13.1" @@ -884,21 +992,24 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/eslint-import-resolver-node/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "node_modules/eslint-module-utils": { "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^2.6.9", "pkg-dir": "^2.0.0" @@ -909,21 +1020,24 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/eslint-module-utils/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "node_modules/eslint-plugin-import": { "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.1", "array.prototype.flat": "^1.2.3", @@ -948,14 +1062,17 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "dependencies": { "esutils": "^2.0.2", @@ -967,8 +1084,9 @@ }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "node_modules/eslint-plugin-prettier": { "version": "3.3.1", @@ -993,8 +1111,9 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -1005,8 +1124,9 @@ }, "node_modules/eslint-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -1019,24 +1139,27 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-visitor-keys": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/espree": { "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -1048,16 +1171,18 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -1068,8 +1193,9 @@ }, "node_modules/esquery": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1079,16 +1205,18 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1098,40 +1226,45 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -1152,8 +1285,9 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-diff": { "version": "1.2.0", @@ -1163,23 +1297,27 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true }, "node_modules/fastest-levenshtein": { "version": "1.0.12", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true }, "node_modules/file-entry-cache": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -1189,8 +1327,9 @@ }, "node_modules/find-up": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -1200,8 +1339,9 @@ }, "node_modules/flat-cache": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -1212,28 +1352,33 @@ }, "node_modules/flatted": { "version": "3.1.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "node_modules/function-bind": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, "node_modules/get-intrinsic": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -1245,8 +1390,9 @@ }, "node_modules/get-stream": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -1256,8 +1402,9 @@ }, "node_modules/glob": { "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1274,9 +1421,10 @@ } }, "node_modules/glob-parent": { - "version": "5.1.1", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1286,15 +1434,17 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "node_modules/globals": { - "version": "12.4.0", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz", + "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" @@ -1305,13 +1455,15 @@ }, "node_modules/graceful-fs": { "version": "4.2.6", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true }, "node_modules/has": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -1319,18 +1471,29 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-symbols": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1340,29 +1503,33 @@ }, "node_modules/hosted-git-info": { "version": "2.8.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/ignore": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1376,8 +1543,9 @@ }, "node_modules/import-local": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, - "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -1391,8 +1559,9 @@ }, "node_modules/import-local/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1403,8 +1572,9 @@ }, "node_modules/import-local/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -1414,8 +1584,9 @@ }, "node_modules/import-local/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1428,8 +1599,9 @@ }, "node_modules/import-local/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -1439,24 +1611,27 @@ }, "node_modules/import-local/node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/import-local/node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/import-local/node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -1466,16 +1641,18 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1483,26 +1660,54 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/interpret": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", "dev": true, - "license": "MIT" + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-callable": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1512,8 +1717,9 @@ }, "node_modules/is-core-module": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, - "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -1523,8 +1729,9 @@ }, "node_modules/is-date-object": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1534,24 +1741,27 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1561,8 +1771,21 @@ }, "node_modules/is-negative-zero": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1572,8 +1795,9 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -1583,8 +1807,9 @@ }, "node_modules/is-regex": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-symbols": "^1.0.1" @@ -1598,16 +1823,18 @@ }, "node_modules/is-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-string": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1617,8 +1844,9 @@ }, "node_modules/is-symbol": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.1" }, @@ -1631,26 +1859,30 @@ }, "node_modules/isarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/jest-worker": { "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -1662,13 +1894,15 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1679,23 +1913,27 @@ }, "node_modules/json-parse-better-errors": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "node_modules/json5": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -1705,16 +1943,18 @@ }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1724,13 +1964,14 @@ } }, "node_modules/load-json-file": { - "version": "2.0.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "engines": { @@ -1739,16 +1980,18 @@ }, "node_modules/loader-runner": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.11.5" } }, "node_modules/locate-path": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -1758,13 +2001,16 @@ } }, "node_modules/lodash": { - "version": "4.17.20", - "license": "MIT" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -1774,6 +2020,8 @@ }, "node_modules/memorystream": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true, "engines": { "node": ">= 0.10.0" @@ -1781,21 +2029,24 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/mime-db": { "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": "1.46.0" }, @@ -1805,16 +2056,18 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1824,38 +2077,45 @@ }, "node_modules/minimist": { "version": "1.2.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "node_modules/ms": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/nice-try": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "node_modules/node-releases": { "version": "1.1.71", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true }, "node_modules/normalize-package-data": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -1865,16 +2125,18 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/npm-run-all": { "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", @@ -1897,8 +2159,9 @@ }, "node_modules/npm-run-all/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -1908,8 +2171,9 @@ }, "node_modules/npm-run-all/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1921,21 +2185,24 @@ }, "node_modules/npm-run-all/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "node_modules/npm-run-all/node_modules/cross-spawn": { "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, - "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -1949,90 +2216,36 @@ }, "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/load-json-file": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, "engines": { "node": ">=4" } }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-type": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/pify": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/read-pkg": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, "engines": { "node": ">=4" } }, "node_modules/npm-run-all/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -2042,16 +2255,18 @@ }, "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-all/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -2061,8 +2276,9 @@ }, "node_modules/npm-run-all/node_modules/which": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2072,8 +2288,9 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -2083,24 +2300,27 @@ }, "node_modules/object-inspect": { "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -2116,8 +2336,9 @@ }, "node_modules/object.entries": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -2130,8 +2351,9 @@ }, "node_modules/object.values": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -2147,16 +2369,18 @@ }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2169,8 +2393,9 @@ }, "node_modules/optionator": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -2185,8 +2410,9 @@ }, "node_modules/p-limit": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -2196,8 +2422,9 @@ }, "node_modules/p-locate": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -2207,16 +2434,18 @@ }, "node_modules/p-try": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -2225,51 +2454,58 @@ } }, "node_modules/parse-json": { - "version": "2.2.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, - "license": "MIT", "dependencies": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, "node_modules/path-type": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "license": "MIT", "dependencies": { - "pify": "^2.0.0" + "pify": "^3.0.0" }, "engines": { "node": ">=4" @@ -2277,8 +2513,9 @@ }, "node_modules/pidtree": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, - "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -2287,17 +2524,19 @@ } }, "node_modules/pify": { - "version": "2.3.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/pkg-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^2.1.0" }, @@ -2307,8 +2546,9 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -2339,36 +2579,40 @@ }, "node_modules/progress": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/punycode": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/read-pkg": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, - "license": "MIT", "dependencies": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" }, "engines": { "node": ">=4" @@ -2376,8 +2620,9 @@ }, "node_modules/read-pkg-up": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" @@ -2386,10 +2631,73 @@ "node": ">=4" } }, + "node_modules/read-pkg-up/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/rechoir": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, - "license": "MIT", "dependencies": { "resolve": "^1.9.0" }, @@ -2399,8 +2707,9 @@ }, "node_modules/regexpp": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -2410,16 +2719,18 @@ }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" @@ -2430,8 +2741,9 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -2441,24 +2753,27 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2471,6 +2786,8 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -2485,13 +2802,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/schema-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.6", "ajv": "^6.12.5", @@ -2507,8 +2824,9 @@ }, "node_modules/semver": { "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2521,16 +2839,18 @@ }, "node_modules/serialize-javascript": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -2540,8 +2860,9 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2551,26 +2872,30 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.7.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true }, "node_modules/signal-exit": { "version": "3.0.3", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true }, "node_modules/slice-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -2585,38 +2910,34 @@ }, "node_modules/source-list-map": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true }, "node_modules/source-map": { - "version": "0.7.3", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spdx-correct": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -2624,13 +2945,15 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -2638,18 +2961,21 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.7", - "dev": true, - "license": "CC0-1.0" + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "node_modules/string-width": { - "version": "4.2.0", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2661,8 +2987,9 @@ }, "node_modules/string.prototype.padend": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -2676,11 +3003,12 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "funding": { @@ -2688,11 +3016,12 @@ } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "funding": { @@ -2701,8 +3030,9 @@ }, "node_modules/strip-ansi": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.0" }, @@ -2712,24 +3042,27 @@ }, "node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -2739,8 +3072,9 @@ }, "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2750,8 +3084,9 @@ }, "node_modules/table": { "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "ajv": "^7.0.2", "lodash": "^4.17.20", @@ -2763,9 +3098,10 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "7.0.4", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz", + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2779,21 +3115,24 @@ }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/tapable": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -2808,8 +3147,9 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", "dev": true, - "license": "MIT", "dependencies": { "jest-worker": "^26.6.2", "p-limit": "^3.1.0", @@ -2831,8 +3171,9 @@ }, "node_modules/terser-webpack-plugin/node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -2843,23 +3184,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, - "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, "node_modules/tsconfig-paths": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", @@ -2869,13 +3213,15 @@ }, "node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2884,30 +3230,49 @@ } }, "node_modules/type-fest": { - "version": "0.8.1", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" } }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/v8-compile-cache": { - "version": "2.2.0", - "dev": true, - "license": "MIT" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true }, "node_modules/validate-npm-package-license": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -2915,8 +3280,9 @@ }, "node_modules/watchpack": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", "dev": true, - "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -2926,9 +3292,10 @@ } }, "node_modules/webpack": { - "version": "5.24.4", + "version": "5.26.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.26.2.tgz", + "integrity": "sha512-h07tAPeQceEO3Idrevqv4ECcpMH8Zp0aUUJ+IytujWTVf6TF5PI3rKVw0Z+7rNjU4qJuEx18BykFxgRvR9VgEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.46", @@ -2972,8 +3339,9 @@ }, "node_modules/webpack-cli": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", + "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", "dev": true, - "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^1.0.1", @@ -3019,16 +3387,18 @@ }, "node_modules/webpack-cli/node_modules/commander": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/webpack-merge": { "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", "dev": true, - "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" @@ -3039,8 +3409,9 @@ }, "node_modules/webpack-sources": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", "dev": true, - "license": "MIT", "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" @@ -3049,18 +3420,11 @@ "node": ">=10.13.0" } }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/acorn": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3070,8 +3434,9 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -3082,33 +3447,54 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wildcard": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true }, "node_modules/word-wrap": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -3119,18 +3505,24 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { - "version": "7.12.13", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -3140,6 +3532,8 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -3147,6 +3541,8 @@ }, "chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -3156,6 +3552,8 @@ }, "color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -3163,14 +3561,20 @@ }, "color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3180,6 +3584,8 @@ }, "@discoveryjs/json-ext": { "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", "dev": true }, "@eastdesire/jscolor": { @@ -3188,7 +3594,9 @@ "integrity": "sha512-LDCEGN7qKKO3tq6yYtx6cbz/tQlr9LqKNSFaG2GIIn03y67ot3doucpDGoQjCwXG2xUB4pDXRuH2lobjjxhtJA==" }, "@eslint/eslintrc": { - "version": "0.3.0", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -3198,13 +3606,31 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, "@types/eslint": { "version": "7.2.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", + "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", "dev": true, "requires": { "@types/estree": "*", @@ -3213,6 +3639,8 @@ }, "@types/eslint-scope": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", "dev": true, "requires": { "@types/eslint": "*", @@ -3221,22 +3649,32 @@ }, "@types/estree": { "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", "dev": true }, "@types/json-schema": { "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/node": { - "version": "14.14.33", + "version": "14.14.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", + "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", "dev": true }, "@webassemblyjs/ast": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.0", @@ -3245,18 +3683,26 @@ }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.0", @@ -3266,10 +3712,14 @@ }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3280,6 +3730,8 @@ }, "@webassemblyjs/ieee754": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" @@ -3287,6 +3739,8 @@ }, "@webassemblyjs/leb128": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", "dev": true, "requires": { "@xtuc/long": "4.2.2" @@ -3294,10 +3748,14 @@ }, "@webassemblyjs/utf8": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3312,6 +3770,8 @@ }, "@webassemblyjs/wasm-gen": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3323,6 +3783,8 @@ }, "@webassemblyjs/wasm-opt": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3333,6 +3795,8 @@ }, "@webassemblyjs/wasm-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3345,6 +3809,8 @@ }, "@webassemblyjs/wast-printer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -3353,11 +3819,15 @@ }, "@webpack-cli/configtest": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", + "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", "dev": true, "requires": {} }, "@webpack-cli/info": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", + "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", "dev": true, "requires": { "envinfo": "^7.7.3" @@ -3365,28 +3835,40 @@ }, "@webpack-cli/serve": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", + "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", "dev": true, "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "@xtuc/long": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "acorn": { "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "requires": {} }, "ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -3397,19 +3879,27 @@ }, "ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "ansi-colors": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" @@ -3417,6 +3907,8 @@ }, "argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -3424,6 +3916,8 @@ }, "array-includes": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3435,6 +3929,8 @@ }, "array.prototype.flat": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -3444,14 +3940,20 @@ }, "astral-regex": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -3460,6 +3962,8 @@ }, "browserslist": { "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001181", @@ -3471,10 +3975,14 @@ }, "buffer-from": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "call-bind": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -3483,14 +3991,20 @@ }, "callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "caniuse-lite": { - "version": "1.0.30001197", + "version": "1.0.30001202", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001202.tgz", + "integrity": "sha512-ZcijQNqrcF8JNLjzvEiXqX4JUYxoZa7Pvcsd9UD8Kz4TvhTonOSNRsK+qtvpVL4l6+T1Rh4LFtLfnNWg6BGWCQ==", "dev": true }, "chalk": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3499,6 +4013,8 @@ }, "chrome-trace-event": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -3506,6 +4022,8 @@ }, "clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { "is-plain-object": "^2.0.4", @@ -3515,6 +4033,8 @@ }, "color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -3522,30 +4042,44 @@ }, "color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colorette": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "commander": { "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "confusing-browser-globals": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, "contains-path": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, "cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -3555,6 +4089,8 @@ }, "debug": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -3562,10 +4098,14 @@ }, "deep-is": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "define-properties": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" @@ -3573,21 +4113,29 @@ }, "doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "electron-to-chromium": { - "version": "1.3.684", + "version": "1.3.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.690.tgz", + "integrity": "sha512-zPbaSv1c8LUKqQ+scNxJKv01RYFkVVF1xli+b+3Ty8ONujHjAMg+t/COmdZqrtnS1gT+g4hbSodHillymt1Lww==", "dev": true }, "emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enhanced-resolve": { "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -3596,6 +4144,8 @@ }, "enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -3603,41 +4153,53 @@ }, "envinfo": { "version": "7.7.4", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", + "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", "dev": true }, "error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.18.0-next.2", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" } }, "es-module-lexer": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", "dev": true }, "es-to-primitive": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -3647,18 +4209,24 @@ }, "escalade": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "eslint": { - "version": "7.19.0", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", + "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -3669,12 +4237,12 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -3682,7 +4250,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -3698,6 +4266,8 @@ }, "eslint-config-airbnb-base": { "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", @@ -3714,6 +4284,8 @@ }, "eslint-import-resolver-node": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -3722,6 +4294,8 @@ "dependencies": { "debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -3729,12 +4303,16 @@ }, "ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "eslint-module-utils": { "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -3743,6 +4321,8 @@ "dependencies": { "debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -3750,12 +4330,16 @@ }, "ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "eslint-plugin-import": { "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", "dev": true, "requires": { "array-includes": "^3.1.1", @@ -3775,6 +4359,8 @@ "dependencies": { "debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -3782,6 +4368,8 @@ }, "doctrine": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { "esutils": "^2.0.2", @@ -3790,6 +4378,8 @@ }, "ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } @@ -3805,6 +4395,8 @@ }, "eslint-scope": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -3813,6 +4405,8 @@ }, "eslint-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -3820,16 +4414,22 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } }, "eslint-visitor-keys": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true }, "espree": { "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", @@ -3839,16 +4439,22 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } }, "esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -3856,12 +4462,16 @@ "dependencies": { "estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" @@ -3869,24 +4479,34 @@ "dependencies": { "estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "estraverse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "execa": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -3902,6 +4522,8 @@ }, "fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-diff": { @@ -3912,18 +4534,26 @@ }, "fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastest-levenshtein": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, "file-entry-cache": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" @@ -3931,6 +4561,8 @@ }, "find-up": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "^2.0.0" @@ -3938,6 +4570,8 @@ }, "flat-cache": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { "flatted": "^3.1.0", @@ -3946,22 +4580,32 @@ }, "flatted": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "function-bind": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-intrinsic": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -3971,10 +4615,14 @@ }, "get-stream": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", "dev": true }, "glob": { "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3986,7 +4634,9 @@ } }, "glob-parent": { - "version": "5.1.1", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -3994,48 +4644,74 @@ }, "glob-to-regexp": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "globals": { - "version": "12.4.0", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz", + "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "graceful-fs": { "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "has": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-symbols": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "hosted-git-info": { "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "ignore": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -4044,6 +4720,8 @@ }, "import-local": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -4052,6 +4730,8 @@ "dependencies": { "find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -4060,6 +4740,8 @@ }, "locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -4067,6 +4749,8 @@ }, "p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -4074,6 +4758,8 @@ }, "p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -4081,14 +4767,20 @@ }, "p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -4098,10 +4790,14 @@ }, "imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", @@ -4110,22 +4806,47 @@ }, "inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "interpret": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", "dev": true }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-callable": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-core-module": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -4133,18 +4854,26 @@ }, "is-date-object": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -4152,10 +4881,20 @@ }, "is-negative-zero": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true }, "is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" @@ -4163,6 +4902,8 @@ }, "is-regex": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4171,14 +4912,20 @@ }, "is-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-string": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, "is-symbol": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -4186,18 +4933,26 @@ }, "isarray": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "jest-worker": { "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "requires": { "@types/node": "*", @@ -4207,10 +4962,14 @@ }, "js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -4219,18 +4978,26 @@ }, "json-parse-better-errors": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -4238,10 +5005,14 @@ }, "kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", @@ -4249,21 +5020,27 @@ } }, "load-json-file": { - "version": "2.0.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, "loader-runner": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "locate-path": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", @@ -4271,10 +5048,15 @@ } }, "lodash": { - "version": "4.17.20" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -4282,18 +5064,26 @@ }, "memorystream": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, "merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "mime-db": { "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", "dev": true }, "mime-types": { "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", "dev": true, "requires": { "mime-db": "1.46.0" @@ -4301,10 +5091,14 @@ }, "mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimatch": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -4312,30 +5106,44 @@ }, "minimist": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "ms": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "neo-async": { "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "nice-try": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node-releases": { "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", "dev": true }, "normalize-package-data": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -4346,12 +5154,16 @@ "dependencies": { "semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "npm-run-all": { "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -4367,6 +5179,8 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -4374,6 +5188,8 @@ }, "chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -4383,6 +5199,8 @@ }, "color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -4390,10 +5208,14 @@ }, "color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "cross-spawn": { "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -4405,56 +5227,26 @@ }, "has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "path-key": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "path-type": { - "version": "3.0.0", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, "semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "shebang-command": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -4462,10 +5254,14 @@ }, "shebang-regex": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -4473,6 +5269,8 @@ }, "which": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -4482,6 +5280,8 @@ }, "npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" @@ -4489,14 +5289,20 @@ }, "object-inspect": { "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", "dev": true }, "object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object.assign": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -4507,6 +5313,8 @@ }, "object.entries": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -4517,6 +5325,8 @@ }, "object.values": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4527,6 +5337,8 @@ }, "once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" @@ -4534,6 +5346,8 @@ }, "onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -4541,6 +5355,8 @@ }, "optionator": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", @@ -4553,6 +5369,8 @@ }, "p-limit": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -4560,6 +5378,8 @@ }, "p-locate": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" @@ -4567,55 +5387,78 @@ }, "p-try": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" } }, "parse-json": { - "version": "2.2.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "pidtree": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true }, "pify": { - "version": "2.3.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { "find-up": "^2.1.0" @@ -4623,6 +5466,8 @@ }, "prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prettier": { @@ -4642,38 +5487,99 @@ }, "progress": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "punycode": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "read-pkg": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" } }, "read-pkg-up": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + } } }, "rechoir": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, "requires": { "resolve": "^1.9.0" @@ -4681,14 +5587,20 @@ }, "regexpp": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "resolve": { "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { "is-core-module": "^2.2.0", @@ -4697,6 +5609,8 @@ }, "resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -4704,16 +5618,22 @@ "dependencies": { "resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, "resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -4721,10 +5641,14 @@ }, "safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "schema-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, "requires": { "@types/json-schema": "^7.0.6", @@ -4734,6 +5658,8 @@ }, "semver": { "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -4741,6 +5667,8 @@ }, "serialize-javascript": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -4748,6 +5676,8 @@ }, "shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { "kind-of": "^6.0.2" @@ -4755,6 +5685,8 @@ }, "shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -4762,18 +5694,26 @@ }, "shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shell-quote": { "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "signal-exit": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "slice-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -4783,28 +5723,30 @@ }, "source-list-map": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "source-map": { - "version": "0.7.3", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } } }, "spdx-correct": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -4813,10 +5755,14 @@ }, "spdx-exceptions": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -4825,14 +5771,20 @@ }, "spdx-license-ids": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "string-width": { - "version": "4.2.0", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -4842,6 +5794,8 @@ }, "string.prototype.padend": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4850,23 +5804,29 @@ } }, "string.prototype.trimend": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "strip-ansi": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" @@ -4874,18 +5834,26 @@ }, "strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -4893,6 +5861,8 @@ }, "table": { "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { "ajv": "^7.0.2", @@ -4902,7 +5872,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.4", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz", + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -4913,25 +5885,41 @@ }, "json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, "tapable": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true }, "terser": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } } }, "terser-webpack-plugin": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", "dev": true, "requires": { "jest-worker": "^26.6.2", @@ -4944,23 +5932,25 @@ "dependencies": { "p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" } - }, - "source-map": { - "version": "0.6.1", - "dev": true } } }, "text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "tsconfig-paths": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -4971,32 +5961,56 @@ }, "tslib": { "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { - "version": "0.8.1", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, "uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "v8-compile-cache": { - "version": "2.2.0", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -5005,6 +6019,8 @@ }, "watchpack": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -5012,7 +6028,9 @@ } }, "webpack": { - "version": "5.24.4", + "version": "5.26.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.26.2.tgz", + "integrity": "sha512-h07tAPeQceEO3Idrevqv4ECcpMH8Zp0aUUJ+IytujWTVf6TF5PI3rKVw0Z+7rNjU4qJuEx18BykFxgRvR9VgEQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -5042,12 +6060,16 @@ "dependencies": { "acorn": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", "dev": true } } }, "webpack-cli": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", + "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", @@ -5068,12 +6090,16 @@ "dependencies": { "commander": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true } } }, "webpack-merge": { "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -5082,43 +6108,64 @@ }, "webpack-sources": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", "dev": true, "requires": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } } }, "which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "wildcard": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "word-wrap": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrappy": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } From 4d716e77e44de4b935405a70b0cbe73318c7ed71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Wed, 17 Mar 2021 23:19:34 +0100 Subject: [PATCH 19/25] Toggle to display PP as time period #625 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Data/SettingsData.js | 7 +++++++ src/Data/SettingsDefault.js | 1 + .../BeautifyAndFormatting/BeautifyFormatting.js | 1 + src/Disp/InfoBars/BottomBar.js | 7 ++++++- src/Disp/Tooltips/TypesOfTooltips/Building.js | 5 ++++- src/Disp/Tooltips/TypesOfTooltips/Upgrade.js | 14 ++++++++++---- 9 files changed, 32 insertions(+), 9 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 4edba845..0f2bac71 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 4edba845..0f2bac71 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",E="Blue",P="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,E,P,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":P,Clot:F,"Click frenzy":E,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=P):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Ee,Pe,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Et=0,Pt=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let o=Game.buyBulk;1===Game.buyMode?_=o:o=_,1===o&&(o=mt),10===o&&(o=ht),100===o&&(o=gt),e+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[e].childNodes[1].textContent=Game.Objects[t].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[e].textContent=le(o[t].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].className=S+o[t].color,l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[e].textContent=le(Math.round(o[t].pp),2);const n=ce((Game.Objects[t].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[e].className=S+n.color,"Done!"===n.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Po{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Et=2*Nt[1]/st,Pt=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Po(q[q.length-1]),pe=new Po(q[q.length-1]),ue=new Po(q[q.length-1]),me=new Po(q[q.length-1]),he=new Po(Y[Y.length-1]),ge=new Po(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Pe-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Ee&&t?(Ee=!0,Be=1):Ee&&!t&&(Ee=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function En(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function Pn(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Pe-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",E)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",E)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",E)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(E,"Better than best PP building")),e.appendChild(o(P,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",E)),e.appendChild(o("CMUpgradeBarGreen",P)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),En(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Eo),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 8b37f271..17e75ec0 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLACA,SAEF,CACE,2BACA,uOACA,SAEF,CACE,4BACA,2CACA,UAGEC,EAAwB,GAM9B,IAUIC,EACAC,EAXAC,EAAsB,EACtBC,GAAmB,EAOnBC,EAA4B,GAQ5BC,EAAmB,EACnBC,EAAsB,EACtBC,EAA4B,EAMhC,MAAMC,EAAc,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAC9CC,EAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IAK5BC,EAAa,CACjBC,OAAQrB,EACRsB,iBAAkBhB,EAClBiB,eAAgBxB,EAChByB,KAAMtB,EACNuB,eAAgB3B,EAChB4B,aAAcrB,GAMhB,IAOIsB,EACAC,EACAC,GACAC,GACAC,GAEAC,GACAC,GAdAC,GAAW,GAKXC,GAAQ,GA2BZ,SAASC,GAA4BC,EAAKC,EAAQC,GAChD,MAAMC,EAAWrE,EAAUsE,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBlE,EAAUwE,MACZ,OAAOhD,EAAgBiD,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,IAAIU,EAAS,GACb,GAAY,IAARV,EACF,OAAOA,EAAInhB,WAEb,GAAImhB,EAAM,MAASA,EAAMlE,EAAU6E,YAGjC,OAF8BD,EAA1B5E,EAAU8E,eAAyBZ,EAAIa,eAAe,MAC5Cb,EAAIa,eAAe,MAC1BH,EAET,GAAyB,IAApB5E,EAAUwE,QAAgBJ,GAAsB,IAAXA,EAExCQ,EAASV,EAAIc,cAAcX,GAAUthB,WAAW7B,QAAQ,IAAK,SACxD,CACL,MAAM+jB,EAAcf,EAAIc,gBAAgBjiB,WAClCmiB,EAAwBriB,KAAKkE,MACjCke,EAAY5G,MAAM4G,EAAYznB,QAAQ,KAAO,GAAK,GAEpDonB,GAAUV,EAAMQ,OAAO,KAA6B,EAAxBQ,IAA8BC,QACxDd,GAGuB,IAApBrE,EAAUwE,QAAgBJ,GAAsB,IAAXA,EAEpCF,GAAO,KAAQA,EAAMQ,OAAO,KAAqB,EAAhBzE,EAAO1lB,QAC1CqqB,GAAU,IAAI3E,EAAOiF,KAChBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBlE,EAAUwE,QAAgBJ,GAAsB,IAAXA,EAE3CF,GAAO,KAAQA,EAAMQ,OAAO,KAAyB,EAApBxE,EAAW3lB,QAC9CqqB,GAAU,IAAI1E,EAAWgF,KACpBN,EAASX,GAA4BC,EAAK,EAAG,GACtB,IAApBlE,EAAUwE,QAAgBJ,GAAsB,IAAXA,EAG7CF,GAAO,KACPA,EAAMQ,OAAO,KAAoC,EAA/BvE,EAAsB5lB,QAExCqqB,GAAU,IAAIzE,EAAsB+E,KAC/BN,EAASX,GAA4BC,EAAK,EAAG,IACtB,IAApBlE,EAAUwE,QAAgBJ,GAAsB,IAAXA,KAE/CQ,GAAU,IAA4B,EAAxBM,GAUlB,MAPe,KAAXN,IACFzpB,QAAQiqB,IACN,2DAA2DlB,KAE7DU,EAASpD,EAAgBiD,SAASP,EAAKC,IAErCnE,EAAU8E,iBAAgBF,EAASA,EAAO1jB,QAAQ,IAAK,MACpD0jB,EAGT,OADAzpB,QAAQiqB,IAAI,2DAA2DlB,KAChE1C,EAAgBiD,SAASP,EAAKC,GASvC,SAASkB,GAAWC,EAAMC,GACxB,IAAIC,EAAgBF,EACpB,GAAIA,IAASf,IAAU,OAAOe,EAC9B,GAAIA,EAAO,EAAG,MAAO,uBACrBE,EAAgB3iB,KAAKoL,KAAKqX,GAC1B,MAAM7gB,EAAI5B,KAAKkE,MAAMye,EAAgB,UAC/B7F,EAAI9c,KAAKkE,MAAOye,EAAgB,SAAY,OAC5C7e,EAAI9D,KAAKkE,MAAOye,EAAgB,MAAS,MACzC/qB,EAAIoI,KAAKkE,MAAOye,EAAgB,KAAQ,IACxC3e,EAAIhE,KAAKkE,MAAMye,EAAgB,IACrC,IAAI9pB,EAAM,GACV,GAAIskB,EAAUyF,WAAY,CACxB,GAAID,EAAgB,SAAY,MAAO,iBACvC9pB,IAAW+I,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACP/I,IAAWikB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPjkB,IAAWiL,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPjL,IAAWjB,EAAI,GAAK,IAAM,IAAMA,EAAzB,IACPiB,IAAQmL,EAAI,GAAK,IAAM,IAAMA,MACxB,CACL,GAAI2e,EAAgB,OAClB,OAAOD,EAAa,kBAAoB,SAC1C7pB,GACE+I,EAAI,EACGA,GAAK8gB,EAAoB,IAAN9gB,EAAU,QAAU,SAAY,KAAtD,KACA,GACN/I,GACEikB,EAAI,EAAOA,GAAK4F,EAAoB,IAAN5F,EAAU,OAAS,QAAW,KAApD,KAA+D,IACrEjkB,EAAInB,OAAS,GAAKoM,EAAI,KACxBjL,GAAUiL,GAAK4e,EAAoB,IAAN5e,EAAU,QAAU,SAAY,KAAtD,OACLjL,EAAInB,OAAS,GAAKE,EAAI,KACxBiB,GAAUjB,GAAK8qB,EAAoB,IAAN9qB,EAAU,UAAY,WAAc,KAA1D,MACTiB,GAAOmL,GAAK0e,EAAoB,IAAN1e,EAAU,UAAY,WAAc,KAEhE,OAAOnL,EAQT,SAASgqB,GAAaJ,GACpB,IAAIpd,EACAyd,EAWJ,OAVIL,GAAQ,GACgBK,EAAtB3F,EAAUyF,WAAmB,iBACrB,QACZvd,EAAQ0Z,IAER+D,EAAON,GAAWC,GACFpd,EAAZod,EAAO,IAAavD,EACfuD,EAAO,GAAYxD,EACfD,GAER,CAAE8D,OAAMzd,SAMjB,IA0EI0d,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GAEAC,GAEAC,GAwBAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAGAC,GACAC,GA1IAC,GAAkB,EAClBC,GAAmB,EACnBC,GAAuB,EACvBC,GAAyB,EACzBC,GAAa,EACbC,GAAmB,EACnBC,GAAwB,EACxBC,GAAmB,EACnBC,GAAyB,EACzBC,GAA8B,EAC9BC,GAAe,EACfC,GAAqB,EACrBC,GAAe,EACfC,GAAuB,EACvBC,GAA6B,EAC7BC,GAAoC,EACpCC,GAAyB,EACzBC,GAAwB,EAExBC,GAAmB,EAEnBC,GAAe,EACfC,GAAe,EACfC,GAAkB,EAElBC,GAAgB,GAChBC,GAAiB,GACjBC,GAAkB,GAElBC,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAE5BC,GAA2B,EAC3BC,GAAyB,EAEzBC,GAAgB,GAEhBC,GAAqB,GAErBC,GAAuB,GACvBC,GAA+B,GAC/BC,GAA8B,GAE9BC,GAAqB,EACrBC,GAAyB,EACzBC,GAAsB,GACtBC,GAA0B,EAC1BC,GAA8B,EAC9BC,GAA2B,GAC3BC,GAA2B,EAC3BC,GAA+B,EAC/BC,GAA4B,GAC5BC,GAAgC,EAChCC,GAAoC,EACpCC,GAAiC,GAEjCC,GAAyB,EACzBC,GAAwB,EAExBC,GAA4B,GAC5BC,GAAwB,GAExBC,GAA4B,EAG5BC,GAAa,EAEbC,GAAe,GAEfC,GAA0B,GAE1BC,GAAqB,EA6BrBC,GAAY,CACdC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVprB,EAAG,CAAC,EAAG,EAAG,GACVqrB,GAAI,CAAC,EAAG,EAAG,IAOTC,GAAa,GACbC,GAAc,GACdC,GAAkB,GAclBC,GAAiBC,KAAKC,UACtBC,GAAcF,KAAKC,UAUvB,SAASE,GAAYC,GACnB,IAAInvB,EAAI,EAWR,OATE+uB,KAAKK,YAAYrF,IAAezoB,OAAS6tB,GACzCJ,KAAKK,YAAYpF,IAAgB1oB,OAAS6tB,IAE1CnvB,EAAI,GAEqC,oBAAzC+uB,KAAKK,YAAYrF,IAAezoB,MACU,oBAA1CytB,KAAKK,YAAYpF,IAAgB1oB,OAEjCtB,GAAK,IACAA,EAWT,SAASqvB,KACP,IAAIC,EAAW,IAEf,OADAA,GAAY,EAAIJ,GAAY,mBACrBI,EAST,SAASC,GAAOjuB,EAAMkuB,GACpB,YAA6B,IAAlBnF,GAAQ/oB,QACK,IAARkuB,EAAsB,EAAIA,EAEnCnF,GAAQ/oB,GASjB,SAASmuB,GAAON,GACd,MAAMO,EAAKd,GAAYO,GACvB,OACyB,IAAvBJ,KAAKY,eACQ,aAAZD,EAAGE,MAAmC,YAAZF,EAAGG,OAGzBH,EAAKA,EAAGI,OADN,EAYX,SAASC,GAAUZ,GACjB,GAAIJ,KAAKiB,OAAQ,MACoB7yB,IAA/BwxB,GAAWsB,OAAOC,WACpBvB,GAAWsB,OAAOC,SAAWnB,KAAKoB,QAAQF,OAAOC,UAEnD,MAAME,EAAMzB,GAAWsB,OAAOC,SAASG,KAAKlB,GAC5C,GAAIlF,KAAYmG,EAAIE,GAClB,OAAO,EAET,GAAIpG,KAAYkG,EAAIE,GAClB,OAAO,EAET,GAAInG,KAAYiG,EAAIE,GAClB,OAAO,EAGX,OAAO,EAgBT,SAASC,GAAuBC,EAAUC,GACxC,IAAIC,EAAgBD,EAapB,GAZIhB,GAAO,oBAAmBiB,GAAiB,KAC3CjB,GAAO,sBAAqBiB,GAAiB,KAC7CjB,GAAO,iBAAgBiB,GAAiB,KACxCjB,GAAO,qBAAoBiB,GAAiB,KAC5CjB,GAAO,kBAAiBiB,GAAiB,KAE7CA,GAAiB,EAAoC,IAAhCxB,GAAY,kBAC7BH,KAAK4B,QAAQ,wBAAuBD,GAAiB,KACrD3B,KAAK4B,QAAQ,mBAAkBD,GAAiB,KAChD3B,KAAK4B,QAAQ,mBAAkBD,GAAiB,MAChDF,EAASI,SAAWnB,GAAOe,EAASI,QAAQtvB,QAAOovB,GAAiB,KACxEA,GAAiBnB,GAAO,gBACpBZ,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAASf,GAAU,YACV,IAAXe,EAAcJ,GAAiB,IACf,IAAXI,EAAcJ,GAAiB,IACpB,IAAXI,IAAcJ,GAAiB,KAE1C,OAAOA,EAkBT,SAASK,GACPC,EACAC,EACA1kB,EACA2kB,EACAC,EACAC,GAIA,MAAMC,OAA4B,IAAVD,EAAwB,EAAIA,EACpD,IAAIE,EAAWH,EACXI,EAAiBhlB,EACjBilB,EAAO,GACK,IAAZL,IAAeG,EAAWC,GACzBJ,IAAQG,EAAWvC,KAAK0C,SAC7B,IAAK,IAAI10B,EAAI,EAAGA,EAAIu0B,EAAUv0B,IAAK,CACjC,IAAI0zB,EACFQ,EAAYlC,KAAK2C,eAAiBpsB,KAAK6D,IAAI,EAAGooB,EAAiBL,GACjET,EAAQY,EACJtC,KAAK4C,oBAAoBX,EAAOP,GAChCF,GAAuBS,EAAOP,GAClCA,EAAQnrB,KAAKoL,KAAK+f,GAClB,MAAMnB,EAAW+B,EACbL,EAAMY,oBACNvC,KACJoB,EAAQnrB,KAAKkE,MAAMinB,EAAQnB,GACvBiC,EAAiB,IACnBC,GAAQf,EACRc,GAAkB,GAGtB,OAAOC,EAoBT,SAASK,KACP,IAAIzvB,EAAS2sB,KAAK0C,QA0ClB,GAzCqB,IAAjB1C,KAAK+C,QACPxM,EAAsBljB,EAEtBA,EAASkjB,EAEI,IAAXljB,EAAcA,EAAS0pB,GACP,KAAX1pB,EAAeA,EAAS2pB,GACb,MAAX3pB,IAAgBA,EAAS4pB,IAEb,IAAjB+C,KAAK+C,QACsB,IAAzBrP,EAAUsP,WACZxxB,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IAC3BoR,EAAE,eAAe4gB,KAAKoB,QAAQpzB,GAAGuzB,MAAMtrB,MAAM2F,MAC3C8X,EAAUoC,OAAOziB,EAAOrF,GAAG4N,UAG/BpK,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCoR,EAAE,eAAe4gB,KAAKoB,QAAQpzB,GAAGuzB,MAAMtrB,MAAMitB,eAAe,aAGrC,IAAlBlD,KAAK+C,SACdvxB,OAAO6C,KAAK0oB,IAAekG,SAASj1B,IAClC,MAAMwlB,EAAIwM,KAAKoB,QAAQpzB,GACvBoR,EAAE,eAAeoU,EAAE+N,MAAMtrB,MAAM2F,MAAQ,GASvCwD,EAAE,eAAeoU,EAAE+N,MAAM/V,UAAYmM,GACnCqK,GAAaxO,EAAGA,EAAE0O,UAAW1O,EAAE4O,OAAQ5O,EAAE2O,KAAMnC,KAAK0C,QAAS,OAQ9C,IAAjB1C,KAAK+C,SAAiBrP,EAAUyP,cAAe,CACjD,IAAIC,EAC4B,IAA5B1P,EAAUyP,eACZC,EAAM5xB,OAAO6C,KAAK0oB,IAAe5qB,KAAKkxB,IACpC,MAAM7P,EAAIuJ,GAAcsG,GAGxB,OAFA7P,EAAEjhB,KAAO8wB,EACT7P,EAAE+N,GAAKvB,KAAKoB,QAAQiC,GAAG9B,GAChB/N,KAGT4P,EAAIE,MAAK,SAAUzsB,EAAGP,GACpB,OAAOwf,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,OAC9C,EACAka,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,MAE+B,IAA5BoU,EAAUyP,gBACnBC,EAAM5xB,OAAO6C,KAAKhB,GAAQlB,KAAKkxB,IAC7B,MAAM7P,EAAIngB,EAAOgwB,GAGjB,OAFA7P,EAAEjhB,KAAO8wB,EACT7P,EAAE+N,GAAKvB,KAAKoB,QAAQiC,GAAG9B,GAChB/N,KAGT4P,EAAIE,MAAK,SAAUzsB,EAAGP,GACpB,OAAOwf,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,OAC9C,EACAka,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,MAIR,IAAK,IAAIpH,EAAI,EAAGA,EAAIkrB,EAAIn1B,OAAQiK,IAC9B8nB,KAAKoB,QAAQgC,EAAIlrB,GAAG3F,MAAM6M,EAAEnJ,MAAMstB,QAAU,GAAGrrB,EAAI,KAAKA,EAAI,QAEzD,CACL,MAAMkrB,EAAM5xB,OAAO6C,KAAK0oB,IAAe5qB,KAAKkxB,IAC1C,MAAM7P,EAAIuJ,GAAcsG,GAGxB,OAFA7P,EAAEjhB,KAAO8wB,EACT7P,EAAE+N,GAAKvB,KAAKoB,QAAQiC,GAAG9B,GAChB/N,KAET4P,EAAIE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE0qB,GAAKjrB,EAAEirB,KAC5B,IAAK,IAAIrpB,EAAI,EAAGA,EAAIkrB,EAAIn1B,OAAQiK,IAC9B8nB,KAAKoB,QAAQgC,EAAIlrB,GAAG3F,MAAM6M,EAAEnJ,MAAMstB,QAAU,GAAGrrB,EAAI,KAAKA,EAAI,KAiBlE,SAASsrB,KAEP,GAAI9P,EAAU+P,WAAa,EAAG,CAC5B,IAAIC,EAAO,EACPC,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTC,EAAM,EACNC,EAAS,EACTC,EAAO,EAEXxyB,OAAO6C,KAAK2rB,KAAKiE,iBAAiBhB,SAASj1B,IACzC,MAAMk2B,EAAKlE,KAAKiE,gBAAgBj2B,GAChC,IAAIm2B,GAAa,EACjB,IAAK,IAAIC,EAAI,EAAGA,EAAIhlB,EAAE,UAAUpR,KAAKq2B,WAAWp2B,OAAQm2B,GAAK,EAC3D,IACsE,IAApEhlB,EAAE,UAAUpR,KAAKq2B,WAAWD,GAAG31B,UAAUyC,QAAQkkB,GACjD,CACAhW,EAAE,UAAUpR,KAAKq2B,WAAWD,GAAG31B,UAC7B2mB,EAAemI,GAAc2G,EAAG3xB,MAAMqJ,MACxCuoB,GAAa,EACb,MAGJ,IAAKA,EAAY,CACf,MAAMG,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMkG,MAAQ,OAClBmoB,EAAIruB,MAAMmG,OAAS,OACnBkoB,EAAI71B,UAAY2mB,EAAemI,GAAc2G,EAAG3xB,MAAMqJ,MACtDwD,EAAE,UAAUpR,KAAK4b,YAAY0a,GAE3B/G,GAAc2G,EAAG3xB,MAAMqJ,QAAUyZ,EAAWqO,GAAQ,EAC/CnG,GAAc2G,EAAG3xB,MAAMqJ,QAAU0Z,EAAYqO,GAAS,EACtDpG,GAAc2G,EAAG3xB,MAAMqJ,QAAU2Z,EAAaqO,GAAU,EACxDrG,GAAc2G,EAAG3xB,MAAMqJ,QAAU4Z,EAAaqO,GAAU,EACxDtG,GAAc2G,EAAG3xB,MAAMqJ,QAAU6Z,EAAUqO,GAAO,EAClDvG,GAAc2G,EAAG3xB,MAAMqJ,QAAU8Z,EAAaqO,GAAU,EACxDxG,GAAc2G,EAAG3xB,MAAMqJ,QAAU+Z,IAAWqO,GAAQ,MAG/D5kB,EAAE,oBAAoB/N,YAAcqyB,EACpCtkB,EAAE,qBAAqB/N,YAAcsyB,EACrCvkB,EAAE,sBAAsB/N,YAAcuyB,EACtCxkB,EAAE,sBAAsB/N,YAAcwyB,EACtCzkB,EAAE,mBAAmB/N,YAAcyyB,EACnC1kB,EAAE,sBAAsB/N,YAAc0yB,EACtC3kB,EAAE,oBAAoB/N,YAAc2yB,EAGtC,MAAMZ,EAAM,GAGZ,IAAK,IAAIlrB,EAAI,EAAGA,EAAI8nB,KAAKiE,gBAAgBh2B,OAAQiK,GAAK,EAAG,CACvD,MAAMsb,EAAI,GACVA,EAAEjhB,KAAOytB,KAAKiE,gBAAgB/rB,GAAG3F,KACjCihB,EAAEkO,MAAQ1B,KAAKiE,gBAAgB/rB,GAAGgqB,UAClC1O,EAAElU,GAAKie,GAAc/J,EAAEjhB,MAAM+M,GAC7B8jB,EAAItzB,KAAK0jB,GAGPE,EAAU6Q,aACZnB,EAAIE,MAAK,SAAUzsB,EAAGP,GACpB,OAAOwf,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,OAC9C,EACAka,EAAO5kB,QAAQ2F,EAAE+E,OAASka,EAAO5kB,QAAQoF,EAAEsF,QAE3C/E,EAAEyI,GAAKhJ,EAAEgJ,IADR,EAGD,KAGN8jB,EAAIE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE6qB,MAAQprB,EAAEorB,QAGjC,MAAM8C,EAAc,SAAUC,EAAMC,GAClC,OAAOD,EAAKE,WAAWx1B,GAAMA,EAAEoD,OAASmyB,EAAQnyB,QAElD,IAAK,IAAI2F,EAAI,EAAGA,EAAI8nB,KAAKiE,gBAAgBh2B,OAAQiK,GAAK,EACpDkH,EAAE,UAAUlH,KAAKjC,MAAM2uB,MACrBJ,EAAYpB,EAAKpD,KAAKiE,gBAAgB/rB,IAAM,EAYlD,SAAS2sB,KACP,OAAInR,EAAUoR,QACLzK,GAEmB,IAAxB3G,EAAUqR,UACL/E,KAAKgF,WAAa,EAAIhF,KAAKiF,WAER,IAAxBvR,EAAUqR,UAEV/E,KAAKgF,WACJ3H,IAA4B,EAA6B,IAAzBC,KAIX,IAAxB5J,EAAUqR,WACwC,IAAlD/E,KAAKkF,UAAU9H,GAAsB,IAAI/uB,KAGvC2xB,KAAKgF,WACwB,EAA3B3H,GAAgCC,IAC/B,EAA6B,IAAzBA,KAIT0C,KAAKgF,WACJ3H,GAA2BC,IACzB,EAA6B,IAAzBA,KAaX,SAAS6H,KACP,OAA4B,IAAxBzR,EAAUqR,UACL7H,GAEmB,IAAxBxJ,EAAUqR,UACL3H,GAAsB,GAExB,EAcT,SAASgI,GAAY7D,EAAIhvB,EAAM8yB,GAC7B,MAAMC,EAAWh5B,SAAS4D,cAAc,OACxCo1B,EAAS/D,GAAKA,EACd+D,EAASrvB,MAAMmG,OAAS,OACxBkpB,EAASrvB,MAAMsvB,OAAS,WACxBD,EAASrvB,MAAMgI,SAAW,WAE1B,MAAMqmB,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMkG,MAAQ,OAClBmoB,EAAIruB,MAAMmG,OAAS,OACnBkoB,EAAIruB,MAAMsvB,OAAS,OACnBjB,EAAIruB,MAAMgI,SAAW,WACrBqmB,EAAIruB,MAAMqC,KAAO,MACjBgsB,EAAIruB,MAAMsC,IAAM,MAChB+rB,EAAIruB,MAAMkI,MAAQ,MAClBmmB,EAAIruB,MAAMkW,OAAS,MAEnB,MAAM9d,EAAO/B,SAAS4D,cAAc,QACpC7B,EAAK4H,MAAMqV,QAAU,eACrBjd,EAAK4H,MAAMuW,UAAY,QACvBne,EAAK4H,MAAMuvB,SAAW,OACtBn3B,EAAK4H,MAAMkG,MAAQ,QACnB9N,EAAK4H,MAAMwvB,YAAc,MACzBp3B,EAAK4H,MAAMyvB,cAAgB,WAC3Br3B,EAAKgD,YAAckB,EACnB+xB,EAAI1a,YAAYvb,GAEhB,IAAK,IAAIL,EAAI,EAAGA,EAAIq3B,EAAKp3B,OAAQD,IAAK,CACpC,MAAM23B,EAAWr5B,SAAS4D,cAAc,QACxCy1B,EAASpE,GAAK8D,EAAKr3B,GAAGuzB,GACtBoE,EAAS1vB,MAAMqV,QAAU,eACzBqa,EAAS1vB,MAAMmG,OAAS,OACxBupB,EAAS1vB,MAAMyvB,cAAgB,WAC/BC,EAAS1vB,MAAMuW,UAAY,SACvB6Y,EAAKp3B,OAAS,IAAMD,IACtB23B,EAAS1vB,MAAM2vB,qBAAuB,OACtCD,EAAS1vB,MAAM4vB,wBAA0B,aAEd,IAAlBR,EAAKr3B,GAAG4N,QACjB+pB,EAASl3B,UAAY2mB,EAAeiQ,EAAKr3B,GAAG4N,OAE9C0oB,EAAI1a,YAAY+b,GAGlB,MAAMG,EAAQx5B,SAAS4D,cAAc,QAQrC,OAPA41B,EAAMvE,GAAK,GAAGA,QACduE,EAAM7vB,MAAM8vB,WAAa,MACzBD,EAAM7vB,MAAMyvB,cAAgB,WAC5BpB,EAAI1a,YAAYkc,GAEhBR,EAAS1b,YAAY0a,GAEdgB,EAOT,SAASU,GAA2BC,GAClC,GAAsB,OAAlB7mB,EAAE,YAAsB,CAC1B,MAAM/Q,EAAO+Q,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACtD6B,EAAQ9mB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACvD/kB,EAAKF,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GACpDrL,EAAO5Z,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAEtDr2B,EAAIi4B,EACJE,EAAS93B,EAAKub,YAAYtd,SAAS4D,cAAc,OACvDi2B,EAAOvc,YACLtd,SAASqgB,eACP,IAAuB,IAApB3e,EAAEkD,QAAQ,KAAclD,EAAEo4B,UAAU,EAAGp4B,EAAEkD,QAAQ,MAAQlD,QAInDm4B,EAAOvc,YAAYtd,SAAS4D,cAAc,SAClDzB,UAAY0mB,aAEjBgR,EAAOvc,YAAYtd,SAASqgB,eAAe,MAC3Cte,EAAKg4B,UAAUpwB,MAAMqwB,YAAc,MACnCJ,EAAMtc,YAAYtd,SAAS4D,cAAc,OACzCg2B,EAAMG,UAAUpwB,MAAMqwB,YAAc,MACpChnB,EAAGsK,YAAYtd,SAAS4D,cAAc,OACtCoP,EAAG+mB,UAAUpwB,MAAMqwB,YAAc,MACjCtN,EAAKpP,YAAYtd,SAAS4D,cAAc,OACxC8oB,EAAKqN,UAAUpwB,MAAMqwB,YAAc,OAkEvC,SAASC,KACP,GAAyB,IAArB7S,EAAU8S,QAAgBzJ,IAAkC,IAAjBiD,KAAK+C,QAAe,CACjE,IAAI0D,EAAQ,EACZj1B,OAAO6C,KAAK0oB,IAAekG,SAASj1B,IAClC,IAmBI04B,EAnBArzB,EAAS2sB,KAAK0C,QACG,IAAjB1C,KAAK+C,QACPzM,EAAmBjjB,EAEnBA,EAASijB,EAEI,IAAXjjB,IAAcA,EAAS0pB,IACZ,KAAX1pB,IAAeA,EAAS2pB,IACb,MAAX3pB,IAAgBA,EAAS4pB,IAC7BwJ,GAAS,EACTrnB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACApC,WAAW,GAAGhzB,YAAc2uB,KAAKoB,QAAQpzB,GAAGo0B,OAC9ChjB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAp1B,YAAcsmB,GAA4BtkB,EAAOrF,GAAGk4B,MAAO,GAC7D9mB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAh4B,UAAY0mB,EAAe9hB,EAAOrF,GAAG4N,MAGrC8qB,EADEhT,EAAUiT,cACD5N,GAAWxiB,KAAKC,MAAMnD,EAAOrF,GAAGsR,KAC7BqY,GAA4BphB,KAAKC,MAAMnD,EAAOrF,GAAGsR,IAAK,GACtEF,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAp1B,YAAcq1B,EAChB,MAAME,EAAYxN,IACf4G,KAAKoB,QAAQpzB,GAAG64B,WAAa7G,KAAK8G,QAAU3B,OAC3CN,MAEJzlB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAh4B,UAAY0mB,EAAeyR,EAAUhrB,MAElB,UAAnBgrB,EAAUvN,MACV2G,KAAK8G,QAAU9G,KAAKoB,QAAQpzB,GAAG64B,UAE/BznB,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAp1B,YAAc,GAAGu1B,EAAUvN,oBAE7Bja,EAAE,YAAYvO,WAAWA,WAAWwzB,WAAW,GAAGA,WAChDoC,GACAp1B,YAAcu1B,EAAUvN,SAWlC,SAAS0N,KACP/G,KAAKgH,WAAWhrB,OAAOG,MAAQ6jB,KAAKgH,WAAWhrB,OAAOmR,WAAWxU,YACjEqnB,KAAKgH,WAAWhrB,OAAOI,OACrB4jB,KAAKgH,WAAWhrB,OAAOmR,WAAWvU,aACpConB,KAAKiH,eAAejrB,OAAOG,MACzB6jB,KAAKiH,eAAejrB,OAAOmR,WAAWxU,YACxCqnB,KAAKiH,eAAejrB,OAAOI,OACzB4jB,KAAKiH,eAAejrB,OAAOmR,WAAWvU,aAY1C,SAASsuB,KAEgB,IAArBxT,EAAU8S,QACa,IAAvB9S,EAAUyT,UACgB,IAA1BzT,EAAU0T,aAEVhoB,EAAE,YAAYnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OACnDgD,EAAE,QAAQnJ,MAAMkW,OAAS,GACvBiM,OAAOhZ,EAAE,cAAcnJ,MAAMmG,OAAOxH,QAAQ,KAAM,KAAO,QAE7B,IAArB8e,EAAU8S,QACnBpnB,EAAE,YAAYnJ,MAAMkW,OAAS,MAC7B/M,EAAE,QAAQnJ,MAAMkW,OAAS,QACO,IAAvBuH,EAAUyT,UAA4C,IAA1BzT,EAAU0T,YAC/ChoB,EAAE,QAAQnJ,MAAMkW,OAAS/M,EAAE,cAAcnJ,MAAMmG,OAG/CgD,EAAE,QAAQnJ,MAAMkW,OAAS,MAGA,IAAvBuH,EAAUyT,UAA4C,IAA1BzT,EAAU0T,YACxChoB,EAAE,eAAenJ,MAAMsC,IAAM6G,EAAE,cAAcnJ,MAAMmG,OAEnDgD,EAAE,eAAenJ,MAAMsC,IAAM,GAG/BwuB,KAMF,SAASM,KACoB,IAAvB3T,EAAUyT,SAAgB/nB,EAAE,cAAcnJ,MAAMqV,QAAU,GACzDlM,EAAE,cAAcnJ,MAAMqV,QAAU,OACrC4b,KAoPF,SAASI,KACP7L,GAAkBuE,KAAKuH,WACvB7L,GAAmBsE,KAAKwH,YAS1B,SAASC,GAAgBC,GACvB,MAAMxD,EAAKlE,KAAK2H,aAAaD,GACvBE,EAAM,GAEZ,OADAA,EAAIr1B,KAAO2xB,EAAG3xB,KACPq1B,EAUT,SAASC,GAAoB3D,GAC3B,IAAI4D,EAAO,EAoBX,GAnBAt2B,OAAO6C,KAAK6vB,EAAG6D,gBAAgB9E,SAASj1B,KAEnCgyB,KAAKgI,MAAM9D,EAAG6D,eAAe/5B,GAAG8yB,MAAMmH,SACvCvH,GAAOwD,EAAG6D,eAAe/5B,GAAGuE,QAE5Bu1B,GAAQ,MAEZt2B,OAAO6C,KAAK6vB,EAAGgE,WAAWjF,SAASj1B,IACjC,GAAI0yB,GAAOwD,EAAGgE,UAAUl6B,GAAGuE,MAAO,CAChC,MAAM41B,EAAMjE,EAAGgE,UAAUl6B,GACrBm6B,EAAIC,aAAa71B,OAAS2xB,EAAG3xB,KAC/Bu1B,GAAQ,EAAI,IAAOK,EAAIE,aAAajG,OAC7B+F,EAAIE,aAAa91B,OAAS2xB,EAAG3xB,OACpCu1B,GAAQ,EAAI,KAAQK,EAAIC,aAAahG,YAGvC8B,EAAGrC,SAAWnB,GAAOwD,EAAGrC,QAAQtvB,QAAOu1B,GAAQ,MAC/C5D,EAAGoE,SAAW5H,GAAOwD,EAAGoE,QAAQ/1B,QAClCu1B,GAAQ,EAAgC,IAA5BlI,GAAW2I,QAAQnG,QAAiB,GAAK8B,EAAG3C,GAAK,KACnB,iBAAjC2C,EAAG6D,eAAeS,YACR,IAAftE,EAAGuE,SAAiB/H,GAAOwD,EAAG6D,eAAeS,WAAWj2B,MAC1D,OAAQytB,KAAK0I,YACX,QACEZ,GAAQ,EACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KACR,MACF,KAAK,EACHA,GAAQ,KAKhB,OAAOA,EAiBT,SAASa,GAAoB1C,GAC3B,MAAM/B,EAAKlE,KAAKoB,QAAQ6E,GAClB2B,EAAM,GA2FZ,MA1FgB,WAAZ1D,EAAG3xB,KACLq1B,EAAIgB,IAAM,SAAUjI,GAClB,IAAIxrB,EAAM,EACNurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,qBAAoBvrB,GAAO,GAClCurB,GAAO,qBAAoBvrB,GAAO,IAClCurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,uBAAsBvrB,GAAO,IACpCurB,GAAO,uBAAsBvrB,GAAO,IACxC,IAAI2yB,EAAO,EACPlQ,EAAM,EAQV,OAPApmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IACJ,WAAvB4xB,GAAW5xB,GAAGuE,OAAmBqlB,GAAOgI,GAAW5xB,GAAGo0B,WAE5DjtB,GAAOyiB,EACPkQ,GAAQD,GAAoBlH,GAC5BmH,GAAQ9H,KAAK6I,SAAS,UACtBf,GAAQtH,GAAO,aAEbR,KAAK8I,WACH,GACApI,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTvrB,GACE2yB,GAGa,YAAZ5D,EAAG3xB,KACZq1B,EAAIgB,IAAM,SAAUjI,GAClB,IAAImH,EAAO,EAYX,GAXAt2B,OAAO6C,KAAK2rB,KAAK+I,kBAAkB9F,SAASj1B,IACtC0yB,GAAOV,KAAK+I,iBAAiB/6B,MAAK85B,GAAQ,MAE5CpH,GAAO,oCAAmCoH,GAAQ,GAClDpH,GAAO,yBAAwBoH,GAAQ,GACvCpH,GAAO,kBAAiBoH,GAAQ,GAEhCpH,GAAO,wBAAuBoH,GAAQ,MAE1CA,GAAQtH,GAAO,cAEXE,GAAO,cACT,IAAK,IAAI1yB,EAAI,EAAGA,EAAIgyB,KAAKgJ,eAAeC,OAAOh7B,OAAQD,IACjD0yB,GAAOV,KAAKgJ,eAAeC,OAAOj7B,GAAGuE,QAAOu1B,GAAQ,MAI5DA,GAAQD,GAAoBlH,GAE5B,IAAIxrB,EAAM,EACNurB,GAAO,cAAavrB,GAAmC,IAA5ByqB,GAAW2I,QAAQnG,QAC9C1B,GAAO,yBACTvrB,GAAmC,IAA5ByqB,GAAW2I,QAAQnG,QACxB1B,GAAO,gBAAevrB,GAAkC,IAA3ByqB,GAAWsJ,OAAO9G,QAEnD,IAAIxK,EAAM,EASV,OARApmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IACJ,YAAvB4xB,GAAW5xB,GAAGuE,OAAoBqlB,GAAOgI,GAAW5xB,GAAGo0B,WAG7D0F,GAAQ,EAAqC,IAAjC3H,GAAY,mBAA4BvI,EAEpDkQ,GAAQ9H,KAAK6I,SAAS3E,EAAG3xB,OAEjB2xB,EAAGiF,QAAUh0B,GAAO2yB,GAG9BF,EAAIgB,IAAM,SAAUjI,GAClB,IAAImH,EAAO,EAGX,OAFAA,GAAQD,GAAoBlH,GAC5BmH,GAAQ9H,KAAK6I,SAASlI,EAAGpuB,MAClBouB,EAAGyI,QAAUtB,GAKxBF,EAAIuB,QAAUjF,EAAGiF,QACjBvB,EAAIr1B,KAAO2xB,EAAG3xB,KACdq1B,EAAIG,eAAiB7D,EAAG6D,eACxBH,EAAIM,UAAYhE,EAAGgE,UACnBN,EAAI/F,QAAUqC,EAAGrC,QACjB+F,EAAIU,QAAUpE,EAAGoE,QACjBV,EAAIwB,QAAUlF,EAAGiF,QACjBvB,EAAIrG,GAAK2C,EAAG3C,GACZqG,EAAIa,QAAUvE,EAAGuE,QACVb,EAaT,SAASyB,GAAYC,GACnB,MAAMpF,EAAKlE,KAAKuJ,SAASD,GACnB1B,EAAM,GA4BZ,OA1BAA,EAAI4B,MAAQtF,EAAGsF,MACU,mBAAd5B,EAAI4B,QACG,0BAAZtF,EAAG3xB,KACLq1B,EAAI4B,MAAQ,WACV,IAAIv4B,EAAI,EAIR,OAHAO,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC3B4xB,GAAW5xB,GAAGy7B,OAAS,KAAIx4B,GAAK,MAE/BA,GAGT22B,EAAI4B,MAAQ,WACV,IAAIE,EAAM,EAEV,GADIhJ,GAAO,cAAagJ,EAAM,GAC1B1J,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,WACV,IAAXe,EAAc2H,GAAO,IACL,IAAX3H,EAAc2H,GAAO,IACV,IAAX3H,IAAc2H,GAAO,KAEhC,OAAOA,IAIb9B,EAAI/G,KAAOqD,EAAGrD,KACd+G,EAAIr1B,KAAO2xB,EAAG3xB,KACPq1B,EAiBT,SAAS+B,KAEPhP,GAAmBqF,KAAK4J,cACxBhP,GAAaoF,KAAK6J,QAClBhP,GAAuBmF,KAAK8J,kBAC5BhP,GAAmBkF,KAAK+J,cACxBhP,GAAciF,KAAKgK,SAGnBx4B,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,MAAMk2B,EAAKlE,KAAKoB,QAAQpzB,GACxB,IAAI45B,EAAMhI,GAAW5xB,QACTI,IAARw5B,IAEFhI,GAAW5xB,GAAK26B,GAAoB36B,GACpC45B,EAAMhI,GAAW5xB,GACjBg4B,GAA2Bh4B,IAE7B45B,EAAIxF,OAAS8B,EAAG9B,OAChBwF,EAAI6B,MAAQvF,EAAGuF,MACf7B,EAAIqC,aAAe/F,EAAG+F,aACtBrC,EAAI1F,UAAYgC,EAAGhC,UACnB0F,EAAIzF,KAAO+B,EAAG/B,KACV+B,EAAGpC,iBACW,WAAZoC,EAAG3xB,OACL2oB,GAAUgJ,EAAG/C,SAAS+I,KAAK,GAC3B/O,GAAU+I,EAAG/C,SAAS+I,KAAK,GAC3B9O,GAAU8I,EAAG/C,SAAS+I,KAAK,IAE7BtC,EAAI9F,eAAiBoC,EAAGpC,eACxB8F,EAAIzG,SAAW+C,EAAG/C,UAEpBvB,GAAW5xB,GAAK45B,KAIlBp2B,OAAO6C,KAAK2rB,KAAKuJ,UAAUtG,SAASj1B,IAClC,MAAMk2B,EAAKlE,KAAKuJ,SAASv7B,GACzB,IAAI45B,EAAM/H,GAAY7xB,QACVI,IAARw5B,IACF/H,GAAY7xB,GAAKq7B,GAAYr7B,GAC7B45B,EAAM/H,GAAY7xB,IAEpB45B,EAAI7G,OAASmD,EAAGnD,OAChBlB,GAAY7xB,GAAK45B,KAInBp2B,OAAO6C,KAAK2rB,KAAK2H,cAAc1E,SAASj1B,IACtC,MAAMk2B,EAAKlE,KAAK2H,aAAa35B,GAC7B,IAAI45B,EAAM9H,GAAgB9xB,QACdI,IAARw5B,IACF9H,GAAgB9xB,GAAKy5B,GAAgBz5B,GACrC45B,EAAM9H,GAAgB9xB,IAExB45B,EAAIuC,IAAMjG,EAAGiG,IACbrK,GAAgB9xB,GAAK45B,KAIvBN,KACAtM,GAAgBS,GAChBR,GAAiBS,GA8BnB,SAAS0O,GAAoB/Q,GAC3B,MAAMiL,EAAMh4B,SAAS4D,cAAc,OAKnC,OAJAo0B,EAAIruB,MAAMo0B,WAAa,OACvB/F,EAAI/C,GAAK,GAAGlI,SACZiL,EAAI71B,UAAY0mB,aAChBmP,EAAIjzB,YAAcgoB,EACXiL,EAmHT,SAASgG,GAAgCC,GACvCA,EAAQ3gB,YAAYwgB,GAAoB,iBACxC,MAAMI,EAASl+B,SAAS4D,cAAc,OACtCs6B,EAAOv0B,MAAMw0B,aAAe,MAC5BD,EAAOv0B,MAAM2F,MAAQ,QACrB4uB,EAAOjJ,GAAK,kBACZgJ,EAAQ3gB,YAAY4gB,GAEpBD,EAAQ3gB,YAAYwgB,GAAoB,4BACxCG,EAAQlE,UAAUpwB,MAAMqV,QAAU,OAClC,MAAMof,EAAQp+B,SAAS4D,cAAc,OACrCw6B,EAAMz0B,MAAMw0B,aAAe,MAC3BC,EAAMz0B,MAAM2F,MAAQ,QACpB8uB,EAAMz0B,MAAMqV,QAAU,OACtBof,EAAMnJ,GAAK,0BACXgJ,EAAQ3gB,YAAY8gB,GAEpBH,EAAQ3gB,YAAYwgB,GAAoB,mBACxC,MAAM9qB,EAAKhT,SAAS4D,cAAc,OAClCoP,EAAGrJ,MAAMw0B,aAAe,MACxBnrB,EAAGiiB,GAAK,cACRgJ,EAAQ3gB,YAAYtK,GAEpBirB,EAAQ3gB,YAAYwgB,GAAoB,cACxC,MAAMpR,EAAO1sB,SAAS4D,cAAc,OAIpC,GAHA8oB,EAAKuI,GAAK,gBACVgJ,EAAQ3gB,YAAYoP,GAEA,MAAhB5B,GAAqB,CACvBmT,EAAQ3gB,YACNwgB,GAAoB,0CAEtBG,EAAQlE,UAAU9E,GAAK,4BACvB,MAAMoJ,EAAar+B,SAAS4D,cAAc,OAC1Cy6B,EAAWpJ,GAAK,sBAChBgJ,EAAQ3gB,YAAY+gB,IA4JxB,SAASC,GACPC,EACAC,EACAC,GAEA,IAAIC,EAAQH,EACRpE,EAAQ,EACZ,KAAOuE,EAAQD,GACbC,GAAqE,KAA5Dz0B,KAAK6D,IAAI,MAAQ4wB,EAAQz0B,KAAK6D,IAAI0wB,EAAU,OAAS,IAC9DrE,GAAS,EAEX,OAAOA,EAAQzG,KAAKiL,IA0XtB,SAASC,KACP,IAAIpD,EAAO,EAKX,OAJAt2B,OAAO6C,KAAK2rB,KAAKmL,OAAOlI,SAASj1B,SACM,IAA1BgyB,KAAKmL,MAAMn9B,GAAGo9B,UACvBtD,GAAQ9H,KAAKmL,MAAMn9B,GAAGo9B,YAEnBtD,EAWT,SAASuD,KACiC,OAApCjsB,EAAE,gCAC0B,IAA1BsU,EAAU4X,aACZlsB,EAAE,8BAA8BnJ,MAAMsC,IAAM,OAC5C6G,EAAE,8BAA8BnJ,MAAMsvB,OAAS,WAC/CnmB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAEhDrB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,OAC9CiB,EAAE,8BAA8BnJ,MAAMsvB,OAAS,MAC/CnmB,EAAE,8BAA8BnJ,MAAMwK,QAAU,YAyLtD,SAAS8qB,KAEP,GADA5B,KACyC,SAArCvqB,EAAE,iBAAiBnJ,MAAMqV,SAAsBlM,EAAE,iBAAkB,CACrEA,EAAE,iBAAiBoM,UAAY,GAC/B,MAAMggB,EAp6BV,WACEpsB,EAAE,WAAWvO,WAAWoF,MAAMw1B,cAAgB,MAC9C,MAAMD,EAAal/B,SAAS4D,cAAc,OAM1C,OALAs7B,EAAWv1B,MAAM0U,OAAS,YAC1B6gB,EAAWv1B,MAAMwK,QAAU,MAC3B+qB,EAAWv1B,MAAMsvB,OAAS,WAC1BiG,EAAWjK,GAAK,kBAChBiK,EAAW/8B,UAAY0mB,aAChBqW,EA45BcE,GACnBtsB,EAAE,iBAAiBwK,YAAY4hB,GAEX,MAAhBpU,GAzuBR,WACE,GAAsC,IAAlC1D,EAAUiY,qBAA8C,IAAjB3L,KAAK+C,QAAe,CAI7D,IAAI1vB,EAaJ,GAfAi3B,GADmBlrB,EAAE,oBAIA,IAAjB4gB,KAAK+C,QACPvM,EAA4BnjB,EAE5BA,EAASmjB,EAEU,IAAjBwJ,KAAK0C,QAAervB,EAAS0pB,GACP,KAAjBiD,KAAK0C,QAAgBrvB,EAAS2pB,GACb,MAAjBgD,KAAK0C,UAAiBrvB,EAAS4pB,IAExC/F,EAAe8I,KAAKoB,QAAQ/J,IAAawP,UACzC1P,EAAqB9jB,EAAOgkB,IAAa6O,MAEH,IAAlCxS,EAAUiY,qBAA8C,IAAjB3L,KAAK+C,QAAe,CAC7D3jB,EAAE,mBAAmB/N,YAAcsmB,GAA4BR,EAAoB,GACnF,MAAMyU,EAAWr1B,KAAKC,MACnB2gB,EAAqB6I,KAAKgF,UAAa,KAEtC5M,OAAOC,SAASuT,IAA0B,IAAbA,EAC/BxsB,EAAE,mBAAmB/N,aAAe,KAAKu6B,EAAW,kBAEpDxsB,EAAE,mBAAmB/N,aAAe,OAClCqiB,EAAU8E,eAAiB,IAAM,oBAGrCpZ,EAAE,mBAAmB3Q,UAAY0mB,EAAe9hB,EAAOgkB,IAAazb,MAChE8X,EAAUiT,cACZvnB,EAAE,eAAe/N,YAAc0nB,GAAW1lB,EAAOgkB,IAAa/X,IAC3DF,EAAE,eAAe/N,YAAcsmB,GAA4BtkB,EAAOgkB,IAAa/X,GAAI,GACxFF,EAAE,eAAe3Q,UAAY0mB,EAAe9hB,EAAOgkB,IAAazb,MAChE,MAAMgrB,EAAYxN,IACflC,GAAgB8I,KAAK8G,QAAU3B,OAAyBN,MAE3DzlB,EAAE,iBAAiB/N,YAAcu1B,EAAUvN,KAEtB,UAAnBuN,EAAUvN,MACV2G,KAAK8G,QAAUzzB,EAAOgkB,IAAaqK,MAEnCtiB,EAAE,iBAAiB/N,YAAc,GAAGu1B,EAAUvN,oBACzCja,EAAE,iBAAiB/N,YAAcu1B,EAAUvN,KAClDja,EAAE,iBAAiB3Q,UAAY0mB,EAAeyR,EAAUhrB,MAI1DwD,EAAE,6BAA6BnJ,MAAMqV,QAAU,OAC/ClM,EAAE,iBAAiBnJ,MAAMw0B,aAAe,MACxC,IAAK,MAAMz8B,KAAKwD,OAAO6C,KAAK2rB,KAAKoB,QAAQ/J,IAAawU,mBACpD,IACG7L,KAAK8L,UACJ9L,KAAKoB,QAAQ/J,IAAawU,kBAAkB79B,GAAG+9B,OAAOx5B,MAExD,CACA,MAAMy5B,EACJhM,KAAKoB,QAAQ/J,IAAawU,kBAAkB79B,GAC9CoR,EAAE,iBAAiBnJ,MAAMw0B,aAAe,MACxCrrB,EAAE,6BAA6BnJ,MAAMqV,QAAU,GAC/ClM,EAAE,uBAAuB3Q,UAAY,kBAAkB4oB,KACvDjY,EAAE,uBAAuB/N,YAAcsmB,GACrCqU,EAAqBtC,IAAM9J,GAAWvI,IAAa4S,aACnD,IAEF7qB,EAAE,uBAAuBnJ,MAAM2F,MAAQ,QACvC,YAGCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAoqBtC2gB,GACyB,MAAhB7U,GA3Tf,WAYE,GAVAkT,GADmBlrB,EAAE,oBAGrB+X,EACEoG,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAM2zB,MACxDhP,EAAe8I,KAAKuJ,SAClBvJ,KAAKiE,gBAAgB5M,IAAa9kB,MAClC25B,WACF5U,GACEiG,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAM45B,WAElB,IAAlCzY,EAAUiY,oBAA2B,CACvCvsB,EAAE,mBAAmB/N,YAAcsmB,GAA4BR,EAAoB,GACnF,MAAMyU,EAAWr1B,KAAKC,MAAO2gB,EAAqB6I,KAAKgF,UAAa,KAG7B,MAArC5lB,EAAE,mBAAmB/N,aACJ,MAAhB+lB,IAAuC,MAAhBA,IAOpBgB,OAAOC,SAASuT,IAA0B,IAAbA,EAC/BxsB,EAAE,mBAAmB/N,aAAe,KAAKu6B,EAAW,kBAEpDxsB,EAAE,mBAAmB/N,aAAe,OAClCqiB,EAAU8E,eAAiB,IAAM,oBAGrCpZ,EAAE,mBAAmB3Q,UACnB0mB,EACAoI,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAMqJ,MAEpD0b,KACFlY,EAAE,2BAA2B/N,YAAcsmB,GAA4BL,IACvElY,EAAE,2BAA2BnJ,MAAMqV,QAAU,QAC7ClM,EAAE,2BAA2BgtB,gBAAgBn2B,MAAMqV,QAAU,SAGpC,IAAvB6L,GAA4BG,IAC9BlY,EAAE,eAAe/N,YAAc,GAAGsmB,GAChCT,EAAeI,aAEjBlY,EAAE,eAAenJ,MAAM2F,MAAQ,UAE3B8X,EAAUiT,cACZvnB,EAAE,eAAe/N,YAAc0nB,GAC7BwE,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAM+M,IAGxDF,EAAE,eAAe/N,YAAcsmB,GAC7B4F,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAM+M,GACtD,GAEJF,EAAE,eAAe3Q,UACf0mB,EACAoI,GAAcyC,KAAKiE,gBAAgB5M,IAAa9kB,MAAMqJ,SAvC1DwD,EAAE,qBAAqBnJ,MAAMqV,QAAU,OACvClM,EAAE,mBAAmBnJ,MAAMqV,QAAU,OACrClM,EAAE,uBAAuBnJ,MAAMqV,QAAU,OACzClM,EAAE,eAAenJ,MAAMqV,QAAU,QAuCnC,MAAMsb,EAAYxN,IACflC,GAAgB8I,KAAK8G,QAAU3B,OAAyBN,MAY3D,GAVAzlB,EAAE,iBAAiB/N,YAAcu1B,EAAUvN,KAEtB,UAAnBuN,EAAUvN,MACV2G,KAAK8G,QAAU9G,KAAKiE,gBAAgB5M,IAAa6U,WAEjD9sB,EAAE,iBAAiB/N,YAAc,GAAGu1B,EAAUvN,oBACzCja,EAAE,iBAAiB/N,YAAcu1B,EAAUvN,KAClDja,EAAE,iBAAiB3Q,UAAY0mB,EAAeyR,EAAUhrB,MAGT,kBAA3CokB,KAAKiE,gBAAgB5M,IAAa9kB,KAA0B,CAC9D6M,EAAE,mBAAmBinB,UAAUpwB,MAAMw0B,aAAe,MACpDrrB,EAAE,mBAAmBwK,YACnBwgB,GAAoB,yCAEtB,MAAMiC,EAAY//B,SAAS4D,cAAc,OACzCm8B,EAAUp2B,MAAM2F,MAAQ,QACxBywB,EAAUh7B,YAAc,GAAGsmB,GAA2C,IAAfqI,KAAK8G,cAAqBnP,GAC/EmF,MAEF1d,EAAE,mBAAmBwK,YAAYyiB,SAE9BjtB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAqOtCghB,GACyB,MAAhBlV,GAxVf,WACE,GAA8B,IAA1B1D,EAAU6Y,YAAmB,CAC/B,MAAMf,EAAapsB,EAAE,mBAErBosB,EAAW5hB,YAAYwgB,GAAoB,uBAE3C,MAAMoC,EAAWlgC,SAAS4D,cAAc,OACxCs8B,EAASjL,GAAK,gBACdiK,EAAW5hB,YAAY4iB,GACvB,MAAMC,EApCK,KADOp+B,EAqCa2xB,KAAK0M,iBAnC7B,CAAErT,KAAM,SAAUzd,MAAO+Z,GAErB,IAATtnB,EACK,CAAEgrB,KAAM,aAAczd,MAAO0Z,GAEzB,IAATjnB,EACK,CAAEgrB,KAAM,SAAUzd,MAAO2Z,GAErB,IAATlnB,EACK,CAAEgrB,KAAM,QAASzd,MAAO4Z,GAEpB,IAATnnB,EACK,CAAEgrB,KAAM,cAAezd,MAAO8Z,GAEhC,CAAE2D,KAAM,qBAAsBzd,MAAO6Z,GAsB1C+W,EAASn7B,YAAco7B,EAAUpT,KACjCmT,EAAS/9B,UAAY0mB,EAAesX,EAAU7wB,WACzCwD,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAxC5C,IAAsBjd,EAqXhBs+B,GACyB,MAAhBvV,GA1kBf,WACE,MAAM+J,SAAEA,GAAanB,KAAKoB,QAAQ,gBAC5BwL,EAAYzL,EAAS0L,aAAa1L,EAAS2L,WAAWzV,KAE5D,GAA8B,IAA1B3D,EAAUqZ,aAAqBH,GAAazL,EAAS6L,OAAQ,CAC/D,MAAMxB,EAAapsB,EAAE,mBAGrBosB,EAAW5hB,YAAYwgB,GAAoB,cAC3C,MAAMpR,EAAO1sB,SAAS4D,cAAc,OACpC8oB,EAAKuI,GAAK,gBACViK,EAAW5hB,YAAYoP,GACvB,MAAM4N,EAAYxN,GAChBwR,GAA4BzJ,EAAS6J,MAAO7J,EAAS6L,OAAQJ,IAM/D,GAJA5T,EAAK3nB,YAAcu1B,EAAUvN,KAC7BL,EAAKvqB,UAAY0mB,EAAeyR,EAAUhrB,MAGtCgxB,GAAazL,EAAS6J,MAAO,CAC/BQ,EAAW5hB,YAAYwgB,GAAoB,iBAC3C,MAAM6C,EAAU3gC,SAAS4D,cAAc,OACvC+8B,EAAQ1L,GAAK,mBACbiK,EAAW5hB,YAAYqjB,GACvB,MAAMC,EAAe9T,GACnBwR,GACEr0B,KAAK6D,IAAI,EAAG+mB,EAAS6J,MAAQ4B,GAC7BzL,EAAS6L,OACT7L,EAAS6J,QAGbiC,EAAQ57B,YAAc67B,EAAa7T,KACnC4T,EAAQx+B,UAAY0mB,EAAe+X,EAAatxB,MAIlD,GAAoB,MAAhByb,GAAqB,CACvBmU,EAAW5hB,YACTwgB,GAAoB,8BAEtB,MAAM+C,EAAU7gC,SAAS4D,cAAc,OACvCi9B,EAAQ5L,GAAK,IACbiK,EAAW5hB,YAAYujB,GACvB,MAAMC,EAAS9gC,SAAS4D,cAAc,QACtCk9B,EAAOn3B,MAAM2F,MAAQ,UACrBwxB,EAAO/7B,YAAcsmB,GACnBphB,KAAK2D,IACqC,KAAvC8lB,KAAK8G,QAAU3B,MACa,GAA7B5I,GAAkC,IAEpC,GAEF4Q,EAAQvjB,YAAYwjB,GACpB,MAAMC,EAAY/gC,SAAS4D,cAAc,QACzCm9B,EAAUh8B,YAAc,MACxB87B,EAAQvjB,YAAYyjB,GACpB,MAAMC,EAAOhhC,SAAS4D,cAAc,QACpCo9B,EAAKr3B,MAAM2F,MAAQ,MACnB0xB,EAAKj8B,YAAcsmB,GAAyD,GAA7B4E,GAAkC,GAAI,GACrF4Q,EAAQvjB,YAAY0jB,GAGtBluB,EAAE,iBAAiBwK,YAAY4hB,QAC1BpsB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA4gBtCiiB,GACyB,MAAhBnW,GA9pBf,WACE,MAAM+J,SAAEA,GAAanB,KAAKoB,QAAQoM,KAClC,GACE9Z,EAAU+Z,cAC2C,IAArDtM,EAASuM,KAAKrW,GAAY,IAAIA,GAAY,IAAI,GAC9C,CACA,MAAMsW,EACJxM,EAASuM,KAAKrW,GAAY,IAAIA,GAAY,IAAI,GAC9C8J,EAASyM,WAAWzM,EAASuM,KAAKrW,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpEwW,WACCC,EACJ3M,EAASyM,WAAWzM,EAASuM,KAAKrW,GAAY,IAAIA,GAAY,IAAI,GAAK,GACpE9kB,KACL6M,EAAE,mBAAmBwK,YACnBwgB,GAAoB,+BAEtB,MAAMgD,EAAS9gC,SAAS4D,cAAc,OACtCk9B,EAAO7L,GAAK,uBACZniB,EAAE,mBAAmBwK,YAAYwjB,GACf,cAAdU,EACF1uB,EAAE,wBAAwB/N,YAAc,GACtCs8B,EACIhW,GAA4BphB,KAAK2D,IAAmB,IAAf8lB,KAAK8G,QAAiC,GAAjB9G,KAAKgF,UAAiB,KAChF,SACArN,GAA6C,GAAjBqI,KAAKgF,UAAiB,MACjC,cAAd8I,GAA2C,oBAAdA,EACtC1uB,EAAE,wBAAwB/N,YAAc,GACtCs8B,EACIhW,GAA4BphB,KAAK2D,IAAmB,IAAf8lB,KAAK8G,QAAiC,GAAjB9G,KAAKgF,UAAiB,IAChF,SACArN,GAA6C,GAAjBqI,KAAKgF,UAAiB,KACjC,cAAd8I,EACT1uB,EAAE,wBAAwB/N,YAAc,GACtCs8B,EACIhW,GAA4BphB,KAAK2D,IAAmB,IAAf8lB,KAAK8G,QAAiC,GAAjB9G,KAAKgF,UAAiB,KAChF,SACArN,GAA6C,GAAjBqI,KAAKgF,UAAiB,MACjC,cAAd8I,EACT1uB,EAAE,wBAAwB/N,YAAc,GACtCs8B,EACIhW,GAA4BphB,KAAK2D,IAAmB,IAAf8lB,KAAK8G,QAAiC,GAAjB9G,KAAKgF,UAAiB,MAChF,SACArN,GAA6C,GAAjBqI,KAAKgF,UAAiB,OACnD5lB,EAAE,iBAAiBnJ,MAAMqV,QAAU,YACrClM,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAmnBtCyiB,GACyB,OAAhB3W,GAlgBf,WACE,MAAM+J,SAAEA,GAAanB,KAAKoB,QAAQoM,KAClC,GAAI9Z,EAAU6Y,YAAa,CACzBntB,EAAE,mBAAmBwK,YACnBwgB,GAAoB,oCAEtB,IAAI4D,EAAY,EACZC,EAAS,EACTjO,KAAK3rB,KAAK,KAAO2rB,KAAK3rB,KAAK,MAAK45B,EAAS,GAC7C,IAAK,IAAI91B,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAID,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAIipB,EAASuM,KAAKv1B,GAAGD,GAAG,IAAM,EAAG,CAC/B,MAAMg2B,EAAO/M,EAASuM,KAAKv1B,GAAGD,GACxBgsB,EAAK/C,EAASyM,WAAWM,EAAK,GAAK,GACnCJ,EAAY5J,EAAG3xB,KAErB,IAAIk0B,GAAQ,EACRwH,GAAU/J,EAAGiK,WAAU1H,GAAQ,GAC/ByH,EAAK,GAAKhK,EAAG2J,aAAYpH,GAAQ,GACjCA,GAAuB,cAAdqH,EACXE,GAAaz3B,KAAK2D,IACD,IAAf8lB,KAAK8G,QACY,GAAjB9G,KAAKgF,UAAiB,IAGvByB,GAAuB,cAAdqH,GACI,oBAAdA,EAEAE,GAAaz3B,KAAK2D,IAAmB,IAAf8lB,KAAK8G,QAAiC,GAAjB9G,KAAKgF,UAAiB,GACxDyB,GAAuB,cAAdqH,EAClBE,GAAaz3B,KAAK2D,IACD,IAAf8lB,KAAK8G,QACY,GAAjB9G,KAAKgF,UAAiB,IAEfyB,GAAuB,cAAdqH,IAClBE,GAAaz3B,KAAK2D,IACD,IAAf8lB,KAAK8G,QACY,GAAjB9G,KAAKgF,UAAiB,MAMhC5lB,EAAE,mBAAmBwK,YACnBtd,SAASqgB,eAAegL,GAA4BqW,UAEjD5uB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAqdtC8iB,GACyB,OAAhBhX,GAnDf,WACEhY,EAAE,WAAWoM,UAAY,GACzBpM,EAAE,WAAWwK,YAAYwgB,GAAoB,YAE7C,MAAMiE,EAAiB/hC,SAAS4D,cAAc,OAC9Cm+B,EAAe9M,GAAK,mBACA,WAAhBlK,GACFgX,EAAeh9B,YAAc6rB,GACJ,eAAhB7F,KACTgX,EAAeh9B,YAAc+rB,GAAsB,IAGrDhe,EAAE,WAAWwK,YAAYykB,GAwCrBC,IAEgB,QAAhBlX,IACiB,QAAhBA,KAA6C,IAApBC,GAAY,KA3c5C,WACE,GAAkC,IAA9B3D,EAAU6a,gBAAuB,CACnC,MAAM/C,EAAapsB,EAAE,mBACrB,IAAIovB,EACuBA,EAAP,QAAhBpX,GAA+BC,GAAY,GAClCA,GAGbmU,EAAW5hB,YAAYwgB,GAAoB,0BAC3C,MAAMqE,EAAOniC,SAAS4D,cAAc,OAEpC,GADAu+B,EAAKlN,GAAK,6BACkB,IAAxBtC,GAAUuP,GAAO,GAAU,CAC7BC,EAAKp9B,YAAcsmB,GAA4BsH,GAAUuP,GAAO,IAChE,MAAM5C,EAAWr1B,KAAKC,MACnByoB,GAAUuP,GAAO,GAAKxO,KAAKgF,UAAa,KAEvC5M,OAAOC,SAASuT,IAA0B,IAAbA,EAC/B6C,EAAKp9B,aAAe,KAAKu6B,EAAW,kBAEpC6C,EAAKp9B,aAAe,OAClBqiB,EAAU8E,eAAiB,IAAM,yBAGhCiW,EAAKp9B,YAAc,mBAC1Bm6B,EAAW5hB,YAAY6kB,GAEvBjD,EAAW5hB,YAAYwgB,GAAoB,0BAC3C,MAAMsE,EAAOpiC,SAAS4D,cAAc,OAEpC,GADAw+B,EAAKnN,GAAK,6BACkB,IAAxBtC,GAAUuP,GAAO,GAAU,CAC7BE,EAAKr9B,YAAcsmB,GAA4BsH,GAAUuP,GAAO,IAChE,MAAM5C,EAAWr1B,KAAKC,MACnByoB,GAAUuP,GAAO,GAAKxO,KAAKgF,UAAa,KAEvC5M,OAAOC,SAASuT,IAA0B,IAAbA,EAC/B8C,EAAKr9B,aAAe,KAAKu6B,EAAW,kBAEpC8C,EAAKr9B,aAAe,OAClBqiB,EAAU8E,eAAiB,IAAM,yBAGhCkW,EAAKr9B,YAAc,mBAC1Bm6B,EAAW5hB,YAAY8kB,GAEvBlD,EAAW5hB,YAAYwgB,GAAoB,0BAC3C,MAAMuE,EAAOriC,SAAS4D,cAAc,OAEpC,GADAy+B,EAAKpN,GAAK,6BACkB,IAAxBtC,GAAUuP,GAAO,GAAU,CAC7BG,EAAKt9B,YAAcsmB,GAA4BsH,GAAUuP,GAAO,IAChE,MAAM5C,EAAWr1B,KAAKC,MACnByoB,GAAUuP,GAAO,GAAKxO,KAAKgF,UAAa,KAEvC5M,OAAOC,SAASuT,IAA0B,IAAbA,EAC/B+C,EAAKt9B,aAAe,KAAKu6B,EAAW,kBAEpC+C,EAAKt9B,aAAe,OAClBqiB,EAAU8E,eAAiB,IAAM,yBAGhCmW,EAAKt9B,YAAc,mBAC1Bm6B,EAAW5hB,YAAY+kB,GAEvBvvB,EAAE,iBAAiBwK,YAAY4hB,QAC1BpsB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OA8YtCsjB,GA9LN,WACE,GAAoB,MAAhBxX,IAAuC,MAAhBA,GAAqB,CACgB,OAA1D9qB,SAASuiC,eAAe,gCAC1BzvB,EAAE,iBAAiBwK,YAhuBzB,WACE,MAAMklB,EAAcxiC,SAAS4D,cAAc,OAC3C4+B,EAAY74B,MAAMgI,SAAW,WAC7B6wB,EAAY74B,MAAMqV,QAAU,QAC5BwjB,EAAY74B,MAAMqC,KAAO,OACzBw2B,EAAY74B,MAAMkW,OAAS,OAC3B2iB,EAAYvN,GAAK,6BAEjB,MAAMwN,EAAS,SACbC,EACApzB,EACAqzB,EACAC,EACAC,GAEA,MAAMpnB,EAAMzb,SAAS4D,cAAc,OACnC6X,EAAIwZ,GAAKyN,EACTjnB,EAAI9R,MAAMqV,QAAU,OACpBvD,EAAI9R,MAAMm5B,WAAa,wBACvBrnB,EAAItZ,UAltDe,WAktDcmN,EACjCmM,EAAI9R,MAAMwK,QAAU,MACpBsH,EAAI9R,MAAMqB,WAAa,8BACvB,MAAM+3B,EAAW/iC,SAAS4D,cAAc,OACxC6X,EAAI6B,YAAYylB,GAChB,MAAMC,EAAYhjC,SAAS4D,cAAc,QACzCo/B,EAAU7gC,UAAY0mB,EAAevZ,EACrC0zB,EAAUr5B,MAAMo0B,WAAa,OAC7BiF,EAAUj+B,YAAc49B,EACxBI,EAASzlB,YAAY0lB,GACrBD,EAASzlB,YAAYtd,SAASqgB,eAAeuiB,IAC7C,MAAMK,EAAajjC,SAAS4D,cAAc,OAC1C6X,EAAI6B,YAAY2lB,GAChB,MAAMC,EAAcljC,SAAS4D,cAAc,QAI3C,OAHAs/B,EAAYjO,GAAK4N,EACjBI,EAAW3lB,YAAYtd,SAASqgB,eAAe,cAC/C4iB,EAAW3lB,YAAY4lB,GAChBznB,GA+DT,OA5DA+mB,EAAYllB,YACVmlB,EACE,yBACAtZ,EACA,YACA,uFACA,+BAGJqZ,EAAYj+B,WAAWoF,MAAMw0B,aAAe,MAC5CqE,EAAYllB,YACVmlB,EACE,+BACAxZ,EACA,YACA,gGACA,qCAGJuZ,EAAYzI,UAAUpwB,MAAMw0B,aAAe,MAC3CqE,EAAYllB,YACVmlB,EACE,2BACArZ,EACA,YACA,oGACA,iCAGJoZ,EAAYzI,UAAUpwB,MAAMw0B,aAAe,MAC3CqE,EAAYllB,YACVmlB,EACE,iCACArZ,EACA,YACA,6GACA,uCAGJoZ,EAAYzI,UAAUpwB,MAAMw0B,aAAe,MAC3CqE,EAAYllB,YACVmlB,EACE,2BACArZ,EACA,YACA,qJACA,iCAGJoZ,EAAYzI,UAAUpwB,MAAMw0B,aAAe,MAC3CqE,EAAYllB,YACVmlB,EACE,wBACAtZ,EACA,YACA,2EAA2E/B,EAAU+b,8BACrF,8BAIGX,EA6nB4BY,IAC/BrE,MAG4B,IAA1B3X,EAAU4X,YACZlsB,EAAE,8BAA8BnJ,MAAMkI,MAAQ,MAE9CiB,EAAE,8BAA8BnJ,MAAMsC,IAAM,GAC1C6G,EAAE,WAAWxG,iBAGjBwG,EAAE,8BAA8BnJ,MAAMkG,MACpCiD,EAAE,WAAWzG,YAAc,EADiB,KAI9C,MAAMypB,EAASpC,KAAK8G,QAAU3B,KAAuBjO,EAC/CyY,EAAkBjc,EAAUkc,YAAczY,EAAqB,EACrE,IAAI0Y,EAAahU,GACjB,GAA8B,IAA1BnI,EAAUkc,YAAmB,CAC/B,IAAIE,EAAc3Y,EAClB2Y,GAAe5E,KACf2E,GAA6B,GAAdC,EAAmB,GAAM,IAc1C,GAXgC,IAA5Bpc,EAAUqc,eACR3N,EAASyN,IAA+B,MAAhBzY,IAAwC,IAAjB4I,KAAK+C,UACtD3jB,EAAE,0BAA0BnJ,MAAMqV,QAAU,GAC5ClM,EAAE,8BAA8B/N,YAAc,GAAGsmB,GAC/CkY,EAAazN,OACTrJ,IACH8W,EAAazN,IAAWyC,KAAW8K,QAGnCvwB,EAAE,0BAA0BnJ,MAAMqV,QAAU,OAEb,IAAlCoI,EAAUsc,oBAA2B,CACvC,MAAMC,EAAgC,EAAbJ,EAEvBzN,EAAS6N,IACQ,MAAhB7Y,IAAwC,IAAjB4I,KAAK+C,UAE7B3jB,EAAE,gCAAgCnJ,MAAMqV,QAAU,GAClDlM,EAAE,oCAAoC/N,YAAc,GAAGsmB,GACrDsY,EAAmB7N,OACfrJ,IACHkX,EAAmB7N,IAAWyC,KAAW8K,QAEvCvwB,EAAE,gCAAgCnJ,MAAMqV,QAAU,YACpDlM,EAAE,gCAAgCnJ,MAAMqV,QAAU,OAEzD,GAAkC,IAA9BoI,EAAUwc,gBAAuB,CACnC,MAAMC,EAA4B,EAAbN,EAEnBzN,EAAS+N,IACQ,MAAhB/Y,IAAwC,IAAjB4I,KAAK+C,UAE7B3jB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGsmB,GACjDwY,EAAe/N,OACXrJ,IACHoX,EAAe/N,IAAWyC,KAAW8K,QAEnCvwB,EAAE,4BAA4BnJ,MAAMqV,QAAU,YAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAErD,GAAwC,IAApCoI,EAAU0c,sBAA6B,CACzC,MAAMC,EAAkC,EAAbR,EAAiB,EAE1CzN,EAASiO,IACQ,MAAhBjZ,IAAwC,IAAjB4I,KAAK+C,UAE7B3jB,EAAE,kCAAkCnJ,MAAMqV,QAAU,GACpDlM,EAAE,sCAAsC/N,YAAc,GAAGsmB,GACvD0Y,EAAqBjO,OACjBrJ,IACHsX,EAAqBjO,IAAWyC,KAAW8K,QAEzCvwB,EAAE,kCAAkCnJ,MAAMqV,QAAU,YACtDlM,EAAE,kCAAkCnJ,MAAMqV,QAAU,OAG3B,IAA9BoI,EAAU4c,iBACVtQ,KAAKoB,QAAQ,gBAAgBU,gBAG3BzF,IACA+F,EAAS/F,KACQ,MAAhBjF,IAAwC,IAAjB4I,KAAK+C,UAE7B3jB,EAAE,4BAA4BnJ,MAAMqV,QAAU,GAC9ClM,EAAE,gCAAgC/N,YAAc,GAAGsmB,GACjD0E,GAAe+F,OACXrJ,IACHsD,GAAe+F,IAAWyC,KAAW8K,QAGrCvwB,EAAE,4BAA4BnJ,MAAMqV,QAAU,OAEjDoI,EAAU+b,aAAe,GAEzBrN,EAAS1O,EAAU+b,aAAe5K,OACjB,MAAhBzN,IAAwC,IAAjB4I,KAAK+C,UAE7B3jB,EAAE,yBAAyBnJ,MAAMqV,QAAU,GAE3ClM,EACE,yBACAmxB,SAAS,GAAGl/B,YAAc,2EAA2EqiB,EAAU+b,8BACjHrwB,EAAE,6BAA6B/N,YAAc,GAAGsmB,GAC9CjE,EAAU+b,aAAe5K,KAAWzC,OAChCrJ,IACHrF,EAAU+b,aAAe5K,KAAWzC,IAClCyC,KAAW8K,QAGbvwB,EAAE,yBAAyBnJ,MAAMqV,QAAU,YACL,OAApClM,EAAE,+BACXA,EAAE,8BAA8B9J,SAwEhCk7B,QACgC,OAAvBpxB,EAAE,kBAE6B,OAApCA,EAAE,+BACJA,EAAE,8BAA8B9J,SAyFtC,SAASm7B,KAEP,GACEzQ,KAAK0Q,MAAMC,UACX3Q,KAAK4Q,MAAQ,IAAO,GACJ,UAAhB5Q,KAAK6Q,QACLnd,EAAUod,MACV,CACA,MAAMhL,EAAQx5B,SAASuiC,eAAe,wBAClC/I,IACFA,EAAMiL,UAAY/Q,KAAKgR,QACV,GAAXhR,KAAKiL,IAAYjL,KAAKiR,GAAgB,GAAXjR,KAAKiL,KAChC,IAMNnI,KACAU,KAthDF,WACE,GAA2B,IAAvB9P,EAAUyT,SAAgB,CAE5B,MAAM+J,EAAiB9xB,EAAE,cAAczG,YAAc,IAE/Cw4B,EAAiB/xB,EAAE,cAAczG,YAAc,IACrD,IAAIy4B,EAAiB,EAIkB,IAArCpR,KAAKqR,aAAaC,OAAOC,SACxBvR,KAAKwR,IAAI,uBA+CLpyB,EAAE,gBAAgBnJ,MAAMqV,QAAU,QA7CvClM,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClClM,EAAE,sBAAsBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC3CD,KAAK6D,IACJ,EACA4lB,KAAKqR,aAAaC,OAAOG,QAAUzR,KAAKqR,aAAaC,OAAOtY,MAE5DkY,EACAlR,KAAKqR,aAAaC,OAAOI,aAEzBhe,EAAUie,iBAAmB,EAC/BvyB,EAAE,sBAAsB/N,YAAckF,KAAKoL,MACxCqe,KAAKqR,aAAaC,OAAOG,QAAUzR,KAAKqR,aAAaC,OAAOtY,MAC3DgH,KAAKiL,KAEN7rB,EAAE,sBAAsB/N,YAAc,GAEzC2uB,KAAKqR,aAAaC,OAAOG,UAAYzR,KAAKqR,aAAaC,OAAOI,SAE9DtyB,EAAE,sBAAsBnJ,MAAM2vB,qBAAuB,OACrDxmB,EAAE,sBAAsBnJ,MAAM4vB,wBAA0B,SAExDzmB,EAAE,sBAAsBnJ,MAAM2vB,qBAAuB,GACrDxmB,EAAE,sBAAsBnJ,MAAM4vB,wBAA0B,IAE1DzmB,EAAE,mBAAmBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACxCD,KAAK2D,IACJ8lB,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOG,QAC5DzR,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOtY,MAE5DkY,EACAlR,KAAKqR,aAAaC,OAAOI,aAEzBhe,EAAUie,iBAAmB,EAC/BvyB,EAAE,mBAAmB/N,YAAckF,KAAKoL,KACtCpL,KAAK2D,IACH8lB,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOG,QAC5DzR,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOtY,MAC1DgH,KAAKiL,KAER7rB,EAAE,mBAAmB/N,YAAc,GACxC+N,EAAE,oBAAoB/N,YAAckF,KAAKoL,MACtCqe,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOtY,MAC3DgH,KAAKiL,KAETmG,GAAkB,GAKF,cAAhBpR,KAAK4R,QACkC,IAAvC5R,KAAKqR,aAAaQ,SAASN,SAE3BnyB,EAAE,iBAAiBnJ,MAAMqV,QAAU,GACnClM,EAAE,uBAAuBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC5CD,KAAK6D,IACJ,EACA4lB,KAAKqR,aAAaQ,SAASJ,QAAUzR,KAAKqR,aAAaQ,SAAS7Y,MAEhEkY,EACAlR,KAAKqR,aAAaQ,SAASH,aAE3Bhe,EAAUie,iBAAmB,EAC/BvyB,EAAE,uBAAuB/N,YAAckF,KAAKoL,MACzCqe,KAAKqR,aAAaQ,SAASJ,QAC1BzR,KAAKqR,aAAaQ,SAAS7Y,MAC3BgH,KAAKiL,KAEN7rB,EAAE,uBAAuB/N,YAAc,GAC5C+N,EAAE,oBAAoBnJ,MAAMkG,MAAQ,GAAG5F,KAAKC,MACzCD,KAAK2D,IACJ8lB,KAAKqR,aAAaQ,SAASH,QACzB1R,KAAKqR,aAAaQ,SAASJ,QAC7BzR,KAAKqR,aAAaQ,SAASH,QAAU1R,KAAKqR,aAAaQ,SAAS7Y,MAEhEkY,EACAlR,KAAKqR,aAAaQ,SAASH,aAE3Bhe,EAAUie,iBAAmB,EAC/BvyB,EAAE,oBAAoB/N,YAAckF,KAAKoL,KACvCpL,KAAK2D,IACH8lB,KAAKqR,aAAaQ,SAASH,QACzB1R,KAAKqR,aAAaQ,SAASJ,QAC7BzR,KAAKqR,aAAaQ,SAASH,QACzB1R,KAAKqR,aAAaQ,SAAS7Y,MAC3BgH,KAAKiL,KAER7rB,EAAE,oBAAoB/N,YAAc,GACzC+N,EAAE,qBAAqB/N,YAAckF,KAAKoL,MACvCqe,KAAKqR,aAAaQ,SAASH,QAAU1R,KAAKqR,aAAaQ,SAAS7Y,MAC/DgH,KAAKiL,KAETmG,GAAkB,GAElBhyB,EAAE,iBAAiBnJ,MAAMqV,QAAU,OAIrC,MAAMwmB,EAAgB,GACtB1yB,EAAE,wBAAwBoM,UAAY,GACtCha,OAAO6C,KAAK2rB,KAAKmL,OAAOlI,SAASj1B,IAC/B,GAAIgyB,KAAKmL,MAAMn9B,GAAI,CACjB,MAAM83B,EAAQV,GAAYpF,KAAKmL,MAAMn9B,GAAGuE,KAAMytB,KAAKmL,MAAMn9B,GAAGuE,KAAM,CAChE,CAAEgvB,GAAI,GAAGvB,KAAKmL,MAAMn9B,GAAGuE,aAEzBuzB,EAAM7vB,MAAMqV,QAAU,GACtB,IAAIymB,EAAa,GAGfA,OAD4C,IAAnCpb,EAAWqJ,KAAKmL,MAAMn9B,GAAGuE,MACrBokB,EAAWqJ,KAAKmL,MAAMn9B,GAAGuE,MACpBmjB,EACpBoQ,EAAMO,UAAUkK,SAAS,GAAG9hC,UAAY2mB,EAAe2c,EACvDjM,EAAMO,UAAUkK,SAAS,GAAGt6B,MAAM2F,MAAQ,QACR,IAA9B8X,EAAUie,gBACZ7L,EAAMO,UAAUkK,SAAS,GAAGl/B,YAAc,GAAGkF,KAAKC,MACzCwpB,KAAKmL,MAAMn9B,GAAGgrB,KAAOgH,KAAKmL,MAAMn9B,GAAG0jC,QAA1C,QAEC5L,EAAMO,UAAUkK,SAAS,GAAGl/B,YAAc,GAC/Cy0B,EAAMO,UAAUkK,SAAS,GAAGt6B,MAAMkG,MAAQ,GAAG5F,KAAKC,MAC/CwpB,KAAKmL,MAAMn9B,GAAGgrB,MACZmY,EAC8D,EAA7D56B,KAAKoL,KAAKqe,KAAKmL,MAAMn9B,GAAGgrB,KAAOgH,KAAKiL,KAAKx0B,WAAWxI,QACtD+xB,KAAKmL,MAAMn9B,GAAG0jC,aAElB5L,EAAMO,UAAUkK,SAAS,GAAGl/B,YAAckF,KAAKoL,KAC7Cqe,KAAKmL,MAAMn9B,GAAGgrB,KAAOgH,KAAKiL,KAE5BmG,GAAkB,EAClBU,EAAc9R,KAAKmL,MAAMn9B,GAAGuE,MAAQuzB,MAGxCt0B,OAAO6C,KAAKy9B,GAAe7O,SAASj1B,IAClCoR,EAAE,wBAAwBwK,YAAYkoB,EAAc9jC,OAG/B,IAAnBojC,IACFhyB,EAAE,cAAcnJ,MAAMmG,OAA6B,GAAjBg1B,EAAsB,EAAzB,MAE7B5Z,KAAuB4Z,IACzB5Z,GAAqB4Z,EACrBlK,OAi4CJ8K,GAGAzL,KAGAgF,KArGF,WACE,GAA+B,IAA3B7X,EAAUue,cAA8C,IAAxB9b,EAA2B,CAE7D,IAAI+b,GAAiB,EACrB1gC,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACnC,MAAMk2B,EAAKlE,KAAKkF,UAAUl3B,GAC1B,GAAIk2B,EAAGiO,MAAQ,GAAKjO,EAAGkO,UAErB,GADAF,GAAiB,EAEkB,IAAjC7b,EAA0BroB,SACOI,IAAjCioB,EAA0BroB,GAC1B,CACA,MAAMqkC,EAAc/lC,SAAS4D,cAAc,OACrCoiC,EAAWhmC,SAAS4D,cAAc,OACxCoiC,EAASr8B,MAAMs8B,SAAW,QAC1BD,EAASr8B,MAAMw0B,aAAe,MAC9B,MAAMnG,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAI/C,GAAK,oBACT+Q,EAAS1oB,YAAY0a,GACrB+N,EAAYzoB,YAAY0oB,GACxBtS,KAAKuK,QAAQ/kB,KAAK9Y,KAAM8lC,OAAOH,EAAY7mB,YAC3C4K,EAAkBpoB,EAClBqoB,EAA0BroB,GAAK,QAGjCqoB,EAA0BroB,GAAK,KAG9BkkC,GACHlS,KAAKuK,QAAQvlB,QA0EjBytB,GAhEF,WACE,GAA+B,IAA3B/e,EAAUue,cAAiD,OAA3B7yB,EAAE,qBAA+B,CACnE,IAAIszB,OAAEA,GAAW1S,KAAKkF,UAAU9O,GAC5Buc,EAAS,IAKb,GAJI3S,KAAKwR,IAAI,6BAA4BmB,GAAU,MACN,IAAzC3S,KAAKkF,UAAU9O,GAAiB/nB,OAAYskC,GAAU,GAC1DD,GAAUC,EACN3S,KAAKwR,IAAI,mBAAkBkB,GAAU,MACrC9S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAc2Q,GAAU,KACR,IAAX3Q,EAAc2Q,GAAU,IACb,IAAX3Q,IAAc2Q,GAAU,MAEnCtzB,EAAE,qBAAqB/N,YAAcsmB,GAA4B+a,IAmDnEE,GA73CElf,EAAUmf,SACM,UAAhB7S,KAAK6Q,SACJ7Q,KAAK4Q,MAAQ,IAAiB,EAAX5Q,KAAKiL,MAAa,IACrCjL,KAAK4Q,MAAQ,GAAK5Q,KAAKiL,KAAQ,GAEhCjL,KAAK8S,aA83CP,IAAI1jC,EAAMgQ,EAAE,WAAWoM,UAAU5W,QAC/B,cACA+iB,GAA4BqI,KAAK8G,UAE/B9G,KAAK0Q,MAAMqC,YAAW3jC,EAAM,2BAA2BA,YAC3DgQ,EAAE,WAAWoM,UAAYpc,EAgB3B,MAAM4jC,GACJC,YAAYC,GACVxmC,KAAKwmC,UAAYA,EACjBxmC,KAAKymC,MAAQ,GAGfF,UAAUG,GACJ1mC,KAAKymC,MAAMrjC,KAAKsjC,GAAY1mC,KAAKwmC,WACnCxmC,KAAKymC,MAAMxgB,QASfsgB,YAAYI,GACV,IAAIra,EAAOqa,EACPra,EAAOtsB,KAAKwmC,YAAWla,EAAOtsB,KAAKwmC,WACnCla,EAAOtsB,KAAKymC,MAAMllC,SAAQ+qB,EAAOtsB,KAAKymC,MAAMllC,QAChD,IAAI0M,EAAM,EACV,IACE,IAAI3M,EAAItB,KAAKymC,MAAMllC,OAAS,EAC5BD,GAAK,GAAKA,EAAItB,KAAKymC,MAAMllC,OAAS,EAAI+qB,EACtChrB,IAEA2M,GAAOjO,KAAKymC,MAAMnlC,GAEpB,OAAY,IAAR2M,EACK,EAEFA,EAAMqe,GA+BjB,SAASsa,KACP,MAAMC,EAAWh9B,KAAKkE,MAAM+4B,KAAKC,MAAQ,KAEzC,GAAKzT,KAAKiR,EAAIjR,KAAKiL,IAAO,GAAM,EAAG,CACjC,IAAIyI,EAAc1T,KAAK8G,QAAU9H,GAC7BgB,KAAKiF,UAAY,IAAGyO,GAAexW,IACvCsB,GAAyBjoB,KAAK6D,IAAI4lB,KAAK2T,cAAeD,GACtDA,GAAe,IAGf,MAAME,EAAWL,EAAW3Z,GACtBia,EAAct9B,KAAK6D,IAAI,EAAG4lB,KAAK8G,QAAUjN,IAAoB+Z,EAC7DE,EACJv9B,KAAK6D,IAAI,EAAG8iB,GAAsBpD,IAAyB8Z,EACvDG,EACJx9B,KAAK6D,IAAI,EAAGgjB,GAAsB,GAAKrD,IACvC6Z,EACII,EAAgBz9B,KAAK6D,IAAI,EAAGs5B,EAAc5W,IAAmB8W,EAC7DK,GAAiBjU,KAAKkU,aAAela,IAAmB4Z,EAC9D,IAAK,IAAI5lC,EAAI,EAAGA,EAAI4lC,EAAU5lC,IAC5BsrB,GAAY6a,UAAUN,GACtBta,GAAU4a,UAAUL,GACpBta,GAAiB2a,UAAUJ,GAC3Bta,GAAW0a,UAAUH,GACrBta,GAAWya,UAAUF,GAIvBra,GAAoB2Z,EACpB1Z,GAAmBmG,KAAK8G,QACxBhN,GAAwBoD,GACxBnD,GAA+BqD,GAAsB,GACrDN,GAAkB4W,EAClB1Z,GAAkBgG,KAAKkU,aAGvB,MAAME,EAAY3d,EAAY/C,EAAU2gB,YACxCpa,GAAuBX,GAAYgb,YAAYF,GAC/Cla,GAAwBX,GAAU+a,YAAYF,GAC9Cja,GAA+BX,GAAiB8a,YAAYF,GAC5Dha,GAAyBX,GAAW6a,YAAYF,GAChD/Z,GAAkBJ,GACU,IAAxBvG,EAAUqR,YAAiB1K,IAAmBH,IACtB,IAAxBxG,EAAUqR,YACZ1K,IAAmBF,IAErB,MAAMoa,EACJvU,KAAKwU,YAAY,mBAAqBxU,KAAKwR,IAAI,iBAG/C/S,GADE8V,GAAkC,IAAxB7gB,EAAUqR,UAEpB9K,GACAC,IACCqa,EAASna,GAAyB,GACRC,GAE/BmD,GAAqB9D,GAAW4a,YAC9B5d,EAAWhD,EAAU+gB,iBAkB3B,SAASC,GAAWxQ,EAAIxC,GACtB,IAAI9lB,EAAQ,GAmBZ,OAjBsCA,EAAlCsoB,EAAG5kB,IAAM,GAAK4kB,EAAG5kB,KAAO2Y,IAAkBtC,EACrCuO,EAAG5kB,GAAKuf,GAAoBxJ,EAC5B6O,EAAG5kB,KAAOuf,GAAoBvJ,EAC9B4O,EAAG5kB,GAAKwf,GAAa,IAAI,GAAYvJ,EACrC2O,EAAG5kB,GAAKwf,GAAa,IAAI,GAAYtJ,EACrC0O,EAAG5kB,GAAKwf,GAAa,IAAI,GAAYrJ,EACjCC,EAGiC,IAA1C0C,OAAO1E,EAAUihB,sBACfjT,EAAQmD,KAAWzM,OAAO1E,EAAUihB,uBACtC/4B,EAAQyZ,GAGR3B,EAAUkhB,uBACRlT,EAAQ1B,KAAK8G,QAAU,IAAGlrB,EAAQ6Z,GAEjC7Z,EAiBT,SAASi5B,GAAWxhC,EAAQ+uB,GAC1B5wB,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IAC3BqF,EAAOrF,GAAG4N,MAAQ84B,GAChBrhC,EAAOrF,GACPgyB,KAAKoB,QAAQpzB,GAAG8mC,YAAY1S,IAG9B,IAAK,IAAIgC,EAAI,EAAGA,EAAI1Q,EAAUqhB,aAAc3Q,IACtC/wB,EAAOrF,GAAGsR,KAAOwf,GAAasF,GAAG,KAAI/wB,EAAOrF,GAAG4N,MAAQ+Z,MAKjE,SAASqf,GAAQ3hC,EAAQ+uB,GACvB5wB,OAAO6C,KAAKhB,GAAQ4vB,SAASj1B,IAC3B,MAAM0zB,EAAQ1B,KAAKoB,QAAQpzB,GAAG8mC,YAAY1S,GACtCpC,KAAKgF,UACP3xB,EAAOrF,GAAGsR,GACR/I,KAAK6D,IAAIsnB,GAAS1B,KAAK8G,QAAU3B,MAAuB,GACtDnF,KAAKgF,UACPtD,EAAQruB,EAAOrF,GAAGk4B,MACf7yB,EAAOrF,GAAGsR,GAAKoiB,EAAQruB,EAAOrF,GAAGk4B,MACxCpH,GAAahvB,KAAK,CAACuD,EAAOrF,GAAGsR,GAAI8iB,OA8ErC,SAAS6S,MAtET,WACEpW,GAAa5G,IACb6G,GAAe,QACuB,IAA3BpL,EAAUqhB,eAA8BrhB,EAAUqhB,aAAe,GAG5EC,GAAQjY,GAAe,GACvBiY,GAAQhY,GAAgB,IACxBgY,GAAQ/X,GAAiB,KAGzB6B,GAAawE,MAAK,CAACzsB,EAAGP,IAAMO,EAAE,GAAKP,EAAE,KACrC,IAAI4+B,EAAa,EACjB,GAAIxhB,EAAUkhB,sBACZ,KAAO9V,GAAaoW,GAAY,GAAKlV,KAAK8G,UACxCoO,GAAc,EACVpW,GAAa7wB,SAAWinC,EAAa,KAK7CrW,GAAaC,GAAapL,EAAUqhB,cAAcG,GAElDL,GAAW9X,GAAe,GAC1B8X,GAAW7X,GAAgB,IAC3B6X,GAAW5X,GAAiB,KA8C5BkY,GAjCA3jC,OAAO6C,KAAKkpB,IAAe0F,SAASj1B,IAC9BgyB,KAAKgF,UACPzH,GAAcvvB,GAAGsR,GACf/I,KAAK6D,IACH4lB,KAAKuJ,SAASv7B,GAAGk+B,YAAclM,KAAK8G,QAAU3B,MAC9C,GAEAnF,KAAKgF,UACPhF,KAAKuJ,SAASv7B,GAAGk+B,WAAa3O,GAAcvvB,GAAGk4B,MAEjD3I,GAAcvvB,GAAGsR,GACf0gB,KAAKuJ,SAASv7B,GAAGk+B,WAAa3O,GAAcvvB,GAAGk4B,MAC/C9N,OAAO9I,MAAMiO,GAAcvvB,GAAGsR,MAAKie,GAAcvvB,GAAGsR,GAAK2Y,KAE7DsF,GAAcvvB,GAAG4N,MAAQ84B,GACvBnX,GAAcvvB,GACdgyB,KAAKuJ,SAASv7B,GAAGk+B,eAiCvB,SAASkJ,GACPnT,EACAC,EACA1kB,EACA2kB,EACAyJ,GAEA,IAAIpJ,EAAiBhlB,EACjBilB,EAAO,EACX,IAAK,IAAIz0B,EAAI,EAAGA,EAAI49B,EAAU59B,GAAK,EAAG,CACpC,IAAI0zB,EACFQ,EAAYlC,KAAK2C,eAAiBpsB,KAAK6D,IAAI,EAAGooB,EAAiBL,GACjET,EAAQ1B,KAAK4C,oBAAoBX,EAAOP,GACxCA,EAAQnrB,KAAKoL,KAAK+f,GAClBe,GAAQf,EACRc,GAAkB,EAEpB,OAAOC,EA0CT,SAAS4S,GAAOjV,GACVN,GAAgBM,IACgB,IAA9BN,GAAgBM,GAAM+J,MACxBrK,GAAgBM,GAAM+J,IAAM,EACS,WAAjCnK,KAAK2H,aAAavH,GAAMS,OAAmBhG,IAAwB,IAuB7E,SAASya,KACP/Z,GAAe,EACf,IAAIuM,EAAO,EAEX,MAAMyN,EAAO,GACb/jC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,GAAIgyB,KAAKoB,QAAQpzB,GAAG8zB,gBAAkB9B,KAAKoB,QAAQpzB,GAAGmzB,SAASoU,KAAM,CACnE,MAAMC,EAASxV,KAAKoB,QAAQpzB,GAAGmzB,SAASoU,KACxC/jC,OAAO6C,KAAKmhC,GAAQvS,SAASwS,IACvBF,EAAKE,GAAKF,EAAKE,IAAOD,EAAOC,GAC5BF,EAAKE,GAAMD,EAAOC,UAI7Bna,GAAUia,EAEiB,IAAvBvV,KAAKY,gBACPkH,GAEE,IADAxsB,WAAWyf,IAEXD,GA9EN,WACE,IAAI4a,EAAe,EAWnB,GAVIhV,GAAO,0BAAyBgV,GAAgB,KAChDhV,GAAO,2BAA0BgV,GAAgB,IACjDhV,GAAO,qBAAoBgV,GAAgB,KAC3ChV,GAAO,4BAA2BgV,GAAgB,KAClDhV,GAAO,kBAAiBgV,GAAgB,KAE5CA,GAAgB,EAAgC,IAA5BvV,GAAY,cAC5BO,GAAO,iBAAgBgV,GAAgB,MACvChV,GAAO,kBAAiBgV,GAAgB,MACxChV,GAAO,kBAAiBgV,GAAgB,MACxC1V,KAAKiB,OAAQ,CACf,MAAMc,EAASf,GAAU,YACV,IAAXe,EAAc2T,GAAgB,GACd,IAAX3T,EAAc2T,GAAgB,GACnB,IAAX3T,IAAc2T,GAAgB,IAEzC,OAAOA,EA6DHC,IAEJ7N,GAAQtH,GAAO,OAEXE,GAAO,YAAqC,IAAvBV,KAAKY,gBAC5BkH,GAAQ,EAAI,IAAO9H,KAAK4V,SAE1BpkC,OAAO6C,KAAK2rB,KAAK6V,gBAAgB5S,SAASj1B,IACxC,MAAMk2B,EAAKlE,KAAK6V,eAAe7nC,GAC3B0yB,GAAOwD,EAAG3xB,QAIY,mBAAb2xB,EAAGsF,MACZ1B,GAAQ,EAAuD,IAAnDjI,GAAYqE,EAAG3xB,MAAMi3B,MAAM3J,GAAYqE,EAAG3xB,OACjDu1B,GAAQ,EAAe,IAAX5D,EAAGsF,UAItB9I,GAAO,iCAAgCoH,GAAQ,MAC/CpH,GAAO,0BAAyBoH,GAAQ,MACxCpH,GAAO,sBAAqBoH,GAAQ,MACpCpH,GAAO,iBAAgBoH,GAAQ,MAC/BpH,GAAO,kBAAiBoH,GAAQ,MAEhCpH,GAAO,yBAAwBoH,GAAQ,MACvCpH,GAAO,wBAAuBoH,GAAQ,MACtCpH,GAAO,oBAAmBoH,GAAQ,MAClCpH,GAAO,sBAAqBoH,GAAQ,MACpCpH,GAAO,sBAAqBoH,GAAQ,KAEpCpH,GAAO,kBAAiBoH,GAAQ,MAChCpH,GAAO,kBAAiBoH,GAAQ,MAEhCpH,GAAO,kBAAiBoH,GAAQ,MAGpC,IAAIgO,EAAY,EAChB,GAAI9U,GAAW,CACb,IAAIe,EAASf,GAAU,cACR,IAAXe,EAAc+F,GAAQ,KACN,IAAX/F,EAAc+F,GAAQ,IACX,IAAX/F,IAAc+F,GAAQ,MAE/B/F,EAASf,GAAU,QACJ,IAAXe,EACF+F,GACE,EAAI,IAAOvxB,KAAKw/B,IAAK7V,GAAc,IAAO,MAAiB3pB,KAAKiU,GAAK,GACrD,IAAXuX,EACP+F,GACE,EACA,IAAOvxB,KAAKw/B,IAAK7V,GAAc,IAAO,MAAkB3pB,KAAKiU,GAAK,GAClD,IAAXuX,IACP+F,GACE,EACA,IAAOvxB,KAAKw/B,IAAK7V,GAAc,IAAO,MAAkB3pB,KAAKiU,GAAK,IAEtEuX,EAASf,GAAU,aACJ,IAAXe,EAAc+T,GAAa,IACX,IAAX/T,EAAc+T,GAAa,IAChB,IAAX/T,IAAc+T,GAAa,KAEpC/T,EAASf,GAAU,YACJ,IAAXe,EAAc+T,GAAa,IACX,IAAX/T,EAAc+T,GAAa,KAChB,IAAX/T,IAAc+T,GAAa,MAEpC/T,EAASf,GAAU,SACJ,IAAXe,EAAc+T,GAAa,IACX,IAAX/T,EAAc+T,GAAa,IAChB,IAAX/T,IAAc+T,GAAa,KAGlCpV,GAAO,oBAAmBoH,GAAQ,EAA4B,KAAvB9H,KAAKgW,WAAa,IAE7D,MAAMC,EAAepb,GAAuB,GAC5C,IAAIqb,EAAW,EAIf,GAHIxV,GAAO,8BAA6BwV,GAAY,MAEpDA,GAAY,EAAoC,IAAhC/V,GAAY,kBACxBa,GAAW,CACb,MAAMe,EAASf,GAAU,UACV,IAAXe,EAAcmU,GAAY,IACV,IAAXnU,EAAcmU,GAAY,KACf,IAAXnU,IAAcmU,GAAY,MAErCA,GAAY1V,GAAO,QAEnB,IAAI2V,EAAU,EAEVzV,GAAO,oBAAmByV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DxV,GAAO,oBAAmByV,GAAW,EAAmB,KAAfF,EAAuBC,GAChExV,GAAO,sBAAqByV,GAAW,EAAmB,IAAfF,EAAsBC,GACjExV,GAAO,sBACTyV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCxV,GAAO,qBAAoByV,GAAW,EAAmB,GAAfF,EAAqBC,GAC/DxV,GAAO,wBACTyV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCxV,GAAO,wBACTyV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCxV,GAAO,oBAAmByV,GAAW,EAAmB,GAAfF,EAAqBC,GAC9DxV,GAAO,wBACTyV,GAAW,EAAmB,GAAfF,EAAqBC,GAClCxV,GAAO,+CACTyV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCxV,GAAO,uBACTyV,GAAW,EAAmB,IAAfF,EAAsBC,GACnCxV,GAAO,qBAAoByV,GAAW,EAAmB,KAAfF,EAAuBC,GACjExV,GAAO,uBACTyV,GAAW,EAAmB,KAAfF,EAAuBC,GACpCxV,GAAO,mBAAkByV,GAAW,EAAmB,GAAfF,EAAqBC,GAC7DxV,GAAO,kBAAiByV,GAAW,EAAmB,IAAfF,EAAsBC,GAEjE1kC,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B,MAAMk2B,EAAKtE,GAAW5xB,GACtB,IAAIooC,EAAYlS,EAAG0E,IAAI1E,GACI,IAAvBlE,KAAKY,gBACPwV,IAAc,EAAe,IAAXlS,EAAGuF,OAAgBqM,GAEzB,YAAZ5R,EAAG3xB,MACHmuB,GAAO,sDAEP0V,GAAa,EAAI,IAAOH,EAAeC,GACzC3a,IAAgB2I,EAAG9B,OAASgU,KAG1B1V,GAAO,WAAUnF,IAAgB,GAErCuM,GAAQqO,EAER,IAAIE,EAAU,EAad,GAZI3V,GAAO,iBAAgB2V,GAAW,MAClC3V,GAAO,cAAa2V,GAAW,MAC/B3V,GAAO,gBAAe2V,GAAW,MACjC3V,GAAO,eAAc2V,GAAW,MAChC3V,GAAO,eAAc2V,GAAW,MAChC3V,GAAO,iBAAgB2V,GAAW,MAClC3V,GAAO,mBAAkB2V,GAAW,MACpC3V,GAAO,gBAAe2V,GAAW,MACjC3V,GAAO,eAAc2V,GAAW,MAChC3V,GAAO,eAAc2V,GAAW,MAChC3V,GAAO,gBAAe2V,GAAW,MACjC3V,GAAO,eAAc2V,GAAW,MAChC3V,GAAO,eAAgB,CAEzB,IAAI4V,EAC2D,GAA5D//B,KAAKkE,OAAOslB,GAAiBC,KAAKC,WAAa,IAAO,IACvD,GACA,GACA,GACFqW,EAAM//B,KAAK2D,IAAIo8B,EAAK,KAEpB1Z,GAAe,EAAiC,IAA5B,GAAK,EAAI0Z,EAAM,MAAQ,GAC3CD,GAAWzZ,GAEbkL,GAAQuO,EAEJ3V,GAAO,kBAAiBoH,GAAQ,EAAgC,IAA5BvxB,KAAK2D,IAAI,IAAK8lB,KAAKuW,QAG3DzO,GAAQ,EAAI3H,GAAY,oBAExB,MAAMqW,EAAejb,GAAeuM,EACpCt2B,OAAO6C,KAAK2rB,KAAKyW,iBAAiBxT,SAASj1B,IACrCwoC,GAAgBxW,KAAKyW,gBAAgBzoC,GAAG0oC,WAC1CrB,GAAOrV,KAAKyW,gBAAgBzoC,GAAGuE,SAGnCipB,GAAkBgb,EAElB,MAAMvlC,EAAEA,GAAM+uB,KAAKqR,aAAaC,OAC1BqF,EAAWxW,GAAY,oBAC7B,IAAK,IAAInyB,EAAI,EAAGA,EAAIiD,EAAGjD,IACrB85B,GAAQ,EAAe,KAAX6O,EAGd,MAAMpkC,EAAOytB,KAAK4W,WAAWtoC,cAM7B,GALa,WAATiE,EAAmBu1B,GAAQ,IACb,WAATv1B,IAAmBu1B,GAAQ,KAEhCpH,GAAO,oBAAmBoH,GAAQ,KAElCpH,GAAO,uBAAwB,CACjC,IAAImW,EAAmB,IACvB,GAAInW,GAAO,iBAAkB,CAC3B,MAAMoW,EAAW9W,KAAK+W,qBACtBvlC,OAAO6C,KAAKyiC,GAAU7T,SAASj1B,IACzB0yB,GAAOoW,EAAS9oC,MAAK6oC,GAAoB,OAGjD/O,GAAQ+O,EAEV,GAAInW,GAAO,yBAA0B,CACnC,IAAIsW,EAAW,GACXtW,GAAO,yBAAwBsW,GAAY,IAC/ClP,GAAQ,EAAIkP,EAGVtW,GAAO,uBAAsBoH,GAAQ,KACrCpH,GAAO,wBAAuBoH,GAAQ,GAE1CvM,GAAeyE,KAAKiX,kBAAkB,MAAO1b,IAE7CuM,GAAQoD,KAER3P,IAAgBuM,EASlB,MAAMoP,GAAW,CACf,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBAIIC,GAAe,CACnB,gBACA,gBACA,cACA,gBACA,kBACA,kBACA,kBAIIC,GAAgB,CACpB,0BACA,qBACA,mBACA,iBACA,sBACA,gBACA,oBAIIC,GAAa,CACjB,sBACA,wBACA,sBACA,yBACA,wBACA,yBACA,wBAIIC,GAAa,CACjB,qBACA,oBACA,oBACA,yBACA,cACA,WACA,eAkCF,SAASC,GAAanX,GACpB,OAAON,GAAgBM,GAAQN,GAAgBM,GAAM+J,IAAM,EAe7D,SAASqN,KACP,IAAIC,EAAW,EACfjmC,OAAO6C,KAAK2rB,KAAK+I,kBAAkB9F,SAASj1B,IACtC0yB,GAAOV,KAAK+I,iBAAiB/6B,MAAKypC,GAAY,OAE/CF,GAAa,UAAYE,GAAY,GAAGpC,GAAO,UAC/CkC,GAAa,YAAcE,GAAY,IAAIpC,GAAO,WAEvD,IAAIqC,EAAiB,EACjBC,EAAgB,EAChBC,EAAS,EACTC,EAAY,IAChBrmC,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B0pC,GAAkB9X,GAAW5xB,GAAGo0B,OAChCyV,EAAYthC,KAAK2D,IAAI0lB,GAAW5xB,GAAGo0B,OAAQyV,GACtCN,GAAa,kBAEd3X,GAAW5xB,GAAGo0B,OACd7rB,KAAK2D,IAAI,IAAK,IAAM8lB,KAAK8X,YAAY7pC,OAAS+xB,KAAKoB,QAAQpzB,GAAGuzB,GAAK,MAEnEoW,EAAgB,GAEfJ,GAAa,YAEd3X,GAAW5xB,GAAGo0B,OACmC,IAAhDpC,KAAK8X,YAAY7pC,OAAS+xB,KAAKoB,QAAQpzB,GAAGuzB,MAE3CqW,EAAS,MAGXC,GAAa,GAAGxC,GAAO,uBACL,IAAlBsC,GAAqBtC,GAAO,iBACjB,IAAXuC,GAAcvC,GAAO,WACrBwC,GAAa,KAAKxC,GAAO,cACzBwC,GAAa,KAAKxC,GAAO,yBACzBwC,GAAa,KAAKxC,GAAO,gBACzBwC,GAAa,KAAKxC,GAAO,2BACzBwC,GAAa,KAAKxC,GAAO,iBACzBwC,GAAa,KAAKxC,GAAO,4BACzBwC,GAAa,KAAKxC,GAAO,oBACzBwC,GAAa,KAAKxC,GAAO,+BACzBwC,GAAa,KAAKxC,GAAO,kBACzBwC,GAAa,KAAKxC,GAAO,6BACzBwC,GAAa,KAAKxC,GAAO,iBAEzBqC,GAAkB,KAAKrC,GAAO,WAC9BqC,GAAkB,KAAKrC,GAAO,aAC9BqC,GAAkB,KAAMrC,GAAO,YAC/BqC,GAAkB,KAAMrC,GAAO,sBAC/BqC,GAAkB,KAAMrC,GAAO,gBAC/BqC,GAAkB,KAAMrC,GAAO,gBAE/B1a,IAAoB,IAAI0a,GAAO,YAC/B1a,IAAoB,IAAI0a,GAAO,aAC/B1a,IAAoB,KAAK0a,GAAO,YAChC1a,IAAoB,KAAK0a,GAAO,oBAChC1a,IAAoB,KAAK0a,GAAO,oBAChC1a,IAAoB,KAAK0a,GAAO,oCAEhCqC,GAAkB,KAAQ/c,IAAoB,KAAK0a,GAAO,YAC1DqC,GAAkB,KAAQ/c,IAAoB,KAChD0a,GAAO,qBAELzV,GAAWmY,OAAO3V,OAASxC,GAAW2I,QAAQnG,QAAU,KAC1DiT,GAAO,qBAET,IAAI2C,GAAkB,EACtBxmC,OAAO6C,KAAK8iC,IAAclU,SAASj1B,IAC5B0yB,GAAOyW,GAAanpC,MAAKgqC,GAAkB,MAE9CA,GAAiB3C,GAAO,kBAE5B,IAAI4C,GAAmB,EAMvB,GALAzmC,OAAO6C,KAAK+iC,IAAenU,SAASj1B,IAC7B0yB,GAAO0W,GAAcppC,MAAKiqC,GAAmB,MAEhDA,GAAkB5C,GAAO,eAEzB3U,GAAO,mBAAoB,CAC7B,MAAMwX,EAAOlY,KAAKgI,MAAMnG,QAAQiV,SAChC,IAAIqB,EAAW,EACf3mC,OAAO6C,KAAK6jC,GAAMjV,SAASj1B,IACrB0yB,GAAOwX,EAAKlqC,GAAGuE,QAAO4lC,GAAY,MAEpCA,GAAYD,EAAKjqC,QAAQonC,GAAO,cA6OxC,SAAS+C,GAAoBhW,EAAQ/uB,GACnC,MAAMglC,EAAS,GAQf,OAPA7mC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCqqC,EAAOrqC,GAAK,GACZqqC,EAAOrqC,GAAGk4B,MA/Nd,SAAiCzE,EAAUW,GACzCuH,KACA/J,GAAW6B,GAAUW,QAAUA,EAC/B,MAAM8B,EAAKtE,GAAW6B,GAEL,WAAbA,GACEyC,EAAG9B,QAAU,GAAGiT,GAAO,SACvBnR,EAAG9B,QAAU,GAAGiT,GAAO,gBACvBnR,EAAG9B,QAAU,IAAIiT,GAAO,eACxBnR,EAAG9B,QAAU,KAAKiT,GAAO,mBACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,eACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,uBACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,SACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,kCACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,iCACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,wBACzBnR,EAAG9B,QAAU,KAAKiT,GAAO,yBAE7B7jC,OAAO6C,KAAK2rB,KAAKoB,QAAQ8C,EAAG3xB,MAAM+lC,eAAerV,SAASmB,IAEtDF,EAAG9B,QACHpC,KAAKgI,MAAMhI,KAAKoB,QAAQ8C,EAAG3xB,MAAM+lC,cAAclU,GAAGtD,MAAMyX,cAExDlD,GAAOrV,KAAKoB,QAAQ8C,EAAG3xB,MAAM+lC,cAAclU,GAAG7xB,SAKpD,MAAMimC,EAAwB3d,GAU9B,OARAya,KAEAkC,KAEIgB,IAA0B3d,IAC5Bya,KAGK/Z,GAAeyE,KAAKgF,UAyLPyT,CAAwBzqC,EAAGo0B,GAC9B,IAAXA,IACF5H,GAA2B,MAGxB6d,EA6BT,SAASK,KACPlnC,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC+uB,GAAc/uB,GAAG0zB,MAAQ0T,GACvBpV,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,GAEFnF,GAAehvB,GAAG0zB,MAAQ0T,GACxBpV,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,IAEFlF,GAAgBjvB,GAAG0zB,MAAQ0T,GACzBpV,KAAKoB,QAAQpzB,GACbgyB,KAAKoB,QAAQpzB,GAAGk0B,UAChBlC,KAAKoB,QAAQpzB,GAAGo0B,OAChBpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB,QASN,SAASwW,KAEP5b,GAAgBqb,GAAoB,GACpCpb,GAAiBob,GAAoB,IACrCnb,GAAkBmb,GAAoB,KAvDtC7a,GAAgB,GAChB/rB,OAAO6C,KAAK2rB,KAAKuJ,UAAUtG,SAASj1B,IAClC,MAAM4qC,EAtFV,SAAgClU,GAC9B,GACkC,WAAhC1E,KAAKuJ,SAAS7E,GAAS7D,MACY,IAAlCb,KAAKuJ,SAAS7E,GAAS3D,QACtBf,KAAKuJ,SAAS7E,GAASmU,UACS,aAAhC7Y,KAAKuJ,SAAS7E,GAAS7D,KACzB,CACA8I,KACkC,yBAA9B9J,GAAY6E,GAASnyB,KACvBstB,GAAY,yBAAyBkB,OAAS,EACP,uBAA9BlB,GAAY6E,GAASnyB,KAC9BstB,GAAY,uBAAuBkB,OAAS,EAE5ClB,GAAY6E,GAAS3D,QAAUlB,GAAY6E,GAAS3D,OAAS,GAAK,EAEzDlB,GAAY6E,GACnB1E,KAAK8Y,qBAAqB9Y,KAAKuJ,SAAS7E,GAAS7D,QACnDlG,IAAoB,GAEN,iBAAZ+J,GACF9J,IAAc,EACVA,GAAa,GAAGya,GAAO,aACvBza,IAAc,GAAGya,GAAO,kBACP,mBAAZ3Q,EACT2Q,GAAO,cACc,yBAAZ3Q,EACT2Q,GAAO,kBACc,iBAAZ3Q,GACT2Q,GAAO,aAGT,MAAMmD,EAAwB3d,GAE9Bya,KAEAkC,KAEIgB,IAA0B3d,IAC5Bya,KAGF,MAAMyD,EAvIV,WACE,IAAI5jC,EAAM,EACNurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,qBAAoBvrB,GAAO,GAClCurB,GAAO,qBAAoBvrB,GAAO,IAClCurB,GAAO,sBAAqBvrB,GAAO,IACnCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,yBAAwBvrB,GAAO,IACtCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,wBAAuBvrB,GAAO,IACrCurB,GAAO,uBAAsBvrB,GAAO,IACpCurB,GAAO,uBAAsBvrB,GAAO,IACxC,IAAIyiB,EAAM,EACVpmB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B4pB,GAAOgI,GAAW5xB,GAAGo0B,UAEvBxK,GAAOgI,GAAWmY,OAAO3V,OACzBjtB,GAAOyiB,EAGH8I,GAAO,mBAAkBvrB,GAAsB,IAAfomB,IAChCmF,GAAO,gBAAevrB,GAAsB,IAAfomB,IAC7BmF,GAAO,oBAAmBvrB,GAAsB,IAAfomB,IACjCmF,GAAO,sBAAqBvrB,GAAsB,IAAfomB,IACnCmF,GAAO,uBAAsBvrB,GAAsB,IAAfomB,IACpCmF,GAAO,mBAAkBvrB,GAAsB,IAAfomB,IAChCmF,GAAO,qBAAoBvrB,GAAsB,IAAfomB,IAClCmF,GAAO,sBAAqBvrB,GAAsB,IAAfomB,IACnCmF,GAAO,sBAAqBvrB,GAAsB,IAAfomB,IACnCmF,GAAO,qBAAoBvrB,GAAsB,IAAfomB,IAClCmF,GAAO,yBAAwBvrB,GAAsB,IAAfomB,IACtCmF,GAAO,sBAAqBvrB,GAAsB,IAAfomB,IACnCmF,GAAO,sBAAqBvrB,GAAsB,IAAfomB,IAEnCmF,GAAO,kBAAiBvrB,GAAsB,IAAfomB,IAEnC,IAAIuM,EAAO,EAiBX,GAhBIpH,GAAO,qBAAoBoH,GAAQ,KACnCpH,GAAO,gBAAeoH,GAAQ,KAC9BpH,GAAO,iBAAgBoH,GAAQ,KAC/BpH,GAAO,iBAAgBoH,GAAQ,MAE/BpH,GAAO,iBACToH,GACE,EACA,IACEvxB,KAAK2D,IACH8lB,KAAKoB,QAAQ2W,OAAOtO,MACpB/I,GAAO,mBAAqB,GAAK,KAIzCoH,GAAQtH,GAAO,SACXZ,GAAWsB,OAAOY,gBAChBd,GAAW,CACb,MAAMe,EAASf,GAAU,SACV,IAAXe,EAAc+F,GAAQ,KACN,IAAX/F,EAAc+F,GAAQ,IACX,IAAX/F,IAAc+F,GAAQ,MAInCt2B,OAAO6C,KAAK2rB,KAAKmL,OAAOlI,SAASj1B,SACQ,IAA5BgyB,KAAKmL,MAAMn9B,GAAGgrC,YACvBlR,GAAQ9H,KAAKmL,MAAMn9B,GAAGgrC,cAI1BlR,GAAQ,EAAmC,IAA/B3H,GAAY,iBAGxB,IAAI8Y,EACFnR,EACA9H,KAAK8I,WACH,EACApI,GAAO,2BACLA,GAAO,kCACPA,GAAO,gBACTvrB,GAOJ,OAJA8jC,EAAMjZ,KAAKiX,kBAAkB,kBAAmBgC,GAE5CjZ,KAAK4B,QAAQ,mBAAkBqX,EAAMjZ,KAAKmL,MAAM,iBAAiB3B,OAE9DyP,EAkDgBC,GAAalZ,KAAKmZ,iBACvC,OAAIJ,EACK,CAACxd,GAAeyE,KAAKgF,UAAW+T,GAElC,CAACxd,GAAeyE,KAAKgF,WAE9B,MAAO,GAuCeoU,CAAuBprC,GACjC,iBAANA,GACFuvB,GAAcvvB,GAAK,CAAEk4B,MAAOlG,KAAKgF,UAAY/K,IACjB,IAAxBvG,EAAUqR,UACZxH,GAAcvvB,GAAGk4B,OAAShM,GACK,IAAxBxG,EAAUqR,YACjBxH,GAAcvvB,GAAGk4B,OAAS/L,IACvB/B,OAAOC,SAASkF,GAAcvvB,GAAGk4B,SAAQ3I,GAAcvvB,GAAGk4B,MAAQ,KAEvE3I,GAAcvvB,GAAK,GACf4qC,EAAY,KAAIrb,GAAcvvB,GAAGk4B,MAAQ0S,EAAY,IACrDA,EAAY,KAAIrb,GAAcvvB,GAAGm+B,WAAayM,EAAY,QA6DpE,SAASS,GAAqBC,EAAOC,EAAWzR,GAC9C,IAAI0R,EAAiB,EACjB/W,EAAO,EACPgX,EAAW,EACXC,EAAe,EACfC,EACF,EAAIpjC,KAAK6D,IAAI,EAAG7D,KAAKoL,KAAKpL,KAAKuiB,IAAIkH,KAAK8G,SAAWvwB,KAAKqjC,MAAQ,IAClE,KAAOH,EAAWF,GAChB9W,EAAOlsB,KAAK6D,IACVk/B,EACA/iC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,IAAMk/B,EAAQL,EAAQxR,GAC3CyR,EAAYzR,IAGhB2R,EAAWljC,KAAK6D,IACdk/B,EACA/iC,KAAK2D,IACH3D,KAAKkE,MAAO,EAAI,EAAK,KAAOk/B,EAAQ,GAAKL,EAAQxR,GACjDyR,EAAYzR,IAGhB4R,EAAenjC,KAAKkE,MAAO,EAAI,EAAK,KAAOk/B,EAAQ,GAAKL,EAAQxR,GAChE0R,GAAkB/W,EAClBkX,GAAS,EAEX,MAAO,CAACH,EAAgB/W,EAAMiX,GAmBhC,SAASG,KACP,IAAIN,EAEF,GADAhd,GAEA,GACA,EACAC,GAEF,MAAMsd,EAAc5O,KAChB4O,EAAc,EAAGP,GAAaO,EAC7BP,EAAY,EAEjBzb,GAAsBub,GACpB,EACAE,EACA9c,IAEFmB,GAA+C,EAAzBE,GAAoB,GAAUrB,GACpDoB,GACEC,GAAoB,GAAK,GAAK,GAAK,EAAItB,GAEzCyB,GAA2Bob,GACzB,EACAE,EACA7c,IAEFqB,GACiC,EAA9BE,GAAyB,GAAUvB,GACtCsB,GACEC,GAAyB,GACzB,GACA,GACA,EACAzB,GAEF4B,GAA4Bib,GAC1B,EACY,EAAZE,EACA9c,IAEFyB,GACkC,EAA/BE,GAA0B,GAAU3B,GACvC0B,GACEC,GAA0B,GAC1B,GACA,GACA,EACA5B,GAEF+B,GAAiC8a,GAC/B,EACY,EAAZE,EACA7c,IAEF2B,GACuC,EAApCE,GAA+B,GAAU7B,GAC5C4B,GACEC,GAA+B,GAC/B,GACA,GACA,EACA/B,GAYJ,SAASud,KACP,MAAMxG,EAAWh9B,KAAKkE,MAAM+4B,KAAKC,MAAQ,KAEzC,GAAKzT,KAAKiR,EAAIjR,KAAKiL,IAAO,GAAM,EAAG,CACjC,MAAM+O,EAAaha,KAAKia,gBAAgBja,KAAKka,cAIvCC,EAHiB5jC,KAAKkE,MAC1BulB,KAAKia,gBAAgBja,KAAKka,aAAela,KAAK2T,gBAERp9B,KAAKkE,MAAMu/B,GAG7CpG,EAAWL,EAAWjZ,GACtB8f,EACJ7jC,KAAK6D,IAAI,EAAG+/B,EAAiB5f,IAA0BqZ,EACzD,IAAK,IAAI5lC,EAAI,EAAGA,EAAI4lC,EAAU5lC,IAC5B2rB,GAAkBwa,UAAUiG,GAI9B9f,GAAyBiZ,EACzBhZ,GAAyB4f,EAGzBxd,GAAmBhD,GAAkB2a,YAAY,IA6HrD,SAAS+F,KACP5c,GAAuB,GACvBE,GAA8B,GAC9BD,GAA+B,GAC/B,MAAMwa,EAAO,GAEb1mC,OAAO6C,KAAK2rB,KAAKuJ,UAAUtG,SAASj1B,IAClCkqC,EAAKpoC,KAAKkwB,KAAKuJ,SAASv7B,OAO1BkqC,EAAK5U,MALW,SAAUzsB,EAAGP,GAC3B,OAAIO,EAAE+tB,MAAQtuB,EAAEsuB,MAAc,EAC1B/tB,EAAE+tB,MAAQtuB,EAAEsuB,OAAe,EACxB,KAITpzB,OAAO6C,KAAK6jC,GAAMjV,SAASj1B,IACzB,MAAMk2B,EAAKgU,EAAKlqC,GAEhB,GAAkB,IAAdk2B,EAAGnD,OAAc,CACnB,IAAI3xB,EAAM,GAEVA,GArDN,SAAsB80B,GACpB,IAAIoW,EAAU,wBACE,aAAZpW,EAAGrD,OAAqByZ,GAAW,aAEvC,IAAIC,EAAU,EACTva,KAAK0Q,MAAM8J,SAAQD,EAAU,GAC9BA,IAASD,GAAW,YAExB,IAAIG,KAAEA,GAASvW,EACXA,EAAGwW,eAAcD,EAAOvW,EAAGwW,gBAC/B,MAAMnQ,EAAU,0DAA0DrG,EAAG3C,kBAC7E,MAAO,eAAe+Y,SACrBta,KAAK2a,kBAAkBpQ,EAAS,OAAO,kBAEtCkQ,EAAK,GAAK,yBAAyBA,EAAK,OAAS,yBACjB,IAAVA,EAAK,QAAwB,IAAVA,EAAK,oBAsCrCG,CAAa1W,GACJ,aAAZA,EAAGrD,KAAqBnD,IAAgCtuB,EACvC,WAAZ80B,EAAGrD,KAAmBlD,IAA+BvuB,EAEhD,WAAZ80B,EAAGrD,MACS,WAAZqD,EAAGrD,MACS,UAAZqD,EAAGrD,OAEHpD,IAAwBruB,OAchC,SAASyrC,KACP,GAAoB,cAAhB7a,KAAK4R,OAAwB,CAC/B,IAAIphC,EAAuB,GAAjBwvB,KAAKgF,UACXhF,KAAK4B,QAAQ,kBAAiBpxB,GAAO,IACrCwvB,KAAK4B,QAAQ,YAAWpxB,GAAO,KACnCqsB,GAAetmB,KAAK6D,IAAI,GAAI5J,GACxBwvB,KAAKwR,IAAI,gCAA+B3U,IAAgB,IAehE,SAASie,KACPjf,GAA2C,IAA7BU,GAAoC,IAClDV,IAAcW,GACd,MAAMsd,EAAc5O,KAChB4O,EAAc,EAAGje,IAAcie,EAC9Bje,GAAa,EAClBC,GAAmBW,IAAuC,IAAbZ,IAAqB,GAClEE,GAAwBW,IAAsC,IAAbb,IAAqB,GACtEG,GAAgC,EAAbH,GACnBI,GACEQ,IAA6C,IAAnBT,IAA2B,GACvDE,GACEQ,IAA4C,IAAnBV,IAA2B,GACtDG,GAA4B,EAAbN,GACfO,GAAoC,IAAfD,GAErBE,GAAe,EACf,IAAIjiB,EAAM,EACNnJ,EAAI,EACRO,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IAC7BgyB,KAAKoB,QAAQpzB,GAAGo0B,OAAShoB,IAAKA,EAAM4lB,KAAKoB,QAAQpzB,GAAGo0B,QACpDpC,KAAKoB,QAAQpzB,GAAGo0B,OAAS,IAAGnxB,GAAK,MAEvCO,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,KAE9BgyB,KAAKoB,QAAQpzB,GAAGo0B,OAAShoB,GAAa,IAANnJ,IACjC+uB,KAAKoB,QAAQpzB,GAAGo0B,OAAS,KACD,EAAxBpC,KAAKoB,QAAQpzB,GAAG0zB,MAAYrF,KAE5BA,GAAuC,EAAxB2D,KAAKoB,QAAQpzB,GAAG0zB,MAC/BpF,GAAuBtuB,MAQ7B,SAAS+sC,KACP,IAAIC,EAAa,EACbC,EAAY,EACZnT,EAAO,EAGPpH,GAAO,4BAA2BoH,GAAQ,MAC1CpH,GAAO,iBAAgBoH,GAAQ,MAEnCkT,GAAc,EAA+C,GAA3Chb,KAAK2W,SAAS,2BAChCqE,GAAchb,KAAKkb,IAAI,oBACvBD,GAAa,EAAuC,GAAnCjb,KAAK2W,SAAS,mBAC/BsE,GAAajb,KAAKkb,IAAI,mBAGtBze,GAAyBqL,EAAOkT,EAChCte,GAAwBoL,EAAOmT,EAM/Bze,GAAoC,EACD,IAA/BwD,KAAKqR,aAAaC,OAAOrgC,IAC3BurB,IACE,EAAwC,KAApCwD,KAAK2W,SAAS,qBAkBxB,SAASwE,KACPje,GAAsB,EACtBC,GAAuB,EACvBC,GAAwB,CAAC,EAAG,MAC5B,IAAK,IAAIpvB,EAAI,EAAGA,EAAIgyB,KAAKkF,UAAUj3B,OAAQD,IAAK,CAC9C,IAAI0kC,OAAEA,GAAW1S,KAAKkF,UAAUl3B,GAC5B2kC,EAAS,IAKb,GAJI3S,KAAKwR,IAAI,6BAA4BmB,GAAU,MACpB,IAA3B3S,KAAKkF,UAAUl3B,GAAGK,OAAYskC,GAAU,GAC5CD,GAAUC,EACN3S,KAAKwR,IAAI,mBAAkBkB,GAAU,MACrC9S,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAc2Q,GAAU,KACR,IAAX3Q,EAAc2Q,GAAU,IACb,IAAX3Q,IAAc2Q,GAAU,MAEnCxV,IAAuBwV,EACQ,IAA3B1S,KAAKkF,UAAUl3B,GAAGK,OACpB8uB,IAAwBuV,EACpBA,EAAStV,GAAsB,KACjCA,GAAwB,CAACsV,EAAQ1kC,MAuBzC,SAASotC,KACP9T,KACA6T,KACAL,KACAC,KACAlB,KACAQ,KACAQ,KA5hDAvhB,GAAc,IAAI0Z,GAAWvc,EAAYA,EAAYxoB,OAAS,IAC9DsrB,GAAY,IAAIyZ,GAAWvc,EAAYA,EAAYxoB,OAAS,IAC5DurB,GAAmB,IAAIwZ,GAAWvc,EAAYA,EAAYxoB,OAAS,IACnEwrB,GAAa,IAAIuZ,GAAWvc,EAAYA,EAAYxoB,OAAS,IAC7DyrB,GAAa,IAAIsZ,GAAWtc,EAAWA,EAAWzoB,OAAS,IA0hD3D0rB,GAAoB,IAAIqZ,GAAW,GACnC+G,KACAzG,KACAqF,KACAD,KACAzD,KAKF,MAmImCoG,GAnIb,CACpB7U,OAAQ,EACRW,SAAU,EACVC,YAAa,EACbuK,gBAAiB,EACjB3O,WAAY,EACZ2D,cAAe,EACflD,WAAY,EACZ6X,mBAAoB,EACpBvW,UAAW,EACXD,QAAS,EACTuP,WAAY,EACZI,cAAe,EACfM,aAAc,EACdJ,oBAAqB,EACrBC,sBAAuB,EACvBhF,YAAa,EACblY,MAAO,EACP6jB,aAAc,EACdC,eAAgB,EAChBC,QAAS,EACTC,QAAS,EACTC,SAAU,IACVC,WAAY,6DACZC,oBAAqB,EACrBC,aAAc,EACdC,aAAc,EACdC,cAAe,IACfC,gBACE,gEACFC,gBAAiB,EACjBC,SAAU,EACVC,SAAU,EACVC,UAAW,IACXC,YACE,oEACFC,UAAW,EACXC,UAAW,EACXC,WAAY,IACZC,aAAc,+DACdC,kBAAmB,EACnBC,WAAY,EACZC,WAAY,EACZC,YAAa,IACbC,cACE,gEACFC,qBAAsB,EACtBC,cAAe,EACfC,cAAe,EACfC,eAAgB,IAChBC,iBACE,6DACFC,wBAAyB,EACzBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,IACnBC,oBACE,8DACF9R,oBAAqB,EACrB+R,YAAa,EACb3N,cAAe,EACfC,oBAAqB,EACrBE,gBAAiB,EACjBE,sBAAuB,EACvBE,gBAAiB,EACjBb,aAAc,EACdnE,YAAa,EACbyB,YAAa,EACbkF,aAAc,EACd1F,YAAa,EACbkB,aAAc,EACdc,gBAAiB,EACjBoP,eAAgB,EAChBC,oBAAqB,EACrB9M,MAAO,EACP+M,gBAAiB,EACjBhL,QAAS,EACT1Z,WAAY,EACZ2kB,aAAc,EACdC,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACd/lB,MAAO,EACPF,cAAe,EACfQ,eAAgB,EAChBD,YAAa,OACbzC,OAAQ,CACNooB,KAAM,UACNC,MAAO,UACPC,OAAQ,UACRC,OAAQ,UACRC,IAAK,UACLC,OAAQ,UACRC,KAAM,UACNC,KAAM,UACNC,MAAO,WAETvb,cAAe,EACfoB,aAAc,EACdoa,QAAS,EACTC,QAAS,EACTC,gBAAiB,EACjBC,aAAc,EACdC,OAAQ,CACNC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,oBAAqB,EACrBC,eAAgB,EAChBC,eAAgB,EAChBC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,kBAAmB,EACnBC,qBAAsB,EACtBC,QAAS,EACTC,WAAY,EACZC,SAAU,EACVC,cAAe,EACfC,MAAO,EACPC,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,SAAU,EACVC,MAAO,EACPC,IAAK,EACLC,KAAM,EACNC,QAAS,IAoCsBC,GAvBnC,SAAsCC,GACpC,GAAoB,IAAhBA,EAAmB,CAErB,MAAMC,EAA2B,WAC/B,IACExB,aAAayB,oBAAoBC,OACjC,MAAOzxC,GACP,OAAO,EAET,OAAO,GAIH,iBAAkB1C,OAEbi0C,IACTxB,aAAayB,oBAAoBC,OAEjC1B,aAAayB,oBAJb9xC,QAAQiqB,IAAI,kDAoBlB,SAAS+nB,KACkB,IAArBntB,EAAU8S,QACZpnB,EAAE,YAAYnJ,MAAMqV,QAAU,GAC9Bib,MAEAnnB,EAAE,YAAYnJ,MAAMqV,QAAU,OAEhC4b,KA6GF,SAAS4Z,KACPC,cACA/gB,KAAKghB,eACLhhB,KAAKihB,kBAEL1a,KACAzD,KACAU,KAYF,SAAS0d,KACP,IAAI9xC,EAAM,GACV,IAAK,IAAIpB,EAAI,EAAGA,EAAI8nB,EAAO7nB,OAAQD,IACjCoB,GAAO,UAAmB0mB,EAAO9nB,eAC/B0lB,EAAUoC,OAAOA,EAAO9nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI8nB,EAAO7nB,OAAQD,IACjCoB,GAAO,UAAmB0mB,EAAO9nB,0BAC/B0lB,EAAUoC,OAAOA,EAAO9nB,WAG5B,IAAK,IAAIA,EAAI,EAAGA,EAAI8nB,EAAO7nB,OAAQD,IACjCoB,GAAO,YAAqB0mB,EAAO9nB,0BACjC0lB,EAAUoC,OAAOA,EAAO9nB,WAG5BoR,EAAE,SAAS/N,YAAcjC,EACzB0zB,KAuBF,SAASqe,KACmB,IAAtBztB,EAAUkrB,SAAiBnqB,EAAwB,EACjDiK,GAA0B0iB,MAC5BhiC,EAAE,aAAaiiC,KACb,mEAEFjiC,EAAE,aAAaiiC,KACb,oEAEJjiC,EAAE,aAAaiiC,KACb,uDAQN,MAAMC,GACJrO,YAAY5kC,EAAMkzC,GAChB70C,KAAK2B,KAAOA,EACZ3B,KAAK60C,MAAQA,GAKjB,MAAMC,WAAwBF,GAC5BrO,YAAY5kC,EAAMkzC,EAAOE,EAAOC,EAAMC,EAAQ5uC,EAAO,MACnD6uC,MAAMvzC,EAAMkzC,GACZ70C,KAAK+0C,MAAQA,EACb/0C,KAAKg1C,KAAOA,EACZh1C,KAAKi1C,OAASA,EACV5uC,IACFrG,KAAKqG,KAAOA,IAclB,MAAM8uC,WAAsBP,GAC1BrO,YAAY5kC,EAAMkzC,EAAOE,EAAOC,GAC9BE,MAAMvzC,EAAMkzC,GACZ70C,KAAK+0C,MAAQA,EACb/0C,KAAKg1C,KAAOA,EACZ,IAAK,IAAI1zC,EAAI,EAAGA,EAAI,IAAKA,IACvBtB,KAAK+0C,MAAMzzC,GAAK,GAAGA,MAMzB,MAAM8zC,WAA2BR,GAC/BrO,YAAY5kC,EAAMkzC,EAAOE,EAAOC,EAAMxnC,EAAKE,GACzCwnC,MAAMvzC,EAAMkzC,GACZ70C,KAAK+0C,MAAQA,EACb/0C,KAAKg1C,KAAOA,EACZh1C,KAAKwN,IAAMA,EACXxN,KAAK0N,IAAMA,GAyBf,MAwtBmC2nC,GAxtBpB,CAEbvb,OAAQ,IAAIgb,GACV,OACA,aACA,CAAC,iBAAkB,iBACnB,wBACA,GACA,WACEX,QAGJ1Z,SAAU,IAAIqa,GACZ,OACA,aACA,CAAC,gBAAiB,gBAClB,qFACA,GACA,WACEna,QAGJD,YAAa,IAAIoa,GACf,OACA,aACA,CAAC,gCAAiC,+BAClC,8BACA,GACA,WA3pH4B,IAA1B9tB,EAAU0T,aACZhoB,EAAE,cAAcnJ,MAAMkG,MAAQ,MAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,GAC/B/M,EAAE,QAAQ4iC,aAAa5iC,EAAE,cAAeA,EAAE,kBAE1CA,EAAE,cAAcnJ,MAAMkG,MAAQ,OAC9BiD,EAAE,cAAcnJ,MAAMkW,OAAS,MAC/B/M,EAAE,WAAWwK,YAAYxK,EAAE,gBAE7B8nB,QAspHAyK,gBAAiB,IAAI6P,GACnB,OACA,aACA,CACE,wBACA,iCACA,0BAEF,+DACA,GAEFre,cAAe,IAAIqe,GACjB,OACA,aACA,CACE,0BACA,oCACA,4CAEF,kEACA,GACA,WACE1e,QAGJyB,aAAc,IAAIid,GAChB,OACA,aACA,CAAC,yBAA0B,qBAC3B,iEACA,GACA,WACEhe,QAGJR,WAAY,IAAIwe,GACd,OACA,aACA,CAAC,sBAAuB,sBACxB,wBACA,GACA,WACE1e,QAGJ6D,cAAe,IAAI6a,GACjB,OACA,aACA,CAAC,yBAA0B,mBAC3B,sKACA,GAEF/d,WAAY,IAAI+d,GACd,OACA,aACA,CACE,yBACA,6BACA,iCAEF,wDACA,GACA,WA9S2B,IAAzB9tB,EAAU+P,YAEZrkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,GAClCkY,MACkC,IAAzB9P,EAAU+P,YAEnBrkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClCkY,OAGApkB,EAAE,gBAAgBnJ,MAAMqV,QAAU,OAClC0U,KAAKihB,sBAuSPnrB,OAAQ,IAtJV,cAA6BwrB,GAC3BrO,YAAY5kC,EAAMkzC,EAAOG,EAAM3uC,GAC7B6uC,MAAMvzC,EAAMkzC,GACZ70C,KAAKg1C,KAAOA,EACZh1C,KAAKqG,KAAOA,IAmJZ,QACA,aACA,CACEmrC,KACE,gHACFC,MACE,4FACFC,OACE,wGACFC,OACE,+GACFC,IACE,mGACFC,OACE,iHACFC,KACE,2FACFC,KAAM,yCACNC,MAAO,8CAET,WACEwC,QAGJ5F,mBAAoB,IAAIkG,GACtB,OACA,aACA,CAAC,iCAAkC,iCACnC,+FACA,GACA,WA1TmC,IAAjC9tB,EAAU4nB,oBAEZl8B,EAAE,gBAAgBnJ,MAAMgI,SAAW,SACnCmB,EAAE,gBAAgBnJ,MAAMsC,IAAM,OAE9B6G,EAAE,gBAAgBnJ,MAAMgI,SAAW,MA2TrC8mB,UAAW,IAAIyc,GACb,OACA,cACA,CACE,+BACA,8BACA,6CAEF,qGACA,GACA,WACEnmB,IAAY,KAGhByJ,QAAS,IAAI0c,GACX,OACA,cACA,CAAC,6BAA8B,8BAC/B,kFACA,GAEFnN,WAAY,IAAImN,GACd,OACA,cACA,CACE,2BACA,2BACA,2BACA,0BACA,0BACA,2BACA,2BACA,4BAEF,4DACA,GAEF/M,cAAe,IAAI+M,GACjB,OACA,cACA,CACE,oCACA,oCACA,qCACA,qCACA,sCAEF,uDACA,GAEFzM,aAAc,IAAIyM,GAChB,OACA,cACA,CACE,mBACA,kBACA,0BACA,gCAEF,qGACA,GAEF7M,oBAAqB,IAAImN,GACvB,WACA,cACA,oCACA,wMACA,EACA7pB,KAEF2c,sBAAuB,IAAI4M,GACzB,OACA,cACA,CAAC,2BAA4B,sBAC7B,yKACA,GAEF5R,YAAa,IAAI4R,GACf,OACA,cACA,CACE,+CACA,+CAEF,2EACA,GAIF9pB,MAAO,IAAI8pB,GACT,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAEFjG,aAAc,IAAIiG,GAChB,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAEFhG,eAAgB,IAAIgG,GAClB,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,WACEhB,GAAoC9sB,EAAU8nB,mBAGlDC,QAAS,IAAI+F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF9F,QAAS,IAAI8F,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEF7F,SAAU,IAAIkG,GAAc,MAAO,iBAAkB,GAAI,UACzDjG,WAAY,IAAI4F,GACd,MACA,iBACA,aACA,6DAEF3F,oBAAqB,IAAI2F,GACvB,OACA,iBACA,CAAC,mBAAoB,mBACrB,8DACA,GACA,WACEhB,GAAoC9sB,EAAUmoB,wBAGlDC,aAAc,IAAI0F,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFzF,aAAc,IAAIyF,GAChB,OACA,iBACA,CAAC,YAAa,YACd,kCACA,GAEFxF,cAAe,IAAI6F,GAAc,MAAO,iBAAkB,GAAI,UAE9D5F,gBAAiB,IAAIuF,GACnB,MACA,iBACA,aACA,sEAEFtF,gBAAiB,IAAIsF,GACnB,OACA,kBACA,CAAC,mBAAoB,mBACrB,yCACA,GACA,WACEhB,GAAoC9sB,EAAUwoB,oBAGlDC,SAAU,IAAIqF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFpF,SAAU,IAAIoF,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFnF,UAAW,IAAIwF,GAAc,MAAO,kBAAmB,GAAI,UAC3DvF,YAAa,IAAIkF,GACf,MACA,kBACA,aACA,8DAEFjF,UAAW,IAAIiF,GACb,OACA,mBACA,CAAC,wBAAyB,YAC1B,+BACA,GAEFhF,UAAW,IAAIgF,GACb,OACA,mBACA,CAAC,YAAa,YACd,+BACA,GAEF/E,WAAY,IAAIoF,GAAc,MAAO,mBAAoB,GAAI,UAC7DnF,aAAc,IAAI8E,GAChB,MACA,mBACA,yBACA,uDAEF7E,kBAAmB,IAAI6E,GACrB,OACA,mBACA,CAAC,mBAAoB,mBACrB,oDACA,GACA,WACEhB,GAAoC9sB,EAAUipB,sBAGlDC,WAAY,IAAI4E,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF3E,WAAY,IAAI2E,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF1E,YAAa,IAAI+E,GAAc,MAAO,mBAAoB,GAAI,UAC9D9E,cAAe,IAAIyE,GACjB,MACA,mBACA,aACA,2DAEFxE,qBAAsB,IAAIwE,GACxB,OACA,oBACA,CAAC,mBAAoB,mBACrB,iDACA,GACA,WACEhB,GAAoC9sB,EAAUspB,yBAGlDC,cAAe,IAAIuE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFtE,cAAe,IAAIsE,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFrE,eAAgB,IAAI0E,GAAc,MAAO,oBAAqB,GAAI,UAClEzE,iBAAkB,IAAIoE,GACpB,MACA,oBACA,aACA,yDAEFnE,wBAAyB,IAAImE,GAC3B,OACA,uBACA,CAAC,mBAAoB,mBACrB,2EACA,GACA,WACEhB,GAAoC9sB,EAAU2pB,4BAGlDC,iBAAkB,IAAIkE,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFjE,iBAAkB,IAAIiE,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFhE,kBAAmB,IAAIqE,GACrB,MACA,uBACA,GACA,UAEFpE,oBAAqB,IAAI+D,GACvB,MACA,uBACA,aACA,mFAIF7V,oBAAqB,IAAI6V,GACvB,OACA,UACA,CACE,2CACA,4CAEF,kDACA,GAEF9D,YAAa,IAAI8D,GACf,OACA,UACA,CACE,iDACA,iDAEF,qDACA,GAEFzR,cAAe,IAAIyR,GACjB,OACA,UACA,CAAC,4BAA6B,4BAC9B,kGACA,GAEFxR,oBAAqB,IAAIwR,GACvB,OACA,UACA,CAAC,mCAAoC,mCACrC,2GACA,GAEFtR,gBAAiB,IAAIsR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,+GACA,GAEFpR,sBAAuB,IAAIoR,GACzB,OACA,UACA,CAAC,qCAAsC,qCACvC,kIACA,GAEFlR,gBAAiB,IAAIkR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,qJACA,GAEF/R,aAAc,IAAIqS,GAChB,WACA,UACA,mCACA,gKACA,EACA7pB,KAEFqT,YAAa,IAAIkW,GACf,OACA,UACA,CAAC,kCAAmC,qCACpC,kCACA,GACA,WACEnW,QAGJ0B,YAAa,IAAIyU,GACf,OACA,UACA,CAAC,mCAAoC,mCACrC,6CACA,GAEFvP,aAAc,IAAIuP,GAChB,OACA,UACA,CAAC,uBAAwB,uBACzB,oEACA,GAEFjV,YAAa,IAAIiV,GACf,OACA,UACA,CAAC,yBAA0B,yBAC3B,4DACA,GAEF/T,aAAc,IAAI+T,GAChB,OACA,UACA,CAAC,2BAA4B,2BAC7B,yDACA,GAEFjT,gBAAiB,IAAIiT,GACnB,OACA,UACA,CACE,uCACA,uCAEF,iDACA,GAEF7D,eAAgB,IAAI6D,GAClB,OACA,UACA,CAAC,6BAA8B,6BAC/B,kFACA,GAEF5D,oBAAqB,IAAI4D,GACvB,OACA,UACA,CAAC,qCAAsC,qCACvC,+CACA,GAIF1Q,MAAO,IAAI0Q,GACT,OACA,aACA,CAAC,iBAAkB,iBACnB,oCACA,GAEF3D,gBAAiB,IAAI2D,GACnB,OACA,aACA,CAAC,uBAAwB,uBACzB,yHACA,GAEF3O,QAAS,IAAI2O,GACX,OACA,aACA,CAAC,mCAAoC,+BACrC,6CACA,GAEFroB,WAAY,IAAIqoB,GACd,OACA,aACA,CAAC,0BAA2B,uBAC5B,0BACA,GAEF1D,aAAc,IAAI0D,GAChB,OACA,aACA,CAAC,oBAAqB,oBACtB,mEACA,GACA,WA51B6B,IAA3B9tB,EAAUoqB,aAAoB9d,KAAKgR,QAAU9a,EAC5C8J,KAAKgR,QAAU9b,EAAgB8b,WA+1BpC+M,YAAa,IAAIyD,GACf,OACA,aACA,CAAC,iCAAkC,iCACnC,+DACA,GAEFxD,oBAAqB,IAAI8D,GACvB,WACA,aACA,0BACA,8GACA,EACA7pB,KAEFgmB,aAAc,IAAIuD,GAChB,OACA,aACA,CAAC,gBAAiB,gBAClB,4FACA,GAIFtpB,MAAO,IAAIspB,GACT,OACA,WACA,CACE,uBACA,SACA,cACA,4BACA,sBACA,wBAEF,uCACA,GACA,WACEV,QAGJ9oB,cAAe,IAAIwpB,GACjB,OACA,WACA,CAAC,aAAc,aAAc,cAC7B,mDACA,GACA,WACEV,QAGJtoB,eAAgB,IAAIgpB,GAClB,OACA,WACA,CAAC,4BAA6B,mBAC9B,qDACA,GACA,WACEV,QAGJvoB,YAAa,IAAIupB,GACf,WACA,WACA,2BACA,6KACA,EACA,WAIFnD,QAAS,IAAI6C,GACX,OACA,gBACA,CAAC,0BAA2B,0BAC5B,yDACA,GACA,WA95BwB,IAAtB9tB,EAAUirB,QACZntC,OAAO6C,KAAKojB,IAAUwL,SAASj1B,IAC7BypB,GAASzpB,GAAGiI,MAAMqV,QAAU,QAC5BmM,GAASzpB,GAAGiI,MAAMqC,KAAOymB,GAAwB/wB,GAAGoR,EAAEnJ,MAAMqC,KAC5Dmf,GAASzpB,GAAGiI,MAAMsC,IAAMwmB,GAAwB/wB,GAAGoR,EAAEnJ,MAAMsC,OAG7D/G,OAAO6C,KAAKojB,IAAUwL,SAASj1B,GAAOypB,GAASzpB,GAAGiI,MAAMqV,QAAU,YA25BpEszB,QAAS,IAAI4C,GACX,OACA,gBACA,CAAC,cAAe,cAChB,2CACA,GACA,WACEL,QAGJtC,gBAAiB,IAAI2C,GACnB,OACA,gBACA,CAAC,oBAAqB,oBACtB,kEACA,GACA,WAn3BE9tB,EAAUmrB,iBACZz/B,EAAE,8BAA8BnJ,MAAMqV,QAAU,GAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,KAE9ClM,EAAE,8BAA8BnJ,MAAMqV,QAAU,OAChDlM,EAAE,4BAA4BnJ,MAAMqV,QAAU,WAk3BhDwzB,aAAc,IAAI0C,GAChB,OACA,gBACA,CAAC,wBAAyB,wBAC1B,mIACA,IAeJ,SAASS,KACP,OAAO5yC,KAAK6yC,UAAU,CACpBC,SAAUzuB,EACV0uB,QAAS,YAmMb,SAASC,KACP,GAAI1mB,KAAyBqE,KAAKsiB,aAAejnB,GAAW,CAC1D,GACE2E,KAAKsiB,YAAc,IACnBtiB,KAAKuiB,aAAaviB,KAAKsiB,aAAaE,IAAI/rC,WAAWgsC,SAAS,aAC5D,CACA,IAAIpvC,EAAS2sB,KAAKuiB,aAAaviB,KAAKsiB,aAAaE,IAC9C/rC,WACA/H,MAAM,mBAAmB,GAC5B,MAAM0zB,EAASpC,KAAKuiB,aAAaviB,KAAKsiB,aAAaE,IAChD/rC,WACA/H,MAAM,sBAAsB,GAC/B,GAAe,MAAX2E,EAEF,GADAA,EAASA,EAAOqvC,WAAW,IAAK,IAC5B1iB,KAAKoB,QAAQ/tB,GAAQ+uB,OAASA,EAChCxG,GAAyB,mCACpB,CACL,IAAI+mB,EAAO,EACXhZ,KACA,IAAK,IAAI37B,EAAI,EAAGA,EAAIo0B,EAAQp0B,IAAK,CAC/B,IAAI0zB,EACF9B,GAAWvsB,GAAQ6uB,UACnBlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAWvsB,GAAQ+uB,OAAS,EAAIxC,GAAWvsB,GAAQ8uB,MAEzDT,EAAQ1B,KAAK4C,oBAAoBhD,GAAWvsB,GAASquB,GACrDA,EAAQnrB,KAAKoL,KAAK+f,GAClBihB,GAAQjhB,EACR9B,GAAWvsB,GAAQ+uB,QAAU,EAE/BxG,GAAyB,kBAAkB+mB,QAExC,CACL,IAAIA,EAAO,EACXhZ,KACA,IAAK,MAAMvF,KAAK5yB,OAAO6C,KAAK2rB,KAAKoB,SAAU,CAEzC,GADA/tB,EAAS+wB,EACLpE,KAAKoB,QAAQ/tB,GAAQ+uB,OAASA,EAAQ,CACxCxG,GAAyB,+BACzB,MAEA,IAAK,IAAI5tB,EAAI,EAAGA,EAAIo0B,EAAQp0B,IAAK,CAC/B,IAAI0zB,EACF9B,GAAWvsB,GAAQ6uB,UACnBlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAWvsB,GAAQ+uB,OAAS,EAAIxC,GAAWvsB,GAAQ8uB,MAEzDT,EAAQ1B,KAAK4C,oBAAoBhD,GAAWvsB,GAASquB,GACrDA,EAAQnrB,KAAKoL,KAAK+f,GAClBihB,GAAQjhB,EACR9B,GAAWvsB,GAAQ+uB,QAAU,EAGjCxG,GAAyB,kBAAkBjE,GAA4BgrB,OAI7EhnB,GAAuBqE,KAAKsiB,aAkBhC,SAASM,GAAmBvhB,EAAK6I,GAC/BP,KACa,IAATO,EAAYhP,GAAUmG,EACR,IAAT6I,EAAY/O,GAAUkG,EACb,IAAT6I,IAAY9O,GAAUiG,GAE/B,MAAMmX,EAAwB3d,GAO9B,OANAya,KAEAkC,KACIgB,IAA0B3d,IAC5Bya,KAEK/Z,GAAeyE,KAAKgF,UAoD7B,SAAS6d,KAEPjjB,GAAa,GACbpuB,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC4xB,GAAW5xB,GAAK26B,GAAoB36B,MAItC6xB,GAAc,GACdruB,OAAO6C,KAAK2rB,KAAKuJ,UAAUtG,SAASj1B,IAClC6xB,GAAY7xB,GAAKq7B,GAAYr7B,MAI/B8xB,GAAkB,GAClBtuB,OAAO6C,KAAK2rB,KAAK2H,cAAc1E,SAASj1B,IACtC8xB,GAAgB9xB,GAAKy5B,GAAgBz5B,MAEvC27B,KAMF,IAAImZ,IAAiB,EAcrB,SAASC,GAAM9gC,EAAM+gC,GAGM,IAAtBtvB,EAAUsvB,IAA0B,IAAT/gC,IAAiC,IAAnB6gC,IACjC,IAAT7gC,GAEA7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,MACtB,IAAT7I,GACF7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,SACnC23B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAOhjB,KAAKiL,MAEfgY,YAAW,WACTF,GAAM,EAAGC,KACR,IAAOhjB,KAAKiL,MAEC,IAAThpB,GACT7C,EAAE,iBAAiBnJ,MAAM6U,QAAU,IACnCm4B,YAAW,WACTF,GAAM,EAAGC,KACR,IAAOhjB,KAAKiL,MACG,IAAThpB,IAAY7C,EAAE,iBAAiBnJ,MAAMqV,QAAU,QAe5D,SAAS43B,GAAUC,EAAKC,EAAWC,EAAWvrB,GAE5C,IAA8B,IAAzBpE,EAAU0vB,IAAoBtrB,KAA8B,IAAnBgrB,GAA0B,CAEtE,MAAMQ,EAAQ,IAAIC,MAAMJ,GACpBzvB,EAAU6nB,aACZ+H,EAAME,OAAU9vB,EAAU2vB,GAAa,KAAQrjB,KAAKwjB,OAAS,KAC1DF,EAAME,OAAS9vB,EAAU2vB,GAAa,IAC3CC,EAAMG,QAoFV,SAASC,GAAmBC,EAAcC,EAAOC,GAGjB,IAA5BnwB,EAAUiwB,IACmB,WAA7Br3C,SAASw3C,kBACU,IAAnBhB,IAIA,IAAI5D,aAAa0E,EAAO,CAAE12B,KAAM22B,EAASE,MAFtB,yDAkRvB,SAASC,KAKP,GAJIzsB,KAAoByI,KAAKikB,WAC3B1sB,GAAkByI,KAAKikB,SAzdrBjkB,KAAKikB,UACP7kC,EAAE,QAAQnJ,MAAMkW,OAAS,MACA,IAArBuH,EAAU8S,SAAcpnB,EAAE,YAAYnJ,MAAMqV,QAAU,QAC/B,IAAvBoI,EAAUyT,WAAgB/nB,EAAE,cAAcnJ,MAAMqV,QAAU,UAE9Du1B,KACAxZ,MAEFN,OAodK/G,KAAKikB,UAAiC,IAArBjkB,KAAKkkB,YAAmB,CAExCpwB,IAAiBtiB,OAAO6C,KAAK2rB,KAAKmkB,MAAMl2C,SAC1C40C,KACAzH,KACAtnB,EAAetiB,OAAO6C,KAAK2rB,KAAKmkB,MAAMl2C,QAIpCotB,KACFsd,KAlsBA3Y,KAAKwR,IAAI,wBAjBb7H,KACA9J,GAAY,uBAAuBkB,OAAS,EAC5CuU,KAgBE/Y,GAfKhB,IAgBAgB,GAA6ByD,KAAKgF,UAmsBrC+V,KACAD,KACAT,KACAR,KACAwI,KAhgBN,WACE,IAAK,IAAIhhB,EAAM,EAAGA,EAAM,GAAIA,GAAO,EACjC,IAAK,IAAI6I,EAAO,EAAGA,EAAO,EAAGA,GAAQ,EACnCjL,GAAUoC,GAAK6I,GAAQ0Y,GAAmBvhB,EAAK6I,GA8f/Cka,GAEAvJ,KAvoBN,WACE,IAAIwJ,EAAY,EAEhB,GAAIrkB,KAAKoB,QAAQkjB,KAAKxiB,eAAgB,CACpC,MAAMyiB,EAAcvkB,KAAKoB,QAAQkjB,KAAKnjB,SAASqjB,MAC/C,IAAIC,EAAW,EACfjzC,OAAO6C,KAAKkwC,GAAathB,SAASj1B,IAChC,MAAM02C,EAAaH,EAAYv2C,GAC/By2C,GAAYC,EAAWC,MAAQD,EAAWl0C,OAE5C6zC,GAAaI,EAAWzkB,KAAK4kB,oBAG/BP,GAlEF,WACE,IAAIA,EAAY,EAEhB1a,KAGA,IAAIkb,EAAuB,EACL,IAAlB7pB,IAAyC,KAAlBA,KACzB6pB,GAAwB,GAEH,IAAnB5pB,IAA2C,KAAnBA,KAC1B4pB,GAAwB,GAE1B7pB,GAAgB,EAChBC,GAAiB,GAGjB,IAAK,IAAIjtB,EAAI,EAAGA,EAAI62C,IAAwB72C,EAAG,CAC7C,IAAI82C,EAAkB,SACtBtzC,OAAO6C,KAAKurB,IAAYqD,SAASmB,IAC3BxE,GAAWwE,GAAGhC,OAAS,IACzB0iB,EAAkB1gB,MAGtBxE,GAAWklB,GAAiB1iB,QAAU,EACtC1H,IAAqB,EAevB,OAXAlpB,OAAO6C,KAAKurB,IAAYqD,SAASj1B,IAC/B,MAAMk2B,EAAKtE,GAAW5xB,GACtBq2C,GAAariB,GACXhC,KAAKoB,QAAQ8C,EAAG3xB,MAChBytB,KAAKoB,QAAQpzB,GAAGk0B,UAChBgC,EAAG9B,OACHpC,KAAKoB,QAAQpzB,GAAGm0B,KAChB+B,EAAG9B,WAIAiiB,EA0BMU,GACb/lB,GAAqBqlB,EA0nBjBW,GAEA3pB,GAAY,GAId,MAAM4pB,EAAejlB,KAAK2W,SAAS,kBAAoB,GAClDlc,IAAqBwqB,GACxBxqB,IAAoB,EACpBD,GAA2B,GAClBC,KAAsBwqB,IAC/BxqB,IAAoB,EACpBD,GAA2B,GAGzBA,KACFke,KACAle,GAA2B,GA3wBjC,WAEE2gB,KAEAlG,KAzCF,WACE5X,GAA2B,EAC3B,IAAIoJ,EAAQ,EACZj1B,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACH,IAA5BgyB,KAAKkF,UAAUl3B,GAAGmkC,QAAa1L,GAAS,MAE9C,IAAIye,EAAU,EACd,GAAItlB,GAAWsB,OAAOY,eAAgB,CACpC,MAAMC,EAAS/B,KAAKiB,OAAO,SACZ,IAAXc,EAAcmjB,GAAW,KACT,IAAXnjB,EAAcmjB,GAAW,IACd,IAAXnjB,IAAcmjB,GAAW,MAEpC5nB,GAAyBmJ,EACzBpJ,GACEoJ,GACS,IAARA,EAAe,MACuB,IAAtCzG,KAAKwR,IAAI,2BAAoC,IACjB,IAA5BxR,KAAKwR,IAAI,iBAA0B,GACpC0T,EAuBFC,GACA7R,KACAyG,KAEA,MAAMqL,EACJplB,KAAKqlB,oBACH9uC,KAAKkE,MAAMulB,KAAKia,gBAAgBja,KAAKka,aAAela,KAAK2T,gBACvD,IAEH3T,KAAK2T,cAAgB3T,KAAKka,cAC7Btb,GAA4B7F,GAAWqsB,EAAgBvgB,MA+vBrDygB,GAxSF1wB,EAA+B,EAC/BmK,GAA0B,GAC1BvtB,OAAO6C,KAAK2rB,KAAKulB,UAAUtiB,SAASj1B,IAClC+wB,GAAwBiB,KAAKulB,SAASv3C,GAAGuzB,IAAMvB,KAAKulB,SAASv3C,GACzDgyB,KAAKulB,SAASv3C,GAAGw3C,WAAuC,WAA1BxlB,KAAKulB,SAASv3C,GAAGK,OACjDqwB,GAA4BsB,KAAKulB,SAASv3C,GAC1C4mB,GAAgC,MAWpCpjB,OAAO6C,KAAKojB,IAAUwL,SAASj1B,SACa,IAA/B+wB,GAAwB/wB,KACjCypB,GAASzpB,GAAGmf,WAAWrc,YAAY2mB,GAASzpB,WACrCypB,GAASzpB,OAGhBymB,IAA0BuL,KAAKqR,aAAaC,OAAOrgC,GACrDwjB,EAAwBuL,KAAKqR,aAAaC,OAAOrgC,EAC7CwjB,IACEC,EAA+BE,IACjCmuB,GAAM,EAAG,WACTG,GAAUxvB,EAAUkoB,WAAY,UAAW,YAAY,GACvD8H,GACE,iBACA,wBACA,+CAIJlyC,OAAO6C,KAAK2rB,KAAKulB,UAAUtiB,SAASj1B,SACW,IAAlCypB,GAASuI,KAAKulB,SAASv3C,GAAGuzB,KAnH7C,SAAuBkkB,GACrB,MAAM9G,EAAUryC,SAAS4D,cAAc,OACvCyuC,EAAQpd,GAAK,UAAUkkB,EAAOlkB,KAC9Bod,EAAQ1oC,MAAMkG,MAAQ,OACtBwiC,EAAQ1oC,MAAMmG,OAAS,OACvBuiC,EAAQ1oC,MAAMgI,SAAW,WACzB0gC,EAAQ1oC,MAAMyU,OAAS,cACvBi0B,EAAQ1oC,MAAMuW,UAAY,SAC1BmyB,EAAQ1oC,MAAMyW,WAAa,OAC3BiyB,EAAQ1oC,MAAMyvC,WAAa,2BAC3B/G,EAAQ1oC,MAAMuvB,SAAW,OACzBmZ,EAAQ1oC,MAAM+U,OAAS,UACvB2zB,EAAQ1oC,MAAMqV,QAAU,QACE,IAAtBoI,EAAUirB,UAAeA,EAAQ1oC,MAAMqV,QAAU,QACrDqzB,EAAQ1oC,MAAMqC,KAAOmtC,EAAOrmC,EAAEnJ,MAAMqC,KACpCqmC,EAAQ1oC,MAAMsC,IAAMktC,EAAOrmC,EAAEnJ,MAAMsC,IACnComC,EAAQgH,QAAU,WAChBF,EAAOG,OAETjH,EAAQkH,YAAc,WACpBJ,EAAOrmC,EAAEnJ,MAAM6vC,OACb,gEACFL,EAAOrmC,EAAEnJ,MAAM8vC,aACb,iEAEJpH,EAAQqH,WAAa,WACnBP,EAAOrmC,EAAEnJ,MAAM6vC,OAAS,GACxBL,EAAOrmC,EAAEnJ,MAAM8vC,aAAe,IAGhCtuB,GAASguB,EAAOlkB,IAAMod,EACtBv/B,EAAE,YAAYwK,YAAY+0B,GAqFlBsH,CAAcjmB,KAAKulB,SAASv3C,QAIlCmzC,KACAzsB,EAA+BE,EACM,IAAjCA,IAAoC8J,GAA4B,IACrC,IAAtBhL,EAAUirB,SAAiBlqB,GACpCjjB,OAAO6C,KAAKojB,IAAUwL,SAASj1B,IAC7BypB,GAASzpB,GAAGiI,MAAM6U,QAAUiU,GAAwB/wB,GAAGoR,EAAEnJ,MAAM6U,QAC/D2M,GAASzpB,GAAGiI,MAAMiwC,UAChBnnB,GAAwB/wB,GAAGoR,EAAEnJ,MAAMiwC,UACrCzuB,GAASzpB,GAAGqD,YAAckF,KAAKoL,KAC7Bod,GAAwB/wB,GAAGm4C,KAAOnmB,KAAKiL,QAiF3C1W,KACCyL,KAAKomB,cAA2C,YAA3BpmB,KAAKomB,aAAa/3C,QAExCkmB,EACEyL,KAAKomB,cAA2C,YAA3BpmB,KAAKomB,aAAa/3C,KACrCkmB,IACFwuB,GAAM,EAAG,gBACTG,GACExvB,EAAUuoB,gBACV,eACA,iBACA,GAEFyH,GACE,sBACA,uBACA,kDA9CFpvB,IAAyB0L,KAAKqR,aAAaQ,SAASN,UACtDjd,EAAuB0L,KAAKqR,aAAaQ,SAASN,QAClD//B,OAAO6C,KAAK2rB,KAAKulB,UAAUtiB,SAASj1B,IAC9BgyB,KAAKulB,SAASv3C,GAAGw3C,WAAuC,aAA1BxlB,KAAKulB,SAASv3C,GAAGK,OACjDswB,GAAwBqB,KAAKulB,SAASv3C,OAG1C+0C,GAAM,EAAG,YACTG,GAAUxvB,EAAU4oB,YAAa,WAAY,aAAa,GAC1DoH,GACE,kBACA,oBACA,0CAtNF1jB,KAAKoB,QAAQoM,KAAK1L,gBAClBtN,IAAuBwL,KAAKoB,QAAQoM,KAAKrM,SAASklB,WAEvB,IAAvB7xB,GAA4BA,EAAqBgf,KAAKC,QACxDsP,GAAM,EAAG,aACTG,GAAUxvB,EAAUgpB,aAAc,YAAa,cAAc,IAE/DloB,EAAqBwL,KAAKoB,QAAQoM,KAAKrM,SAASklB,UAiKpD,WACE,GACErmB,KAAKoB,QAAQ,gBAAgBU,gBACH,IAA1BpO,EAAUqqB,YACV,CACA,MAAM5c,SAAEA,GAAanB,KAAKoB,QAAQ,gBAC9BD,EAAS6J,MAAQ7J,EAAS6L,OAAQrY,GAAmB,EAC/CA,IACRA,GAAmB,EACnBouB,GAAM,EAAG,cACTG,GAAUxvB,EAAUqpB,cAAe,aAAc,eAAe,GAChE2G,GACE,oBACA,mBACA,6CA6NJ4C,GA1IJ,WACE,GAAItmB,KAAK0I,WAAa,EAAG,CACvB,IAAI6d,EAAmB,EACvB/0C,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACH,IAA5BgyB,KAAKkF,UAAUl3B,GAAGmkC,QAAaoU,GAAoB,MAErDA,EAAmB1xB,GACrBA,EAAoB0xB,EAElBA,IAAqBvmB,KAAKwmB,mBAC1B9yB,EAAU4pB,iBAEVyF,GAAM,EAAG,oBAETA,GAAM,EAAG,iBAGTwD,IAAqBvmB,KAAKwmB,mBAC1B9yB,EAAU6pB,iBAEV2F,GACExvB,EAAU+pB,oBACV,mBACA,qBACA,GAGFyF,GACExvB,EAAU0pB,iBACV,gBACA,kBACA,GAIFmJ,IAAqBvmB,KAAKwmB,mBAC1B9yB,EAAU2pB,wBAEVqG,GACE,0BACA,4BACA,sDAGFA,GACE,uBACA,sBACA,gCAIJ7uB,EAAoB0xB,GAwFtBE,IAmBJ,SAASC,KACP,MAAMC,EAAaC,YACjBC,SAASC,aAAaC,QAAQ,sBAAsBlyC,MAAM,SAAS,IAE/DmyC,EAAoBL,EAAWj4C,MAAM,wBAC3C,GAA0B,OAAtBs4C,EAA4B,CAC9B,MAAMC,EAAgBN,EAAW/xC,QAC/BoyC,EAAkB,GAClB,iBAAiB/E,QAEnB6E,aAAaI,QACX,oBACA1U,OAAO,GAAG2U,YAAYF,aAS5B,SAASG,GAAWjF,GAKlB,QAHqC,IAA1B2E,aAAaO,iBACfP,aAAaO,cAELj5C,IAAb+zC,EAAwB,CAC1BzuB,EAAYyuB,EAGZ,IAAImF,GAAM,EACV91C,OAAO6C,KAAKgnC,IAAiBpY,SAASj1B,SACR,IAAjB0lB,EAAU1lB,IACnBs5C,GAAM,EACN5zB,EAAU1lB,GAAKqtC,GAAgBrtC,IAChB,WAANA,GAAwB,WAANA,GACI,IAA3BA,EAAEkD,QAAQ,YAERwiB,EAAU1lB,IAAM,GAAK0lB,EAAU1lB,GAAK+zC,GAAa/zC,GAAGyzC,MAAMxzC,SAE5Dq5C,GAAM,EACN5zB,EAAU1lB,GAAKqtC,GAAgBrtC,IAEA,iBAAjB0lB,EAAU1lB,KAE1Bs5C,GAAM,EACN5zB,EAAU1lB,GAAKqtC,GAAgBrtC,IAElB,WAANA,EACTwD,OAAO6C,KAAKgnC,GAAgB0D,QAAQ9b,SAASmB,SAEd,IAApB1Q,EAAU1lB,GAAGo2B,IAClB1Q,EAAU1lB,GAAGo2B,IAAM,GAAK1Q,EAAU1lB,GAAGo2B,GAAK,IAE5CkjB,GAAM,EACN5zB,EAAU1lB,GAAGo2B,GAAKiX,GAAgBrtC,GAAGo2B,OAKzC5yB,OAAO6C,KAAKgnC,GAAgBvlB,QAAQmN,SAASmB,SAEd,IAApB1Q,EAAU1lB,GAAGo2B,IACO,iBAApB1Q,EAAU1lB,GAAGo2B,KAEpBkjB,GAAM,EACN5zB,EAAU1lB,GAAGo2B,GAAKiX,GAAgBrtC,GAAGo2B,UAKzCkjB,GAAKZ,KACT1C,KACAxyC,OAAO6C,KAAKgnC,IAAiBpY,SAASj1B,IAC1B,WAANA,QAAkD,IAAzB+zC,GAAa/zC,GAAG+E,MAC3CgvC,GAAa/zC,GAAG+E,eAKpBq0C,GAAW/L,IAyGf,SAASkM,KACP/1C,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IAC/BgyB,KAAKkF,UAAUl3B,GAAG0kC,OAAS,GAAgC,IAA3B1S,KAAKkF,UAAUl3B,GAAGK,OACpD2xB,KAAKkF,UAAUl3B,GAAGw5C,GAAK,MA6C7B,SAASC,GAAcp5C,EAAMkE,GAC3B,GAAa,MAATlE,EAAc,CAIhB,GAFA+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQ7uB,GAAMg4B,UAEd,IAA1B7W,EAAUgqB,YAAmB,CAC/B,MAAMgK,EAAatS,GACjBpV,KAAKoB,QAAQ7uB,GACbytB,KAAKoB,QAAQ7uB,GAAM2vB,UACnB,EACAlC,KAAKoB,QAAQ7uB,GAAM4vB,KACnBnC,KAAKoB,QAAQ7uB,GAAM6vB,QAEfulB,EAAiBD,EAAa1nB,KAAKoB,QAAQ7uB,GAAM03B,aACnD0d,EAAiB,IACnBvoC,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM,gBAChB6C,KACC,wBAAwBigB,GAA4BgwB,UACnB,IAA/BpxC,KAAKkE,MAAMktC,GAAwB,SAAW,+BAE9CvuB,IACGsuB,EAAa1nB,KAAKoB,QAAQ7uB,GAAM03B,eAC9BjK,KAAKoB,QAAQ7uB,GAAMq1C,eAAiB5nB,KAAK6nB,gBAC5CxuB,iBAKU,IAAlB2G,KAAK+C,UASP3jB,EAAE,WAAWoM,UAAYpM,EAAE,WACxBoM,UAAU3W,MAAM8iB,GAA4BqI,KAAKoB,QAAQ7uB,GAAMs0B,YAC/DnvB,KACCigB,IACGqI,KAAKoB,QAAQ7uB,GACdytB,KAAKoB,QAAQ7uB,GAAM2vB,UACnBlC,KAAKoB,QAAQ7uB,GAAM6vB,OACnBpC,KAAKoB,QAAQ7uB,GAAM4vB,KACnBnC,KAAK0C,QACL,WAIH,GAAa,MAATr0B,EAAc,CAEvB,IAAK2xB,KAAKiE,gBAAgB1xB,GAAO,MAAO,GACxC6M,EAAE,WAAWoM,UAAYwU,KAAK8nB,aAC5B9nB,KAAKiE,gBAAgB1xB,GACrB,aAEgB,MAATlE,EAAc+Q,EAAE,WAAWoM,UAAYwU,KAAK+nB,cAErC,MAAT15C,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQ,gBAAgBD,SAAS6mB,aAC7Dz1C,EADuBytB,GAIT,MAAT3xB,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAK8X,YAAY,GAAG3W,SAAS8mB,YACpD11C,EAAK,GACLA,EAAK,GAFkBytB,GAKT,OAAT3xB,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAK8X,YAAY,GAAG3W,SAAS+mB,YAAY,EAAzCloB,GACT,OAAT3xB,EAAe+Q,EAAE,WAAWoM,UAAY,GAC/B,QAATnd,EACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQF,OAAOC,SAASgnB,WAAW51C,EAAxCytB,GACT,QAAT3xB,IACP+Q,EAAE,WAAWoM,UAAYwU,KAAKoB,QAAQF,OAAOC,SAASinB,YACpD71C,EAAK,GADkBytB,IAK3B,GACY,MAAT3xB,GAAiC,IAAjB2xB,KAAK+C,SACb,MAAT10B,GACS,MAATA,GACS,MAATA,GACU,MAATA,IAAiB2xB,KAAK3rB,KAAK,KACnB,OAAThG,GACS,OAATA,GACS,QAATA,GACU,QAATA,IAA+B,IAAbkE,EAAK,GACxB,CACA,MAAM81C,EAAO/7C,SAAS4D,cAAc,OACpCm4C,EAAK9mB,GAAK,gBACVniB,EAAE,WAAWwK,YAAYy+B,GAS3B,OALAjxB,GAAc/oB,EACdgpB,GAAc9kB,EAEdg5B,KAEOnsB,EAAE,WAAWoM,UA6GtB,SAAS88B,KACHtoB,KAAKoB,QAAQ,gBAAgBU,gBAC/BtwB,OAAO6C,KAAK2rB,KAAKoB,QAAQ,gBAAgBD,SAAS2L,YAAY7J,SAC3Dj1B,IAC4C,OAAvCoR,EAAE,gBAAgBpR,KAAK63C,cACzB7wB,EAAsBhnB,GAAKoR,EAAE,gBAAgBpR,KAAK63C,YAClDzmC,EAAE,gBAAgBpR,KAAK63C,YAAc,WACnC7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,IAAK,GAAGz5C,OAE/B,QAEFgyB,KAAKuK,QAAQie,cAoBzB,SAASC,KACP,IACGr0B,GACD4L,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,SAAEA,GAAanB,KAAKoB,QAAQ,gBAClClN,EAAqBiN,EAAS3b,KAC9Bwa,KAAKoB,QAAQ,gBAAgBD,SAAS3b,KAAO,WAC3C0O,IAC8B,IAA1BR,EAAUqqB,aAAqB5c,EAAS6J,MAAQ7J,EAAS6L,SAC3D7L,EAASunB,cAAcl9B,WAAa,KAAKuN,GACvC6R,GACEzJ,EAAS6J,MACT7J,EAAS6L,OACT7L,EAAS6L,cAKjB5Y,GAA+B,GAkCnC,SAASu0B,MA3BT,WACE,IACGx0B,GACD6L,KAAKoB,QAAQ,gBAAgBU,eAC7B,CACA,MAAMX,SAAEA,GAAanB,KAAKoB,QAAQ,gBAClCpN,EAAuBmN,EAASynB,OAChC30B,EAA0B,IAAIxkB,SAC5B,UAAU0xB,EAASynB,OAChBnyC,WACA5B,MAAM,SACN6C,KAAK,8CAEVsoB,KAAKoB,QAAQ,gBAAgBD,SAASynB,OAAS,WAC7C30B,IACAq0B,KACAl0B,GAA+B,EAC/Bq0B,KAEAt0B,GAAiC,IASrC00B,GACAJ,KAiJF,IAAI17C,GAAUkmB,EAAoB,KAC9B61B,GAA+B71B,EAAoBhiB,EAAElE,IA+OzD,MAAMg8C,GAA6B,WA8BnC,SAASC,GAAmBhG,GACG,OAAzB5jC,EAAE,SAAS4jC,OACb5jC,EAAE,SAAS4jC,UAAex3B,UAAY,GAAGpM,EAAE,SAAS4jC,KAAU5xC,SAC9DsiB,EAAUsvB,GAAUzsC,KAAKC,MAAM4I,EAAE,SAAS4jC,KAAU5xC,QAEtDs1C,KAQF,SAASuC,GAAajG,GACpBtvB,EAAUqrB,OAAOiE,IAAW,EACxBtvB,EAAUqrB,OAAOiE,GAAU,IAAGtvB,EAAUqrB,OAAOiE,GAAU,GAC7D0D,KAiBF,SAASwC,GAAY7vB,EAAM2pB,GACzB,MAAM1e,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,QAChB61B,EAAIruB,MAAMwK,QAAU,WACpB6jB,EAAIruB,MAAM6U,QAAU,MACpBwZ,EAAIruB,MAAMuvB,SAAW,OACrBlB,EAAIruB,MAAMyvC,WAAa,2BACvBphB,EAAI1a,YAAYtd,SAASqgB,eAAe,GAAG0M,OAC3C,MAAM8vB,EAAO78C,SAAS4D,cAAc,QAiBpC,OAhBAi5C,EAAKlzC,MAAM+U,OAAS,UACpBm+B,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAKlzC,MAAMmG,OAAS,OACpB+sC,EAAKlzC,MAAMkG,MAAQ,OACnBgtC,EAAKlzC,MAAMsU,aAAe,MAC1B4+B,EAAKlzC,MAAMuW,UAAY,SACvB28B,EAAKlzC,MAAM4U,gBAAkB,UAC7Bs+B,EAAKlzC,MAAM2F,MAAQ,QACnButC,EAAKlzC,MAAMuvB,SAAW,OACtB2jB,EAAKlzC,MAAMyvB,cAAgB,SAC3ByjB,EAAK93C,YAAcqiB,EAAUqrB,OAAOiE,GAAU,IAAM,IACpDmG,EAAKxD,QAAU,WACbsD,GAAajG,GACbhjB,KAAK8S,cAEPxO,EAAI1a,YAAYu/B,GACT7kB,EAYT,SAAS8kB,GAAa/6C,EAAMkE,EAAM8mB,EAAMgZ,GACtC,MAAM/N,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,UAEhB,MAAM46C,EAAc/8C,SAAS4D,cAAc,KAG3C,GAFAm5C,EAAYh4C,YAAckB,EAC1B+xB,EAAI1a,YAAYy/B,GACH,gBAATh7C,EAAwB,CAC1Bi2B,EAAI71B,UAAY,UAChB61B,EAAI1a,YAAYtd,SAASqgB,eAAe,MAExC,MAAM4d,EAAUj+B,SAAS4D,cAAc,QACvCq6B,EAAQyb,WAAa,WACnBhmB,KAAKuK,QAAQvlB,QAEfulB,EAAQsb,YAAc,WACpB7lB,KAAKuK,QAAQ/kB,KACX9Y,KACA8lC,OAAOxc,EAAsBqc,GAAa7mB,aAG9C+e,EAAQt0B,MAAM+U,OAAS,UACvBuf,EAAQt0B,MAAMqV,QAAU,eACxBif,EAAQt0B,MAAMmG,OAAS,OACvBmuB,EAAQt0B,MAAMkG,MAAQ,OACtBouB,EAAQt0B,MAAMsU,aAAe,MAC7BggB,EAAQt0B,MAAMuW,UAAY,SAC1B+d,EAAQt0B,MAAM4U,gBAAkB,UAChC0f,EAAQt0B,MAAM2F,MAAQ,QACtB2uB,EAAQt0B,MAAMuvB,SAAW,MACzB+E,EAAQt0B,MAAMyvB,cAAgB,SAC9B6E,EAAQl5B,YAAc,IACtBizB,EAAI1a,YAAY2gB,GAIlB,OAFAjG,EAAI1a,YAAYtd,SAASqgB,eAAe,OACxC2X,EAAI1a,YAAYyP,GACTiL,EAQT,SAASglB,GAAcC,GACrB,MAAMC,EAAOl9C,SAASm9C,yBACtBD,EAAK5/B,YAAYtd,SAASqgB,eAAe,GAAG48B,EAAYt7C,YACxD,MAAMk7C,EAAO78C,SAAS4D,cAAc,QACpCi5C,EAAKnD,WAAa,WAChBhmB,KAAKuK,QAAQvlB,QAEf,MAAMqtB,EAAc/lC,SAAS4D,cAAc,OACrCw5C,EAAUp9C,SAAS4D,cAAc,OACvCw5C,EAAQzzC,MAAMs8B,SAAW,QACzBmX,EAAQzzC,MAAMw0B,aAAe,MAC7B,MAAMmZ,EAAQt3C,SAAS4D,cAAc,OA4BrC,OA3BA0zC,EAAMn1C,UAAY,OAClBm1C,EAAM3tC,MAAMw0B,aAAe,MAC3BmZ,EAAM3tC,MAAMuW,UAAY,SACxBo3B,EAAMvyC,YAAc,UACpBq4C,EAAQ9/B,YAAYg6B,GACpBpyC,OAAO6C,KAAKk1C,GAAatmB,SAASj1B,IAChC,MAAMs2B,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAI1a,YAAYtd,SAASqgB,eAAe48B,EAAYv7C,KACpD07C,EAAQ9/B,YAAY0a,MAEtB+N,EAAYzoB,YAAY8/B,GACxBP,EAAKtD,YAAc,WACjB7lB,KAAKuK,QAAQ/kB,KAAK9Y,KAAM8lC,OAAOH,EAAY7mB,aAE7C29B,EAAKlzC,MAAM+U,OAAS,UACpBm+B,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAKlzC,MAAMmG,OAAS,OACpB+sC,EAAKlzC,MAAMkG,MAAQ,OACnBgtC,EAAKlzC,MAAMsU,aAAe,MAC1B4+B,EAAKlzC,MAAMuW,UAAY,SACvB28B,EAAKlzC,MAAM4U,gBAAkB,UAC7Bs+B,EAAKlzC,MAAM2F,MAAQ,QACnButC,EAAKlzC,MAAMuvB,SAAW,MACtB2jB,EAAKlzC,MAAMyvB,cAAgB,SAC3ByjB,EAAK93C,YAAc,IACnBm4C,EAAK5/B,YAAYu/B,GACVK,EA8tBT,SAASG,GAAa/F,GACpB,MAAMgG,EAAQt9C,SAAS4D,cAAc,OAiCrC,GAhCA05C,EAAMn7C,UAAY,aAClBm7C,EAAMhgC,YAAYg6B,GAElBgG,EAAMhgC,YAAYs/B,GAAY,gBAAiB,UAC3Cx1B,EAAUqrB,OAAOgB,OACnB6J,EAAMhgC,YAhtBV,WAEE,MAAMigC,EAAkB7pB,KAAK2W,SAAS,oBAClC,2CACA,6BAEEmT,EAAUx9C,SAAS4D,cAAc,OACvC45C,EAAQr7C,UAAY,sBAEpB,MAAMs7C,EACJ/pB,KAAK8G,QAAU3B,KAAuBtJ,GAAapG,EAAWH,EAC1D00B,EACJhqB,KAAK8G,QAAU3B,KAAuBtJ,GAClC9C,IACG8C,IAAcmE,KAAK8G,QAAU3B,OAAyBN,MAEzD,GACAolB,EAAe39C,SAASm9C,yBACxBS,EAAe59C,SAAS4D,cAAc,QAK5C,GAJAg6C,EAAaj0C,MAAMo0B,WAAa,OAChC6f,EAAaz7C,UAAY0mB,EAAe40B,EACxCG,EAAa74C,YAAcsmB,GAA4BkE,IACvDouB,EAAargC,YAAYsgC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB79C,SAAS4D,cAAc,SAC7Ci6C,EAAc94C,YAAc,KAAK24C,KACjCC,EAAargC,YAAYugC,GAE3BL,EAAQlgC,YACNw/B,GACE,cACA,4BACAa,EACAJ,IAIJ,MAAMO,EACJpqB,KAAK8G,QAAU3B,KAAuBnJ,GAClCvG,EACAH,EACA+0B,EACJrqB,KAAK8G,QAAU3B,KAAuBnJ,GAClCjD,IACGiD,IAAoBgE,KAAK8G,QAAU3B,OAAyBN,MAE/D,GACAylB,EAAmBh+C,SAASm9C,yBAC5Bc,EAAmBj+C,SAAS4D,cAAc,QAKhD,GAJAq6C,EAAiBt0C,MAAMo0B,WAAa,OACpCkgB,EAAiB97C,UAAY0mB,EAAei1B,EAC5CG,EAAiBl5C,YAAcsmB,GAA4BqE,IAC3DsuB,EAAiB1gC,YAAY2gC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBl+C,SAAS4D,cAAc,SACjDs6C,EAAkBn5C,YAAc,KAAKg5C,KACrCC,EAAiB1gC,YAAY4gC,GAE/BV,EAAQlgC,YACNw/B,GACE,cACA,qCACAkB,EACAT,IAIJ,MAAMY,EAAa3uB,KAAqBC,GAElC2uB,EAAqBp+C,SAAS4D,cAAc,QAClDw6C,EAAmBz0C,MAAMo0B,WAAa,OACtCqgB,EAAmBj8C,UAAY0mB,EAAe2G,GAC9C4uB,EAAmBr5C,YACjBsmB,GAA4BmE,KAC3B2uB,EAAa,MAAM9yB,GAA4BoE,MAA2B,IAC7E+tB,EAAQlgC,YACNw/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DC,EACAb,IAIJ,MAAMc,EAA2Br+C,SAAS4D,cAAc,QACxDy6C,EAAyB10C,MAAMo0B,WAAa,OAC5CsgB,EAAyBl8C,UAAY0mB,EAAew1B,EACpDA,EAAyBt5C,YACvBsmB,GAA4BsE,KAC3BwuB,EAAa,MAAM9yB,GAA4BuE,MAAiC,IACnF4tB,EAAQlgC,YACNw/B,GACE,cACA,kCAAiCqB,EAAa,oBAAsB,IACpEE,EACAd,IAIJ,MAAMe,EACJr0C,KAAK2D,IACqC,KAAvC8lB,KAAK8G,QAAU3B,MAChB5I,GAA6BC,GAAoC,GAAK,IACpE,GACAquB,EAAev+C,SAAS4D,cAAc,QAc5C,OAbA26C,EAAa50C,MAAMo0B,WAAa,OAChCwgB,EAAap8C,UAAY0mB,EAAe01B,EACxCA,EAAax5C,YACXsmB,GAA4B8E,GAAyBmuB,IACpDH,EAAa,MAAM9yB,GAA4B+E,GAAwBkuB,KAAkB,IAC5Fd,EAAQlgC,YACNw/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DI,EACAhB,IAGGC,EA0lBagB,IAGpBlB,EAAMhgC,YAAYs/B,GAAY,gBAAiB,UAC3Cx1B,EAAUqrB,OAAOiB,OACnB4J,EAAMhgC,YAxlBV,WAEE,MAAMigC,EAAkB7pB,KAAK2W,SAAS,oBAClC,2CACA,6BAEEmT,EAAUx9C,SAAS4D,cAAc,OACvC45C,EAAQr7C,UAAY,sBAEpB,MAAMs8C,EACJ/qB,KAAK8G,QAAU3B,KAAuBvH,GAClCnI,EACAH,EACA01B,EACJhrB,KAAK8G,QAAU3B,KAAuBvH,GAClC7E,IACG6E,IAAsBoC,KAAK8G,QAAU3B,OACpCN,MAEJ,GACAomB,EAAe3+C,SAASm9C,yBACxByB,EAAe5+C,SAAS4D,cAAc,QAK5C,GAJAg7C,EAAaj1C,MAAMo0B,WAAa,OAChC6gB,EAAaz8C,UAAY0mB,EAAe41B,EACxCG,EAAa75C,YAAcsmB,GAA4BiG,IACvDqtB,EAAarhC,YAAYshC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB7+C,SAAS4D,cAAc,SAC7Ci7C,EAAc95C,YAAc,KAAK25C,KACjCC,EAAarhC,YAAYuhC,GAE3BrB,EAAQlgC,YACNw/B,GACE,cACA,2BACA6B,EACApB,IAIJ,MAAMuB,EACJprB,KAAK8G,QAAU3B,KAAuBpH,GAClCtI,EACAH,EACA+1B,EACJrrB,KAAK8G,QAAU3B,KAAuBpH,GAClChF,IACGgF,IAA2BiC,KAAK8G,QAAU3B,OACzCN,MAEJ,GACAymB,EAAoBh/C,SAASm9C,yBAC7B8B,EAAoBj/C,SAAS4D,cAAc,QAKjD,GAJAq7C,EAAkBt1C,MAAMo0B,WAAa,OACrCkhB,EAAkB98C,UAAY0mB,EAAei2B,EAC7CG,EAAkBl6C,YAAcsmB,GAA4BoG,IAC5DutB,EAAkB1hC,YAAY2hC,GACP,KAAnBF,EAAuB,CACzB,MAAMG,EAAqBl/C,SAAS4D,cAAc,SAClDs7C,EAAmBn6C,YAAc,KAAKg6C,KACtCC,EAAkB1hC,YAAY4hC,GAEhC1B,EAAQlgC,YACNw/B,GACE,cACA,mCACAkC,EACAzB,IAIJ,MAAM4B,EACJzrB,KAAK8G,QAAU3B,KAAuBjH,GAClCzI,EACAH,EACAo2B,EACJ1rB,KAAK8G,QAAU3B,KAAuBjH,GAClCnF,IACGmF,IAA4B8B,KAAK8G,QAAU3B,OAC1CN,MAEJ,GACA8mB,EAAmBr/C,SAASm9C,yBAC5BmC,EAAmBt/C,SAAS4D,cAAc,QAKhD,GAJA07C,EAAiB31C,MAAMo0B,WAAa,OACpCuhB,EAAiBn9C,UAAY0mB,EAAes2B,EAC5CG,EAAiBv6C,YAAcsmB,GAA4BuG,IAC3DytB,EAAiB/hC,YAAYgiC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBv/C,SAAS4D,cAAc,SACjD27C,EAAkBx6C,YAAc,KAAKq6C,KACrCC,EAAiB/hC,YAAYiiC,GAE/B/B,EAAQlgC,YACNw/B,GACE,cACA,oCACAuC,EACA9B,IAIJ,MAAMiC,EACJ9rB,KAAK8G,QAAU3B,KAAuB9G,GAClC5I,EACAH,EACAy2B,EACJ/rB,KAAK8G,QAAU3B,KAAuB9G,GAClCtF,IACGsF,IACE2B,KAAK8G,QAAU3B,OAChBN,MAEJ,GACAmnB,EAAwB1/C,SAASm9C,yBACjCwC,EAAwB3/C,SAAS4D,cAAc,QAKrD,GAJA+7C,EAAsBh2C,MAAMo0B,WAAa,OACzC4hB,EAAsBx9C,UAAY0mB,EAAe22B,EACjDG,EAAsB56C,YAAcsmB,GAA4B0G,IAChE2tB,EAAsBpiC,YAAYqiC,GACL,KAAzBF,EAA6B,CAC/B,MAAMG,EAAyB5/C,SAAS4D,cAAc,SACtDg8C,EAAuB76C,YAAc,KAAK06C,KAC1CC,EAAsBpiC,YAAYsiC,GAEpCpC,EAAQlgC,YACNw/B,GACE,cACA,4CACA4C,EACAnC,IAIJC,EAAQlgC,YACNw/B,GACE,cACA,wCACA98C,SAASqgB,eACP,GAAGgL,GAA4BmG,GAAoB,SAASnG,GAC1DsG,GAAyB,OAG7B4rB,IAIJC,EAAQlgC,YACNw/B,GACE,cACA,iDACA98C,SAASqgB,eACP,GAAGgL,GAA4ByG,GAA0B,SAASzG,GAChEyG,GAA0B,OAG9ByrB,IAIJ,MAAMsC,EAAc51C,KAAK2D,IACN,GAAjB8lB,KAAKgF,UAAiB,GAAK,EAAIxI,GAChB,GAAfwD,KAAK8G,SAEDslB,EAAW/S,GACf,EACA8S,EACA1vB,IACA,GACI4vB,EAAgBhT,GACpB,EACA8S,EACAzvB,IACA,GAoCF,OAnCAotB,EAAQlgC,YACNw/B,GACE,cACA,wCACA98C,SAASqgB,eACP,GAAGgL,GAA4By0B,QAAez0B,GAA4B00B,MAE5ExC,IAIJC,EAAQlgC,YACNw/B,GACE,cACA,oCACA98C,SAASqgB,eACP,GAAGgL,GAA4BkG,SAA6BlG,GAC1DqG,OAGJ,8BAGJ8rB,EAAQlgC,YACNw/B,GACE,cACA,6CACA98C,SAASqgB,eACP,GAAGgL,GAA4BwG,SAAmCxG,GAChE2G,OAGJ,8BAGGwrB,EAuYawC,IAGhBtsB,KAAKoB,QAAQ,gBAAgBU,iBAC/B8nB,EAAMhgC,YAAYs/B,GAAY,SAAU,WACpCx1B,EAAUqrB,OAAOkB,QACnB2J,EAAMhgC,YAtYZ,WACE,MAAMkgC,EAAUx9C,SAAS4D,cAAc,OACvC45C,EAAQr7C,UAAY,uBAEpB,MAAM89C,EACJvsB,KAAK8G,QAAU3B,KAAuBhJ,GAAe1G,EAAWH,EAC5Dk3B,EACJxsB,KAAK8G,QAAU3B,KAAuBhJ,GAClCpD,IACGoD,IAAgB6D,KAAK8G,QAAU3B,OAAyBN,MAE3D,GAEA4nB,EAAiBngD,SAASm9C,yBAC1BiD,EAAiBpgD,SAAS4D,cAAc,QAK9C,GAJAw8C,EAAez2C,MAAMo0B,WAAa,OAClCqiB,EAAej+C,UAAY0mB,EAAeo3B,EAC1CG,EAAer7C,YAAcsmB,GAA4BwE,IACzDswB,EAAe7iC,YAAY8iC,GACP,KAAhBF,EAAoB,CACtB,MAAMG,EAAkBrgD,SAAS4D,cAAc,SAC/Cy8C,EAAgBt7C,YAAc,KAAKm7C,KACnCC,EAAe7iC,YAAY+iC,GAE7B7C,EAAQlgC,YACNw/B,GACE,cACA,yCACAqD,EACA,+BAGJ3C,EAAQlgC,YACNw/B,GACE,cACA,qCACA98C,SAASqgB,eAAegL,GAA4ByE,KACpD,+BAIJ,MAAMwwB,EACJ5sB,KAAK8G,QAAU3B,KAAsC,EAAfhJ,GAClC1G,EACAH,EACAu3B,EAAmBt2C,KAAK2D,IACY,KAAvC8lB,KAAK8G,QAAU3B,MACa,GAA7B5I,GAAkC,IAE9BuwB,EACJ9sB,KAAK8G,QAAU3B,KAAsC,EAAfhJ,GAClCpD,IACkB,EAAfoD,IAAoB6D,KAAK8G,QAAU3B,OAAyBN,MAE/D,GAEAkoB,EAAuBzgD,SAASm9C,yBAChCuD,EAAuB1gD,SAAS4D,cAAc,QAKpD,GAJA88C,EAAqB/2C,MAAMo0B,WAAa,OACxC2iB,EAAqBv+C,UAAY0mB,EAAey3B,EAChDI,EAAqB37C,YAAcsmB,GAA2C,EAAfwE,IAC/D4wB,EAAqBnjC,YAAYojC,GACP,KAAtBF,EAA0B,CAC5B,MAAMG,EAAwB3gD,SAAS4D,cAAc,SACrD+8C,EAAsB57C,YAAc,KAAKy7C,KACzCC,EAAqBnjC,YAAYqjC,GAsCnC,OApCAnD,EAAQlgC,YACNw/B,GACE,cACA,kDACA2D,EACA,+BAGJjD,EAAQlgC,YACNw/B,GACE,cACA,8CACA98C,SAASqgB,eAAegL,GAAiD,EAArByE,KACpD,+BAGJ0tB,EAAQlgC,YACNw/B,GACE,cACA,qCACA98C,SAASqgB,eAAegL,GAA4Bk1B,IACpD,+BAGAxwB,IACFytB,EAAQlgC,YACNw/B,GACE,cACA,mEACA98C,SAASqgB,eACP,GAAGgL,GAA4B0E,QAAkBC,OAEnD,+BAICwtB,EA+ReoD,KAIlBltB,KAAKoB,QAAQoM,KAAK1L,iBACpB8nB,EAAMhgC,YAAYs/B,GAAY,SAAU,WACpCx1B,EAAUqrB,OAAOmB,QACnB0J,EAAMhgC,YA/RZ,WACE,MAAMkgC,EAAUx9C,SAAS4D,cAAc,OACvC45C,EAAQr7C,UAAY,uBAEpB,MAAM0+C,EACJntB,KAAK8G,QAA2B,GAAjB9G,KAAKgF,UAAiB,GAAK,IAAMvP,EAAWH,EACvD83B,EAAgB9gD,SAAS4D,cAAc,QAC7Ck9C,EAAcn3C,MAAMo0B,WAAa,OACjC+iB,EAAc3+C,UAAY0mB,EAAeg4B,EACzCC,EAAc/7C,YAAcsmB,GAA6C,GAAjBqI,KAAKgF,UAAiB,GAAK,KACnF8kB,EAAQlgC,YACNw/B,GACE,QACA,iDACAgE,IAIJ,MAAMC,EACJrtB,KAAK8G,QAA2B,GAAjB9G,KAAKgF,UAAiB,IAAMvP,EAAWH,EAClDg4B,EAAgBhhD,SAAS4D,cAAc,QAC7Co9C,EAAcr3C,MAAMo0B,WAAa,OACjCijB,EAAc7+C,UAAY0mB,EAAek4B,EACzCC,EAAcj8C,YAAcsmB,GAA6C,GAAjBqI,KAAKgF,UAAiB,KAC9E8kB,EAAQlgC,YACNw/B,GACE,QACA,iDACAkE,IAIJ,MAAMC,EACJvtB,KAAK8G,QAA2B,GAAjB9G,KAAKgF,UAAiB,GAAK,GAAKvP,EAAWH,EACtDk4B,EAAgBlhD,SAAS4D,cAAc,QAC7Cs9C,EAAcv3C,MAAMo0B,WAAa,OACjCmjB,EAAc/+C,UAAY0mB,EAAeo4B,EACzCC,EAAcn8C,YAAcsmB,GAA6C,GAAjBqI,KAAKgF,UAAiB,GAAK,IACnF8kB,EAAQlgC,YACNw/B,GACE,QACA,iDACAoE,IAIJ,MAAMC,EACJztB,KAAK8G,QAA2B,GAAjB9G,KAAKgF,UAAiB,GAAK,IAAMvP,EAAWH,EACvDo4B,EAAgBphD,SAAS4D,cAAc,QAW7C,OAVAw9C,EAAcz3C,MAAMo0B,WAAa,OACjCqjB,EAAcj/C,UAAY0mB,EAAes4B,EACzCC,EAAcr8C,YAAcsmB,GAA6C,GAAjBqI,KAAKgF,UAAiB,GAAK,KACnF8kB,EAAQlgC,YACNw/B,GACE,QACA,iDACAsE,IAGG5D,EAoOe6D,KAItB/D,EAAMhgC,YAAYs/B,GAAY,WAAY,aACtCx1B,EAAUqrB,OAAOoB,UACnByJ,EAAMhgC,YAnOV,WACE,MAAMkgC,EAAUx9C,SAAS4D,cAAc,OACvC45C,EAAQr7C,UAAY,yBAEpB,MAAMm/C,EAAkBr3C,KAAKkE,MAC3BulB,KAAKia,gBACHzb,GACEwB,KAAKka,aACLhd,IACC8C,KAAKwU,YAAY,mBAAqBxU,KAAKwR,IAAI,iBAC5C1U,GACA,KAGVgtB,EAAQlgC,YACNw/B,GACE,cACA,6BACA98C,SAASqgB,eACP,GAAGgL,GAA4BqI,KAAKgK,eAAerS,GAA4Bi2B,MAEjF,+BAIJ,MAAMC,EAAat3C,KAAK6D,IACtB,EACA4lB,KAAKqlB,oBAAoBuI,EAAkB,IACxCpvB,GACCwB,KAAKka,aACLhd,IAEE8C,KAAKwU,YAAY,mBAAqBxU,KAAKwR,IAAI,kBAC3C1U,GAGFA,GACA,KAEJgxB,EAAkBxhD,SAASm9C,yBACjCqE,EAAgBlkC,YAAYtd,SAASqgB,eAAegL,GAA4Bk2B,KAChF,MAAME,EAAmBzhD,SAAS4D,cAAc,SAChD69C,EAAiB18C,YAAc,KAAK0nB,GAClC80B,EAAapvB,GACb,MAEFqvB,EAAgBlkC,YAAYmkC,GAC5BjE,EAAQlgC,YACNw/B,GACE,cACA,wBACA0E,EACA,gCAIJhE,EAAQlgC,YACNw/B,GACE,cACA,6BACA98C,SAASqgB,eACP,GAAGgL,GAA4BqI,KAAKguB,oBAAoBr2B,GACtDi2B,EAAkB5tB,KAAKgK,SAAWhK,KAAKguB,kBAG3C,oCAIJlE,EAAQlgC,YACNw/B,GACE,QACA,6CACA98C,SAASqgB,eAAegL,GAA4BgF,GAAkB,MAI1E,MAAMsxB,EAAW71B,OAAO1E,EAAUsqB,qBAClC,IAAK5lB,OAAO9I,MAAM2+B,GAAW,CAC3B,MAAMC,EACJD,EACA13C,KAAKkE,MAAMulB,KAAKia,gBAAgBja,KAAKka,aAAela,KAAK2T,gBACvDua,EAAoB,IACtBpE,EAAQlgC,YACNw/B,GACE,QACA,iDACA98C,SAASqgB,eAAegL,GAA4Bu2B,MAGxDpE,EAAQlgC,YACNw/B,GACE,QACA,iDACA98C,SAASqgB,eACPoM,GAAWm1B,EAAoBvxB,QAOzC,MAAMwxB,EAn5BR,SAAoBC,GAElB,IAAIC,EAASruB,KAAKgF,UAElB2E,KAE2C,IAAvC9J,GAAY,gBAAgBkB,SAC9BlB,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErCuU,KAEA+Y,EAAS9yB,GAEToO,MAGEnL,IAA0B,KAAS6W,GAAO,aAC1C7W,IAA0B,KAAY6W,GAAO,YAC7C7W,IAA0B,MAAe6W,GAAO,gBAChD7W,IAA0B,MAAkB6W,GAAO,YACnD7W,IAA0B,MAAqB6W,GAAO,iBACtD7W,IAA0B,MAC5B6W,GAAO,kBACL7W,IAA0B,MAC5B6W,GAAO,iBACL7W,IAA0B,MAC5B6W,GAAO,cACL7W,IAA0B,MAC5B6W,GAAO,iBACL7W,IAA0B,MAC5B6W,GAAO,uBACL7W,IAA0B,MAC5B6W,GAAO,mBACL7W,IAA0B,MAC5B6W,GAAO,uBACL7W,IAA0B,MAC5B6W,GAAO,wBACL7W,IAA0B,MAC5B6W,GAAO,mBAEP7W,IAA0B,MAE1B6W,GAAO,WAEP7W,IACA,MAEA6W,GAAO,iBAEP7W,IACA,MAEA6W,GAAO,iCAETxV,GAAY,wBAAwBkB,OAAS,EAC7ClB,GAAY,yBAAyBkB,OAAS,EAC9ClB,GAAY,mBAAmBkB,OAAS,EACxClB,GAAY,0BAA0BkB,OAAS,EAC/ClB,GAAY,gBAAgBkB,OAAS,EAErChG,GAAcqzB,EAEd,MAAM5V,EAAwB3d,GAE9Bya,KAEAkC,KAEIgB,IAA0B3d,IAC5Bya,KAGF,MAAMgZ,EAAW/yB,GAAe8yB,EAKhC,OAFAtzB,GAAciF,KAAKgK,SAEZskB,EAk0BYC,CAAWX,GACxBY,EAAYliD,SAASm9C,yBAC3B+E,EAAU5kC,YAAYtd,SAASqgB,eAAegL,GAA4Bw2B,KAC1E,MAAMviB,EAAWr1B,KAAKC,MAAO23C,EAAanuB,KAAKgF,UAAa,KAC5D,GAAI5M,OAAOC,SAASuT,IAA0B,IAAbA,EAAgB,CAC/C,MAAM6iB,EAAaniD,SAAS4D,cAAc,SAC1Cu+C,EAAWp9C,YAAc,KAAKu6B,EAAW,kBACzC4iB,EAAU5kC,YAAY6kC,GAExB3E,EAAQlgC,YACNw/B,GACE,cACA,qBACAoF,EACA,4BAIJ,MAAME,EAAkBn4C,KAAKkE,MAAMulB,KAAKia,gBAAgBja,KAAKka,eACvDyU,EAAWp4C,KAAKkE,MACpBulB,KAAKia,gBAAgBja,KAAKka,aAAela,KAAK2T,gBAE1Cib,EAAUD,EAAWD,EAC3B,IAAK1uB,KAAKwR,IAAI,eAAgB,CAC5B,IAAIqd,EAAS,EAAKF,EAAW,GACzBE,EAAS,IAAGA,GAAU,IAC1B,MAAMC,EAAaF,EAAUC,EACvBE,EAAaJ,EAAWE,EACxBG,EAAQ1iD,SAASm9C,yBACvBuF,EAAMplC,YACJtd,SAASqgB,eACP,GAAGoiC,EAAWt2B,sBAAsBq2B,EAAWr2B,sBAAsBo2B,OAGzE/E,EAAQlgC,YACNw/B,GAAa,QAAS,qCAAsC4F,IAIhE,IAAKhvB,KAAKwR,IAAI,gBAAiB,CAC7B,IAAIyd,EAAW,IAAON,EAAW,IAC7BM,EAAW,IAAGA,GAAY,KAC9B,MAAMC,EAAeN,EAAUK,EACzBE,EAAeR,EAAWM,EAC1BG,EAAU9iD,SAASm9C,yBACzB2F,EAAQxlC,YACNtd,SAASqgB,eACP,GAAGwiC,EAAa12B,sBAAsBy2B,EAAaz2B,sBAAsBw2B,OAG7EnF,EAAQlgC,YACNw/B,GAAa,QAAS,sCAAuCgG,IAIjE,IAAKpvB,KAAKwR,IAAI,gBAAiB,CAC7B,IAAI6d,EAAc,OAAUV,EAAW,IACnCU,EAAc,IAAGA,GAAe,KACpC,MAAMC,EAAkBV,EAAUS,EAC5BE,EAAkBZ,EAAWU,EAC7BG,EAAaljD,SAASm9C,yBAC5B+F,EAAW5lC,YACTtd,SAASqgB,eACP,GAAG4iC,EAAgB92B,sBAAsB62B,EAAgB72B,sBAAsB42B,OAGnFvF,EAAQlgC,YACNw/B,GAAa,QAAS,sCAAuCoG,IAIjE,OAAO1F,EAsDa2F,IAGhBzvB,KAAKiF,UAAY,IACnB2kB,EAAMhgC,YAAYs/B,GAAY,YAAa,UACvCx1B,EAAUqrB,OAAOqB,OAAO,CAC1B,MAAMsP,EAAapjD,SAASm9C,yBAC5BiG,EAAW9lC,YACTtd,SAASqgB,eACP,GAAGgL,GAA4BuF,SAA0BvF,GACvDwF,SAIN,MAAMwyB,EAAUrjD,SAAS4D,cAAc,KACvCy/C,EAAQt+C,YAAc,iBACtBs+C,EAAQlhD,UAAY,SACpBkhD,EAAQhK,QAAU,WAChB4B,MAEFmI,EAAW9lC,YAAY+lC,GACvB/F,EAAMhgC,YACJw/B,GACE,QACA,kCACAsG,IAGJ,MAAME,EAAiBtjD,SAASm9C,yBAChCmG,EAAehmC,YACbtd,SAASqgB,eAAe,GAAGgL,GAA4ByF,GAAsB,SAE/E,MAAMyyB,EAAcvjD,SAAS4D,cAAc,KAC3C2/C,EAAYx+C,YAAc,qBAC1Bw+C,EAAYphD,UAAY,SACxBohD,EAAYlK,QAAU,WACa,OAA7BvoB,GAAsB,KACxB4C,KAAKkF,UAAU9H,GAAsB,IAAIoqB,GAAK,IAElDoI,EAAehmC,YAAYimC,GAC3BjG,EAAMhgC,YACJw/B,GACE,QACA,6DAC+B,OAA7BhsB,GAAsB,GAClBA,GAAsB,GACtB,UAENwyB,IAMR,IAAIE,GAAW,EACf,MAAMC,EAA0B,GAChCv+C,OAAO6C,KAAK8iC,IAAclU,SAASj1B,IAC5BgyB,KAAKwR,IAAI2F,GAAanpC,MACzB+hD,EAAwBjgD,KAAKqnC,GAAanpC,IAC1C8hD,GAAW,MAGf,MAAME,EAA0B,GAChCx+C,OAAO6C,KAAK+iC,IAAenU,SAASj1B,IAC7BgyB,KAAKwR,IAAI4F,GAAcppC,MAC1BgiD,EAAwBlgD,KAAKsnC,GAAcppC,IAC3C8hD,GAAW,MAGf,MAAMG,EAA0B,GAChCz+C,OAAO6C,KAAKgjC,IAAYpU,SAASj1B,IAC1BgyB,KAAKwR,IAAI6F,GAAWrpC,MACvBiiD,EAAwBngD,KAAKunC,GAAWrpC,IACxC8hD,GAAW,MAGf,MAAMI,EAAoB,GAC1B1+C,OAAO6C,KAAK2rB,KAAKmwB,UAAUltB,SAASj1B,IAC7BgyB,KAAKwU,YAAYxU,KAAKmwB,SAASniD,MAClCkiD,EAAkBpgD,KAAKkwB,KAAKmwB,SAASniD,IACrC8hD,GAAW,MAGf,MAAMM,EAAkB,GACxB5+C,OAAO6C,KAAK2rB,KAAKqwB,cAAcptB,SAASj1B,IACjCgyB,KAAKwU,YAAYxU,KAAKqwB,aAAariD,MACtCoiD,EAAgBtgD,KAAKkwB,KAAKqwB,aAAariD,IACvC8hD,GAAW,MAGf,MAAMQ,EAAoB,GAC1B9+C,OAAO6C,KAAKijC,IAAYrU,SAASj1B,IAC1BgyB,KAAKwU,YAAY8C,GAAWtpC,MAC/BsiD,EAAkBxgD,KAAKwnC,GAAWtpC,IAClC8hD,GAAW,MAGf,MAAMvb,EACJvU,KAAKwU,YAAY,mBAAqBxU,KAAKwR,IAAI,iBAC3C+e,EAAUvwB,KAAKwR,IAAI,eAuFzB,IArFoB,cAAhBxR,KAAK4R,QAA0Bke,GAAYvb,GAAUgc,KACvD3G,EAAMhgC,YAAYs/B,GAAY,kBAAmB,QAC7Cx1B,EAAUqrB,OAAOsB,MACoB,IAAnC0P,EAAwB9hD,QAC1B27C,EAAMhgC,YACJw/B,GACE,QACA,gCACAE,GAAcyG,KAGmB,IAAnCC,EAAwB/hD,QAC1B27C,EAAMhgC,YACJw/B,GACE,QACA,gCACAE,GAAc0G,KAGmB,IAAnCC,EAAwBhiD,QAC1B27C,EAAMhgC,YACJw/B,GACE,QACA,gCACAE,GAAc2G,KAGa,IAA7BC,EAAkBjiD,QACpB27C,EAAMhgC,YACJw/B,GACE,QACA,oCACAE,GAAc4G,KAGW,IAA3BE,EAAgBniD,QAClB27C,EAAMhgC,YACJw/B,GACE,QACA,kCACAE,GAAc8G,KAGa,IAA7BE,EAAkBriD,QACpB27C,EAAMhgC,YACJw/B,GACE,QACA,kCACAE,GAAcgH,KAIA,cAAhBtwB,KAAK4R,QACPgY,EAAMhgC,YACJw/B,GACE,QACA,kBACA98C,SAASqgB,eAAegL,GAA4BkF,OAGtD0X,GACFqV,EAAMhgC,YACJw/B,GACE,cACA,wBACA98C,SAASqgB,eAAegL,GAA4BmF,KACpD,6BAIFyzB,GACF3G,EAAMhgC,YACJw/B,GACE,QACA,yBACA98C,SAASqgB,eACJpW,KAAKC,MAA2B,KAApBomB,GAAe,IAAc,IAA5C,SAQZgtB,EAAMhgC,YAAYs/B,GAAY,gBAAiB,SAC3Cx1B,EAAUqrB,OAAOuB,KAAM,CAsBzB,GArBAsJ,EAAMhgC,YACJw/B,GACE,QACA,oCACE3yB,EAAY/C,EAAU2gB,YAAc,GAChC,GAAG5d,EAAY/C,EAAU2gB,sBACzB5d,EAAY/C,EAAU2gB,YAAc,IACV,IAAzB3gB,EAAU2gB,WAAmB,UAAY,eAEhD/nC,SAASqgB,eAAegL,GAA4BkN,KAAU,MAGlE+kB,EAAMhgC,YACJw/B,GACE,QACA,0CACE1yB,EAAWhD,EAAU+gB,iBACQ,IAA5B/gB,EAAU+gB,cAAsB,UAAY,cAC/CnoC,SAASqgB,eAAegL,GAA4B6F,GAAoB,MAGxEwC,KAAKwR,IAAI,mBAAoB,CAC/B,MAAM2G,EAAW,GACjB3mC,OAAO6C,KAAK6iC,IAAUjU,SAASj1B,IACxBgyB,KAAKwR,IAAI0F,GAASlpC,KACrBmqC,EAASroC,KAAKonC,GAASlpC,OAGH,IAApBmqC,EAASlqC,QACX27C,EAAMhgC,YACJw/B,GACE,QACA,+BACAE,GAAcnR,KAatB,GATIzkB,EAAUuqB,cACZ2L,EAAMhgC,YACJw/B,GACE,QACA,wBACA98C,SAASqgB,eAAegL,GAA4BqI,KAAKwwB,uBAI3DxwB,KAAK0Q,MAAMC,SAAU,CACvB,MAAM7K,EAAQx5B,SAAS4D,cAAc,QACrC41B,EAAMvE,GAAK,uBACXuE,EAAMiL,UAAY/Q,KAAKgR,QACV,GAAXhR,KAAKiL,KAAYjL,KAAKikB,SAAW,EAAIjkB,KAAKiR,GAAgB,GAAXjR,KAAKiL,MACpD,GAEF2e,EAAMhgC,YACJw/B,GAAa,QAAS,qBAAsBtjB,KAKlD1mB,EAAE,QAAQ4iC,aAAa4H,EAAOxqC,EAAE,QAAQilB,WAAW,IAE/C3Q,EAAUmqB,iBAh4Idz+B,EAAE,QAAQilB,WAAWpB,SAASwtB,IAC5B,GAAIA,EAAYlgB,SAAS,GACvB,GACwC,aAAtCkgB,EAAYlgB,SAAS,GAAG/kB,WACxBkS,GACA,CACA,MAAMgzB,EACJhzB,GAA6BhvB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAC1DG,OAAS,EACR21C,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAMriB,GAAK,iCACXqiB,EAAMn1C,UAAY,UAClB,MAAMkiD,EAAYrkD,SAAS4D,cAAc,OACzCygD,EAAUnlC,UAAY,qCAAqCklC,KACzD1wB,KAAK4wB,iBAAiB3iD,WACnBsI,KAAKkE,MACPi2C,EAA0B1wB,KAAK4wB,iBAAiB3iD,OAAU,SAE7D21C,EAAMh6B,YAAY+mC,GAClBF,EAAY7mC,YAAYg6B,GACxB,MAAM9M,EAAWxqC,SAAS4D,cAAc,OACxC4mC,EAASroC,UAAY,mBACrBqoC,EAAStrB,UAAYkS,GACrB+yB,EAAY7mC,YAAYktB,QACnB,GAA0C,aAAtC2Z,EAAYlgB,SAAS,GAAG/kB,UAA0B,CAC3D,GAAIiS,GAAsB,CACxB,MAAMozB,EACJpzB,GAAqB/uB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAAGG,OAAS,EAC7D21C,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAMriB,GAAK,yBACXqiB,EAAMn1C,UAAY,UAClB,MAAMkiD,EAAYrkD,SAAS4D,cAAc,OACzCygD,EAAUnlC,UAAY,mCAAmCqlC,KACvD7wB,KAAKgJ,eAAe,IAAI/6B,OAAS+xB,KAAKgJ,eAAe8nB,KAAK7iD,WACvDsI,KAAKkE,MACPo2C,GACE7wB,KAAKgJ,eAAe,IAAI/6B,OACvB+xB,KAAKgJ,eAAe8nB,KAAK7iD,QAC3B,SAEJ21C,EAAMh6B,YAAY+mC,GAClBF,EAAYzO,aAAa4B,EAAO6M,EAAYpsB,WAAW,IACvD,MAAMyS,EAAWxqC,SAAS4D,cAAc,OACxC4mC,EAASroC,UAAY,mBACrBqoC,EAAStrB,UAAYiS,GACrBgzB,EAAYzO,aACVlL,EACAxqC,SAASuiC,eAAe,0BAA0BkiB,aAGtD,GAAIpzB,GAA6B,CAC/B,MAAMqzB,EACJrzB,GAA4BjvB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GACzDG,OAAS,EACR21C,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAMriB,GAAK,gCACXqiB,EAAMn1C,UAAY,UAClB,MAAMkiD,EAAYrkD,SAAS4D,cAAc,OACzCygD,EAAUnlC,UAAY,mCAAmCwlC,KACvDhxB,KAAKgJ,eAAeyc,OAAOx3C,WACxBsI,KAAKkE,MACPu2C,EAAwBhxB,KAAKgJ,eAAeyc,OAAOx3C,OAAU,SAEhE21C,EAAMh6B,YAAY+mC,GAClBF,EAAY7mC,YAAYg6B,GACxB,MAAM9M,EAAWxqC,SAAS4D,cAAc,OACxC4mC,EAASroC,UAAY,mBACrBqoC,EAAStrB,UAAYmS,GACrB8yB,EAAY7mC,YAAYktB,QAo3IlC,MAAMma,GAAe,CACnBjS,WAAY,cACZC,YAAa,cACbC,aAAc,eACdS,QAAS,mCACTC,WAAY,aACZC,SAAU,WACVC,cAAe,iBAIXoR,GAA2B,CAC/B/R,oBAAqB,wBACrBC,eAAgB,gBAChBC,eAAgB,iBAChBC,gBAAiB,iBACjBC,iBAAkB,cAClBC,iBAAkB,iBAClBC,kBAAmB,WACnBC,qBAAsB,qBAwBxB,SAASyR,GAAiBnO,EAAQ3pB,GAChC,MAAMiL,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAI71B,UAAY,QAEhB61B,EAAIruB,MAAM6U,QAAU,MACpBwZ,EAAIruB,MAAMuvB,SAAW,OACrBlB,EAAI1a,YAAYtd,SAASqgB,eAAe,GAAG0M,OAC3C,MAAM8vB,EAAO78C,SAAS4D,cAAc,QAiBpC,OAhBAi5C,EAAKlzC,MAAM+U,OAAS,UACpBm+B,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAKlzC,MAAMmG,OAAS,OACpB+sC,EAAKlzC,MAAMkG,MAAQ,OACnBgtC,EAAKlzC,MAAMsU,aAAe,MAC1B4+B,EAAKlzC,MAAMuW,UAAY,SACvB28B,EAAKlzC,MAAM4U,gBAAkB,UAC7Bs+B,EAAKlzC,MAAM2F,MAAQ,QACnButC,EAAKlzC,MAAMuvB,SAAW,OACtB2jB,EAAKlzC,MAAMyvB,cAAgB,SAC3ByjB,EAAK93C,YAAcqiB,EAAUqrB,OAAOiE,GAAU,IAAM,IACpDmG,EAAKxD,QAAU,WACbsD,GAAajG,GACbhjB,KAAK8S,cAEPxO,EAAI1a,YAAYu/B,GACT7kB,EAQT,SAAS8sB,GAAiBpO,GACxB,MAAM1e,EAAMh4B,SAAS4D,cAAc,OAEnC,GADAo0B,EAAI71B,UAAY,UACkB,SAA9BszC,GAAaiB,GAAQ30C,KAAiB,CACxC,MAAMwI,EAAIvK,SAAS4D,cAAc,KAC7B6xC,GAAaiB,GAAQrB,QAAgC,IAAtBjuB,EAAUsvB,GAC3CnsC,EAAEpI,UAAY,aAEdoI,EAAEpI,UAAY,SAEhBoI,EAAE0qB,GAAKwnB,GAA6B/F,EACpCnsC,EAAE8uC,QAAU,YAnzChB,SAAsB3C,GACpBtvB,EAAUsvB,IAAW,EAEjBtvB,EAAUsvB,KAAYjB,GAAaiB,GAAQvB,MAAMxzC,QACnDylB,EAAUsvB,GAAU,EAChBjB,GAAaiB,GAAQrB,SACvBviC,EAAE2pC,GAA6B/F,GAAQv0C,UAAY,eAChD2Q,EAAE2pC,GAA6B/F,GAAQv0C,UAAY,cAEjB,IAA9BszC,GAAaiB,GAAQjwC,MAC9BgvC,GAAaiB,GAAQjwC,OAGvBqM,EAAE2pC,GAA6B/F,GAAQx3B,UACrCu2B,GAAaiB,GAAQvB,MAAM/tB,EAAUsvB,IACvC0D,KAqyCI2K,CAAarO,IAEfnsC,EAAExF,YAAc0wC,GAAaiB,GAAQvB,MAAM/tB,EAAUsvB,IACrD1e,EAAI1a,YAAY/S,GAChB,MAAM4qC,EAAQn1C,SAAS4D,cAAc,SAGrC,OAFAuxC,EAAMpwC,YAAc0wC,GAAaiB,GAAQtB,KACzCpd,EAAI1a,YAAY63B,GACTnd,EAET,GAAkC,QAA9Byd,GAAaiB,GAAQ30C,KAAgB,CACvC,MAAMm1C,EAASl3C,SAAS4D,cAAc,OACtCszC,EAAO/0C,UAAY,YACnB,MAAMm1C,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAM3tC,MAAMq7C,MAAQ,OACpB1N,EAAMp4B,UAAYu2B,GAAaiB,GAAQtB,KACvC8B,EAAO55B,YAAYg6B,GACnB,MAAM2N,EAAUjlD,SAAS4D,cAAc,OACvCqhD,EAAQhwB,GAAK,SAASyhB,SACtBuO,EAAQt7C,MAAMq7C,MAAQ,QACtBC,EAAQ/lC,UAAY,GAAGkI,EAAUsvB,MACjCQ,EAAO55B,YAAY2nC,GACnB,MAAMC,EAASllD,SAAS4D,cAAc,SACtCshD,EAAO/iD,UAAY,SACnB+iD,EAAOjwB,GAAK,SAASyhB,IACrBwO,EAAOv7C,MAAMwU,MAAQ,OACrB+mC,EAAOnjD,KAAO,QACdmjD,EAAOt3C,IAAM,IACbs3C,EAAOp3C,IAAM,MACbo3C,EAAOC,KAAO,IACdD,EAAOpgD,MAAQsiB,EAAUsvB,GACzBwO,EAAOl/B,QAAU,WACf02B,GAAmBhG,IAErBwO,EAAOE,SAAW,WAChB1I,GAAmBhG,IAErBQ,EAAO55B,YAAY4nC,GACnBltB,EAAI1a,YAAY45B,GAChB,MAAM3sC,EAAIvK,SAAS4D,cAAc,KAYjC,OAXA2G,EAAEpI,UAAY,SACdoI,EAAE8uC,QAAU,WACVzC,GACExvB,EAAUsvB,EAAOpuC,QAAQ,SAAU,aACnCouC,EAAOpuC,QAAQ,SAAU,SACzBouC,GACA,IAGJnsC,EAAExF,YAAc,aAChBizB,EAAI1a,YAAY/S,GACTytB,EAET,GAAkC,QAA9Byd,GAAaiB,GAAQ30C,KAAgB,CACvC,MAAM86C,EAAO78C,SAAS4D,cAAc,QACpCi5C,EAAK16C,UAAY,SACjB06C,EAAK93C,YAAc,GAAG0wC,GAAaiB,GAAQvB,SAC3Cnd,EAAI1a,YAAYu/B,GAChB,MAAMwI,EAAQrlD,SAAS4D,cAAc,SACrCyhD,EAAMpwB,GAAKwnB,GAA6B/F,EACxC2O,EAAMljD,UAAY,SAClBkjD,EAAMtjD,KAAO,OACbsjD,EAAMC,UAAW,EACjBD,EAAM//C,aAAa,QAAS8hB,EAAUsvB,IACtC2O,EAAM17C,MAAMkG,MAAQ,QACpBmoB,EAAI1a,YAAY+nC,GAChBrtB,EAAI1a,YAAYtd,SAASqgB,eAAe,MACxC,MAAMklC,EAAcvlD,SAAS4D,cAAc,SAC3C2hD,EAAYtwB,GAAK,GAAGwnB,GAA6B/F,UACjD6O,EAAYpjD,UAAY,SACxBojD,EAAYxjD,KAAO,OACnBwjD,EAAYjgD,aAAa,QAAS8hB,EAAUsvB,IAC5C,MAAMnsC,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE8uC,QAAU,WACV3lB,KAAK8xB,OAAOD,EAAYE,UAAW,CACjC,CACE,OACA,WACEr+B,EAAU,GAAGsvB,KAAY5jC,EAAE,WAAgC4jC,WAAgB5xC,MAC3Es1C,KACA1mB,KAAKgyB,cACLhyB,KAAK8S,eAGT,YAGJj8B,EAAExF,YAAc,OAChBizB,EAAI1a,YAAY/S,GAChB,MAAM4qC,EAAQn1C,SAAS4D,cAAc,SAGrC,OAFAuxC,EAAMpwC,YAAc0wC,GAAaiB,GAAQtB,KACzCpd,EAAI1a,YAAY63B,GACTnd,EAET,GAAkC,UAA9Byd,GAAaiB,GAAQ30C,KAAkB,CACzCi2B,EAAI71B,UAAY,GAChB,IAAK,IAAIT,EAAI,EAAGA,EAAI8nB,EAAO7nB,OAAQD,IAAK,CACtC,MAAMikD,EAAW3lD,SAAS4D,cAAc,OACxC+hD,EAASxjD,UAAY,UACrB,MAAMkjD,EAAQrlD,SAAS4D,cAAc,SACrCyhD,EAAMpwB,GAAKzL,EAAO9nB,GAClB2jD,EAAM17C,MAAMkG,MAAQ,OACpBw1C,EAAM//C,aAAa,QAAS8hB,EAAUoC,OAAOA,EAAO9nB,KACpDikD,EAASroC,YAAY+nC,GAQrB,IAAI5kD,GAAQ4kD,EAAO,CAAEvjC,MAAM,EAAMnQ,SAAU,QAAS4P,QAPrC,WACb6F,EAAUoC,OAAOppB,KAAKmD,cAAc0xB,IAAM70B,KAAK8gB,cAC/C0zB,KACAwF,KACA1mB,KAAK8S,gBAIP,MAAM2O,EAAQn1C,SAAS4D,cAAc,SACrCuxC,EAAMpwC,YAAc0wC,GAAajsB,OAAO4rB,KAAK5rB,EAAO9nB,IACpDikD,EAASroC,YAAY63B,GACrBnd,EAAI1a,YAAYqoC,GAGlB,OADAnJ,KAAkBx7C,OACXg3B,EAET,GAAkC,aAA9Byd,GAAaiB,GAAQ30C,KAAqB,CAC5C,MAAM86C,EAAO78C,SAAS4D,cAAc,QACpCi5C,EAAK16C,UAAY,SACjB06C,EAAK93C,YAAc,GAAG0wC,GAAaiB,GAAQvB,SAC3Cnd,EAAI1a,YAAYu/B,GAChB,MAAMwI,EAAQrlD,SAAS4D,cAAc,SACrCyhD,EAAMpwB,GAAKwnB,GAA6B/F,EACxC2O,EAAMljD,UAAY,SAClBkjD,EAAMtjD,KAAO,SACbsjD,EAAMvgD,MAAQsiB,EAAUsvB,GACxB2O,EAAMz3C,IAAM6nC,GAAaiB,GAAQ9oC,IACjCy3C,EAAMv3C,IAAM2nC,GAAaiB,GAAQ5oC,IACjCu3C,EAAMr/B,QAAU,WACV5lB,KAAK0E,MAAQ1E,KAAK0N,KAAKvL,QAAQiqB,IAAI,QACvCpF,EAAUsvB,GAAUt2C,KAAK0E,MACzBs1C,KACA5F,MAEFxc,EAAI1a,YAAY+nC,GAChBrtB,EAAI1a,YAAYtd,SAASqgB,eAAe,MACxC,MAAM80B,EAAQn1C,SAAS4D,cAAc,SAGrC,OAFAuxC,EAAMpwC,YAAc0wC,GAAaiB,GAAQtB,KACzCpd,EAAI1a,YAAY63B,GACTnd,EAET,OAAOA,EAyTT,SAAS4tB,GAAU7+C,GACjB,GAA2B,IAAvBqgB,EAAUyT,UAA4C,IAA1BzT,EAAU0T,YAAmB,CAC3D,MAAM+qB,EAAiBr3C,SAASsE,EAAE,cAAcnJ,MAAMmG,OAAQ,IAC9D4jB,KAAKoyB,QAAUD,EACf9+C,IACA2sB,KAAKoyB,QAAUD,OAEf9+C,IAuBJ,SAASg/C,KAEPn9B,EAAgBiD,SAAWA,SAE3BA,SAAWR,GAEXzC,EAAgBogB,eAAiBtV,KAAKsV,eACtCtV,KAAKsV,eAAiB,WACpBpgB,EAAgBogB,iBAChBja,GAAY,EACZ6E,GAAcsT,KAAKC,MACnB1T,GAAiByT,KAAKC,OAGxBve,EAAgBqV,QAAU,GAC1BrV,EAAgBqV,QAAQ/kB,KAAOwa,KAAKuK,QAAQ/kB,KAC5C0P,EAAgBqV,QAAQ+nB,QAAU,IAAI7iD,SACpC,UAAUuwB,KAAKuK,QAAQ/kB,KAAK/O,WAAW5B,MAAM,QAAQ6C,KAAK,kBAD1B,GAGlCsoB,KAAKuK,QAAQ/kB,KAAO,SAAU+sC,EAAMl5B,EAAMvI,GACxCoE,EAAgBqV,QAAQ+nB,QAAQC,EAAMl5B,EAAMvI,IAG9CoE,EAAgBqV,QAAQioB,OAASxyB,KAAKuK,QAAQioB,OAC9Ct9B,EAAgBqV,QAAQkoB,UAAY,IAAIhjD,SACtC,UAAUuwB,KAAKuK,QAAQioB,OACpB/7C,WACA5B,MAAM,SACN6C,KAAK,mBAJ0B,GAMpCsoB,KAAKuK,QAAQioB,OAAS,WACpBt9B,EAAgBqV,QAAQkoB,YA9H5B,WACE,GAA4B,UAAxBzyB,KAAKuK,QAAQzZ,OAAoB,CACnC,IAAI4hC,EAAa,EAEa,IAA5Bh/B,EAAUqc,eACgB,IAA1Brc,EAAU4X,aAC0B,OAApClsB,EAAE,gCAEFszC,EAAatzC,EAAE,8BAA8BpF,aAAe,GAE9DgmB,KAAKuK,QAAQooB,IAAI18C,MAAMsC,IAAM,GAAGhC,KAAK2D,IACnCY,SAASklB,KAAKuK,QAAQooB,IAAI18C,MAAMsC,IAAK,IACrC6G,EAAE,QAAQpF,aACRoF,EAAE,UAAUpF,aACZgmB,KAAKuK,QAAQqoB,GAAG54C,aAChB04C,EACA,SA+GJG,IAGF39B,EAAgB49B,gBAAkB9yB,KAAK8yB,gBACvC9yB,KAAK8yB,gBAAkB,WACrBZ,GAAUh9B,EAAgB49B,kBAG5B59B,EAAgB69B,cAAgB/yB,KAAK+yB,cACrC/yB,KAAK+yB,cAAgB,WACnBb,GAAUh9B,EAAgB69B,gBAI5B3zC,EAAE,aAAazN,oBAAoB,QAASquB,KAAKgzB,aAAa,GAC9D5zC,EAAE,aAAahS,iBACb,SACA,WACE8kD,GAAUlyB,KAAKgzB,gBAEjB,GAGF99B,EAAgB+rB,gBAAkBjhB,KAAKihB,gBACvCjhB,KAAKihB,gBAAkB,WACrB/rB,EAAgB+rB,kBArHlBhsB,EAAuB,GACvBzjB,OAAO6C,KAAK2rB,KAAKiE,iBAAiBhB,SAASj1B,IACJ,OAAjCoR,EAAE,UAAUpR,KAAK63C,cACnB5wB,EAAqBjnB,GAAKoR,EAAE,UAAUpR,KAAK63C,YAC3CzmC,EAAE,UAAUpR,KAAK63C,YAAc,WACxB7lB,KAAKizB,YACRjzB,KAAKkzB,WAAWxmD,MAChBszB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,IAAK,GAAGz5C,OAE/B,SAEFgyB,KAAKuK,QAAQie,eAwGnBxoB,KAAKsV,kBAGPpgB,EAAgBi+B,aAAenzB,KAAKmzB,aAKpCnzB,KAAKmzB,aAAe,SAAU/yB,KAEzB1M,EAAUorB,cACX9e,KAAK8X,YAAY1X,GAAMyG,UAAY7G,KAAK8G,UACtB,IAAlB9G,KAAK+C,UAEL7N,EAAgBi+B,aAAa/yB,IAIjClL,EAAgBk+B,mBAAqBpzB,KAAKozB,mBAM1CpzB,KAAKozB,mBAAqB,SAAUC,GAClCn+B,EAAgBk+B,mBAAmBC,GA3hEvC,SAAqBA,GACnB,GAAiC,IAA7B3/B,EAAUiqB,eAAsB,CAClC,MAAO2V,EAAUC,GA9DrB,SAA6BF,GAC3B1pB,KAGwBvqB,EAAE,iBAAiBmxB,SAAS,GAAG/kB,UAAUi3B,SAC/D,aAEmBxnB,GAAiBo4B,EACjCr4B,GAAgBq4B,EAGrB,IAAI3xB,EAAQ,EACZ,GACE1G,KAAkBS,IAClBR,KAAmBS,GAEnB,IAAK,IAAI1tB,EAAIgyB,KAAK8X,YAAY7pC,OAAS,EAAGD,GAAK,IAAKA,EAClD,GAAIgyB,KAAK8X,YAAY9pC,EAAI,GAAGo0B,OAAS,EAAG,CACtC,MAAM0iB,EAAkBllB,GAAWI,KAAK8X,YAAY9pC,GAAGuE,MAAMA,KAC7DqtB,GAAWklB,GAAiB1iB,QAAU,EACtC1H,IAAqB,EACrBgH,EACE9B,GAAWklB,GAAiB5iB,UAC5BlC,KAAK2C,eACHpsB,KAAK6D,IACH,EACAwlB,GAAWklB,GAAiB1iB,OAC1B,EACAxC,GAAWklB,GAAiB3iB,MAEpCT,EAAQ1B,KAAK4C,oBAAoBhD,GAAWklB,GAAkBpjB,GAC9DA,EAAQnrB,KAAKoL,KAAK+f,GAClB,MAKN,MAAM8W,EAAwB3d,GAO9B,OANAya,KAEAkC,KACIgB,IAA0B3d,IAC5Bya,KAEK,CAAC/Z,GAAeyE,KAAKgF,UAAWtD,GAkBH8xB,CAAoBH,GAChDI,EAAgB16B,GACpBw6B,GAAiBD,EAAWtzB,KAAKgF,YAE7B0uB,EAAqB/7B,GAA4B27B,EAAWtzB,KAAKgF,WAEvE5lB,EAAE,kBAAkBnJ,MAAM09C,UAAY,OACtCv0C,EAAE,kBAAkBnJ,MAAMsvB,OAAS,MACnCnmB,EAAE,kBAAkBwK,YAAYtd,SAAS4D,cAAc,QAAQzB,UAC7D,OACF,MAAM61B,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMs8B,SAAW,QACrBjO,EAAIruB,MAAMuW,UAAY,SACtB8X,EAAIjzB,YAAc,wCAAwCsmB,GACxD27B,OACII,sBACNt0C,EAAE,kBAAkBwK,YAAY0a,GAChC,MAAMsvB,EAAOtnD,SAAS4D,cAAc,OACpC0jD,EAAK39C,MAAMs8B,SAAW,QACtBqhB,EAAK39C,MAAMuW,UAAY,SACvBonC,EAAKviD,YAAc,gBAAgBoiD,yBACnCr0C,EAAE,kBAAkBwK,YAAYgqC,IAqgEhCC,CAAYR,IAGdn+B,EAAgB4+B,kBAAoB9zB,KAAK8zB,kBAIzC9zB,KAAK8zB,kBAAoB,SAAUC,GACjC7+B,EAAgB4+B,kBAAkBC,GArgEtC,WAEE,GAEwE,QADrE30C,EAAE,gBAAgB3Q,UAAUC,MAAM,aACjC0Q,EAAE,gBAAgBmxB,SAAS,GAAGt6B,MAAMqB,WAAW5I,MAAM,WAEvD,IAAK,IAAIV,EAAI,EAAGA,EAAIoR,EAAE,gBAAgBilB,WAAWp2B,OAAQD,IACL,cAA9CoR,EAAE,gBAAgBilB,WAAWr2B,GAAGS,YAClC2Q,EAAE,gBAAgBmxB,SAASviC,GAAG63C,YAAc,WAC1CxD,KACAriB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACXpG,EAAE,gBACF,mDAAmDwc,WACnD,QAEFoE,KAAKuK,QAAQie,UAEfppC,EAAE,gBAAgBmxB,SAASviC,GAAGg4C,WAAa,WACzChmB,KAAKuK,QAAQypB,WAAa,IAm/DhCC,IAGF/+B,EAAgB4d,WAAa9S,KAAK8S,WAClC9S,KAAK8S,WAAa,gBAEwB,IAA9BgW,KAAmBxqC,aACiB,IAApCwqC,KAAmBxqC,OAAOC,QAElC2W,EAAgB4d,aAvXtB,WACE,MAAM8Q,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAMn1C,UAAY,QAEE,UAAhBuxB,KAAK6Q,QACP+S,EAAMvyC,YAAc,0BApExB,SAAqBuyC,GACnB,MAAM4F,EAAOl9C,SAASm9C,yBACtBD,EAAK5/B,YAAYg6B,GAEjBpyC,OAAO6C,KAAK48C,IAAchuB,SAASse,IACjC,MAAM2S,EAAc/C,GAAiB5P,EAAO0P,GAAa1P,IACzDiI,EAAK5/B,YAAYsqC,GACbxgC,EAAUqrB,OAAOwC,KAGL,iBAAVA,EACF/vC,OAAO6C,KAAK68C,IAA0BjuB,SAASkxB,IAC7C,MAAMC,EAAiBjD,GACrBgD,EACAjD,GAAyBiD,IAE3BC,EAAen+C,MAAMuvB,SAAW,OAChC4uB,EAAen+C,MAAM6U,QAAU,MAC/B0+B,EAAK5/B,YAAYwqC,GACb1gC,EAAUqrB,OAAOoV,IACnB3iD,OAAO6C,KAAK0tC,IAAc9e,SAAS1b,IAC7Bw6B,GAAax6B,GAAQg6B,QAAU4S,GACjC3K,EAAK5/B,YAAYwnC,GAAiB7pC,UAK1C/V,OAAO6C,KAAK0tC,IAAc9e,SAAS1b,IAC7Bw6B,GAAax6B,GAAQg6B,QAAUA,GACjCiI,EAAK5/B,YAAYwnC,GAAiB7pC,WAM5C,MAAM8sC,EAAS/nD,SAAS4D,cAAc,OACtCmkD,EAAO5lD,UAAY,UACnB,MAAM6lD,EAAYhoD,SAAS4D,cAAc,KACzCokD,EAAU7lD,UAAY,SACtB6lD,EAAU3O,QAAU,WAClByB,GAAW/L,KAEbiZ,EAAUjjD,YAAc,kBACxBgjD,EAAOzqC,YAAY0qC,GACnB9K,EAAK5/B,YAAYyqC,GAEjBj1C,EAAE,QAAQilB,WAAW,GAAG2d,aACtBwH,EACApqC,EAAE,QAAQilB,WAAW,GAAGA,WACtBjlB,EAAE,QAAQilB,WAAW,GAAGA,WAAWp2B,OAAS,IAoB9CsmD,CAAY3Q,IACa,UAAhB5jB,KAAK6Q,OACVnd,EAAUod,QACZ8S,EAAMvyC,YAAc,4BACpBs4C,GAAa/F,IAEU,QAAhB5jB,KAAK6Q,SACd+S,EAAMvyC,YAAc,kBApWxB,SAAqBuyC,GACnB,MAAM4Q,EAAOloD,SAAS4D,cAAc,OACpCskD,EAAK/lD,UAAY,aAEjB,MAAM06C,EAAO78C,SAAS4D,cAAc,QAmBpC,GAlBAi5C,EAAKlzC,MAAM+U,OAAS,UACpBm+B,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAKlzC,MAAMmG,OAAS,OACpB+sC,EAAKlzC,MAAMkG,MAAQ,OACnBgtC,EAAKlzC,MAAMsU,aAAe,MAC1B4+B,EAAKlzC,MAAMuW,UAAY,SACvB28B,EAAKlzC,MAAM4U,gBAAkB,UAC7Bs+B,EAAKlzC,MAAM2F,MAAQ,QACnButC,EAAKlzC,MAAMuvB,SAAW,OACtB2jB,EAAKlzC,MAAMyvB,cAAgB,SAC3ByjB,EAAK93C,YAAcqiB,EAAUqrB,OAAOwB,QAAU,IAAM,IACpD4I,EAAKxD,QAAU,WACbsD,GAAa,WACbjpB,KAAK8S,cAEP8Q,EAAMh6B,YAAYu/B,GAClBqL,EAAK5qC,YAAYg6B,GAEblwB,EAAUqrB,OAAOwB,QAAS,CAC5B,MAAMkU,EAAcnoD,SAAS4D,cAAc,OAC3CukD,EAAYjpC,UA/nRO,siBAgoRnBgpC,EAAK5qC,YAAY6qC,GACjB,MAAMC,EAAQpoD,SAAS4D,cAAc,OACrCwkD,EAAMlpC,UAxnRiB,gwBAynRvBgpC,EAAK5qC,YAAY8qC,GAGnB,MAAMC,EAAOv1C,EAAE,QAAQmxB,SAAS,GAChCokB,EAAK3S,aAAawS,EAAMG,EAAKpkB,SAAS,IAoUpCqkB,CAAYhR,IA0WViR,KAIJ3/B,EAAgB8b,QAAUhR,KAAKgR,QAC/B9a,EAAY,SAAU8C,EAAM87B,GAC1B,OAAI18B,OAAO9I,MAAM0J,IAASA,GAAQ,EACzB9D,EAAgB8b,QAAQhY,EAAM87B,GAChC/7B,GAAWC,EAAOgH,KAAKiL,IAAK,IAGrC/V,EAAgB6/B,MAAQ/0B,KAAK+0B,MAC7B/0B,KAAK+0B,MAAQ,WACX7/B,EAAgB6/B,QAGhB,IAAInR,EAAQ,iBACQ,UAAhB5jB,KAAK4R,SAAoBgS,EAAQ,gBACrClsB,GAAQ,GAAGsI,KAAKikB,SAAW,cAAgB,KAAKtsB,GAA4BqI,KAAK8G,YAC9D,IAAjB9G,KAAK8G,QAAgB,SAAW,eAC5B8c,IA9WV,WACE,GAAI5jB,KAAKikB,UAAgC,IAApBvwB,EAAUgE,MAC7BprB,SAASs3C,MAAQlsB,QACZ,GAAwB,IAApBhE,EAAUgE,MAAa,CAChC,IAEIs9B,EACAC,EACAC,EAJAC,GAAQ,EACRC,GAAQ,EAORJ,EAFAt2B,GACEA,GAA0B0iB,MAClB,KAAK7qC,KAAKoL,KAAK+c,GAA0BynB,KAAOnmB,KAAKiL,QAErD,KAAK10B,KAAKoL,KAAK+c,GAA0BynB,KAAOnmB,KAAKiL,QACvDjL,KAAKwR,IAAI,uBAOJ,OANL,IACRpZ,OAAOhZ,EAAE,sBAAsB/N,aAAe,EAAI,IAAM,KACvDkF,KAAKoL,MACLqe,KAAKqR,aAAaC,OAAOI,QAAU1R,KAAKqR,aAAaC,OAAOtY,MAC3DgH,KAAKiL,QAIP1W,IACF4gC,GAAQ,EACRF,EAAU,OAGQ,cAAhBj1B,KAAK4R,SACPwjB,GAAQ,EAENF,EADE5gC,EACQ,KAAK/d,KAAKoL,KAAKgd,GAAsBwnB,KAAOnmB,KAAKiL,QAEjD,IACR7S,OAAOhZ,EAAE,uBAAuB/N,aAAe,EAAI,IAAM,KACxDkF,KAAKoL,MACLqe,KAAKqR,aAAaQ,SAASH,QAC1B1R,KAAKqR,aAAaQ,SAAS7Y,MAC3BgH,KAAKiL,SAMb,IAAI77B,EAAMsoB,GACY,MAAlBtoB,EAAI2L,OAAO,KACb3L,EAAMA,EAAIg3B,UAAUh3B,EAAIimD,YAAY,KAAO,IAE7C/oD,SAASs3C,MAAQ,GACfoR,GAAWG,EAAQF,EAAU,KAAOG,EAAQF,EAAU,OACpD9lD,SACC,GAAwB,IAApBskB,EAAUgE,MAAa,CAChC,IAAItoB,EAAM,GACNkmD,GAAQ,EACR52B,KACF42B,GAAQ,EACJ52B,GAA0B0iB,MAC5BhyC,GAAO,KAAKmH,KAAKoL,KAAK+c,GAA0BynB,KAAOnmB,KAAKiL,QACzD77B,GAAO,KAAKmH,KAAKoL,KAAK+c,GAA0BynB,KAAOnmB,KAAKiL,SAE/D1W,IACF+gC,GAAQ,EACRlmD,GAAO,OAEW,cAAhB4wB,KAAK4R,QAA0Btd,IACjCllB,GAAO,KAAKmH,KAAKoL,KAAKgd,GAAsBwnB,KAAOnmB,KAAKiL,QACxDqqB,GAAQ,GAENA,IAAOlmD,GAAO,OAClB,IAAIw0C,EAAQ,iBACQ,UAAhB5jB,KAAK4R,SAAoBgS,EAAQ,gBACrCx0C,GAAOw0C,EACPt3C,SAASs3C,MAAQx0C,GAsSjBmmD,GAxRJ,WACE,MAAMnQ,EAAgB7uC,KAAK6D,IACzB,EACA4lB,KAAKqlB,oBACH9uC,KAAKkE,MAAMulB,KAAKia,gBAAgBja,KAAKka,aAAela,KAAK2T,gBACvD,IAED3T,KAAK2T,cAAgB3T,KAAKka,eAGzBja,EAAYD,KAAKgR,SACnBwC,KAAKC,MAAQzT,KAAKC,WAAa,IAAQD,KAAKiL,KAC7C,GAEH,IAAI77B,EAAM,GACVA,GAAO,kCACS,KAAd6wB,EAAmB,gBAAkBA,aAEvC7wB,GAAO,2BACH4wB,KAAKgK,SAAW,IAClB56B,GAAO,uCAAuCuoB,GAC5CqI,KAAKgK,2BACYrS,GAA4BqI,KAAKgK,cACpD56B,GAAO,4BAGPA,GADEmrB,GAAyB,EACpB,6CACAA,GAAyB,EAE9B,6GAEK,uCAAuC5C,GAC5C4C,6BACyB5C,GACzB4C,uBACmB5C,GACnB4C,mCAEJnrB,GAAO,2BACPA,GAAO,eAAeuoB,GACpBytB,8CAEFh2C,GACEskB,EAAUkqB,oBACN,oCAAoChf,iDAAwEjH,GAC1GgF,GACA,iDAEF,GAENvd,EAAE,iBAAiBoM,UAAYpc,EAyO7BomD,IAmDJ,SAASC,KACP5S,KACA/H,KACAM,KAGAtnB,EAAetiB,OAAO6C,KAAK2rB,KAAKmkB,MAAMl2C,OAj+EtC6mB,EAAUxoB,SAAS4D,cAAc,SACjC4kB,EAAQzmB,KAAO,WACfymB,EAAQyM,GAAK,QAEbj1B,SAASopD,KAAK9rC,YAAYkL,GA/vL5B,WACE,MAAM0R,EAASl6B,SAAS4D,cAAc,OACtCs2B,EAAOjF,GAAK,WACZiF,EAAOvwB,MAAMmG,OAAS,OACtBoqB,EAAOvwB,MAAMkG,MAAQ,OACrBqqB,EAAOvwB,MAAMgI,SAAW,WACxBuoB,EAAOvwB,MAAMqV,QAAU,OACvBkb,EAAOvwB,MAAM4U,gBAAkB,UAC/B2b,EAAOvwB,MAAM8V,gBAAkB,+CAC/Bya,EAAOvwB,MAAM0/C,UAAY,kBACzBnvB,EAAOvwB,MAAMoV,SAAW,OACxBmb,EAAOvwB,MAAM2/C,WACX,uDAEF,MAAMC,EAAQrvB,EAAO5c,YAAYtd,SAAS4D,cAAc,UACxD2lD,EAAM5/C,MAAMkG,MAAQ,OACpB05C,EAAM5/C,MAAMuW,UAAY,SACxBqpC,EAAM5/C,MAAMoW,WAAa,SACzB,MAAMypC,EAAQD,EAAMjsC,YAAYtd,SAAS4D,cAAc,UAEjD6lD,EAAW,SAAU18B,EAAMzd,GAC/B,MAAMo6C,EAAK1pD,SAAS4D,cAAc,MAIlC,OAHA8lD,EAAG//C,MAAMuW,UAAY,QACrBwpC,EAAGvnD,UAAY0mB,EAAevZ,EAC9Bo6C,EAAG3kD,YAAcgoB,EACV28B,GAEH3nD,EAAOynD,EAAMlsC,YAAYtd,SAAS4D,cAAc,OACtD7B,EAAK4H,MAAMo0B,WAAa,OACxBh8B,EAAKub,YAAYmsC,EAAS,aAAsCxgC,IAClDugC,EAAMlsC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYmsC,EAAS,eAAgB1gC,IAChCygC,EAAMlsC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYmsC,EAAS,iBAAkB1gC,IAC7BygC,EAAMlsC,YAAYtd,SAAS4D,cAAc,OACjD0Z,YAAYmsC,EAAS,YAAa1gC,IAEvCjW,EAAE,WAAWwK,YAAY4c,GAEzBh1B,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjCg4B,GAA2Bh4B,MAwrQ7BioD,GAniQF,WACE,MAAM9uB,EAAW76B,SAAS4D,cAAc,OACxCi3B,EAAS5F,GAAK,aACd4F,EAASlxB,MAAMgI,SAAW,WAC1BkpB,EAASlxB,MAAMqV,QAAU,OACzB6b,EAASlxB,MAAMmG,OAAS,MACxB+qB,EAASlxB,MAAMuvB,SAAW,OAC1B2B,EAASlxB,MAAMo0B,WAAa,OAC5BlD,EAASlxB,MAAM4U,gBAAkB,QAGjC,MAAMqrC,EAAe9wB,GAAY,eAAgB,cAAe,CAC9D,CAAE7D,GAAI,qBAAsB3lB,MAAO+Z,GACnC,CAAE4L,GAAI,kBAAmB3lB,MAAO8Z,KAElCyR,EAASvd,YAAYssC,GAGrB,MAAMC,EAAgB/wB,GAAY,gBAAiB,gBAAiB,CAClE,CAAE7D,GAAI,sBAAuB3lB,MAAO+Z,GACpC,CAAE4L,GAAI,mBAAoB3lB,MAAO4Z,KAEnC2R,EAASvd,YAAYusC,GACrB,MAAMC,EAAqB9pD,SAAS4D,cAAc,OAClDkmD,EAAmB70B,GAAK,uBACxB4F,EAASvd,YAAYwsC,GAErBh3C,EAAE,WAAWwK,YAAYud,GAygQzBkvB,GAhvFF,WACE,MAAMC,EAAahqD,SAAS4D,cAAc,OAC1ComD,EAAW/0B,GAAK,eAChB+0B,EAAWrgD,MAAMkG,MAAQ,OACzBm6C,EAAWrgD,MAAM4U,gBAAkB,QACnCyrC,EAAWrgD,MAAMuW,UAAY,SAC7B8pC,EAAWrgD,MAAMo0B,WAAa,OAC9BisB,EAAWrgD,MAAMqV,QAAU,OAC3BgrC,EAAWrgD,MAAMyU,OAAS,KAC1B4rC,EAAWtQ,WAAa,WACtBhmB,KAAKuK,QAAQvlB,QAGf,MAAMqtB,EAAc/lC,SAAS4D,cAAc,OAC3CmiC,EAAYzoB,YA7Dd,WACE,MAAM2sC,EAASjqD,SAAS4D,cAAc,OACtCqmD,EAAOtgD,MAAMs8B,SAAW,QACxBgkB,EAAOtgD,MAAMw0B,aAAe,MAC5B,MAAMmZ,EAAQt3C,SAAS4D,cAAc,OACrC0zC,EAAMn1C,UAAY,OAClBm1C,EAAM3tC,MAAMw0B,aAAe,MAC3BmZ,EAAMvyC,YAAc,SACpBklD,EAAO3sC,YAAYg6B,GAEnB,MAAM4S,EAAa,SAAU56C,EAAOyd,GAClC,MAAMiL,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMyvB,cAAgB,SAC1B,MAAMyjB,EAAO78C,SAAS4D,cAAc,QAQpC,OAPAi5C,EAAK16C,UAAY2mB,EAAexZ,EAChCutC,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAKlzC,MAAMmG,OAAS,OACpB+sC,EAAKlzC,MAAMkG,MAAQ,OACnBgtC,EAAKlzC,MAAMwvB,YAAc,MACzBnB,EAAI1a,YAAYu/B,GAChB7kB,EAAI1a,YAAYtd,SAASqgB,eAAe0M,IACjCiL,GAoBT,OAjBAiyB,EAAO3sC,YAAY4sC,EAAWnhC,EAAW,iCACzCkhC,EAAO3sC,YAAY4sC,EAAWlhC,EAAY,6BAC1CihC,EAAO3sC,YACL4sC,EACEjhC,EACA,uDAGJghC,EAAO3sC,YACL4sC,EACEhhC,EACA,wDAGJ+gC,EAAO3sC,YAAY4sC,EAAW/gC,EAAU,8BACxC8gC,EAAO3sC,YAAY4sC,EAAW9gC,EAAa,iCAC3C6gC,EAAO3sC,YAAY4sC,EAAW7gC,EAAW,4BAClC4gC,EAoBiBE,IACxBH,EAAWzQ,YAAc,WACvB7lB,KAAKuK,QAAQ/kB,KAAK9Y,KAAM8lC,OAAOH,EAAY7mB,WAAY,UAGzD,MAAMkrC,EAAgB,SAAUn1B,EAAI3lB,GAClC,MAAMutC,EAAO78C,SAAS4D,cAAc,QAMpC,OALAi5C,EAAK5nB,GAAKA,EACV4nB,EAAK16C,UAAY0mB,EAAevZ,EAChCutC,EAAKlzC,MAAMkG,MAAQ,qBACnBgtC,EAAKlzC,MAAMqV,QAAU,eACrB69B,EAAK93C,YAAc,IACZ83C,GAETmN,EAAW1sC,YAAY8sC,EAAc,mBAAoBrhC,IACzDihC,EAAW1sC,YAAY8sC,EAAc,oBAAqBphC,IAC1DghC,EAAW1sC,YAAY8sC,EAAc,qBAAsBnhC,IAC3D+gC,EAAW1sC,YAAY8sC,EAAc,qBAAsBlhC,IAC3D8gC,EAAW1sC,YAAY8sC,EAAc,kBAAmBjhC,IACxD6gC,EAAW1sC,YAAY8sC,EAAc,qBAAsBhhC,IAC3D4gC,EAAW1sC,YAAY8sC,EAAc,mBAAoB/gC,IAEzDvW,EAAE,YAAY+N,WAAW60B,aACvBsU,EACAl3C,EAAE,YAAY+N,WAAWkX,WAAW,IA2sFtCsyB,GAh9EF,WACE,MAAMC,EAActqD,SAAS4D,cAAc,OAC3C0mD,EAAYr1B,GAAK,gBACjBq1B,EAAY3gD,MAAMkG,MAAQ,OAC1By6C,EAAY3gD,MAAMmG,OAAS,OAC3Bw6C,EAAY3gD,MAAM4U,gBAAkB,QACpC+rC,EAAY3gD,MAAMqV,QAAU,OAC5BsrC,EAAY3gD,MAAMyU,OAAS,aAC3BksC,EAAY3gD,MAAMgI,SAAW,WAC7BmB,EAAE,WAAWwK,YAAYgtC,GAw8EzBC,GApiJF,WACE,MAAMjY,EAAUtyC,SAAS4D,cAAc,QACvC0uC,EAAQrd,GAAK,YACbqd,EAAQ16B,IAAM,gBACd06B,EAAQyC,KAAO,uDACf/0C,SAASwqD,qBAAqB,QAAQ,GAAGltC,YAAYg1B,GAgiJrDmY,GACAvlD,OAAO6C,KAAK0hB,GAAakN,SAASj1B,KA1qFpC,SAA6BqkC,EAAahZ,EAAMkZ,GAC9C,MAAMoN,EAAUrzC,SAAS4D,cAAc,OACvCyvC,EAAQpe,GAAK8Q,EACb,MAAMqP,EAAOp1C,SAAS4D,cAAc,OACpCwxC,EAAKzrC,MAAMs8B,SAAWA,EACtBmP,EAAKzrC,MAAMw0B,aAAe,MAC1B,MAAMnG,EAAMh4B,SAAS4D,cAAc,OACnCo0B,EAAIruB,MAAMuW,UAAY,OACtB8X,EAAIjzB,YAAcgoB,EAClBqoB,EAAK93B,YAAY0a,GACjBqb,EAAQ/1B,YAAY83B,GACpB1rB,EAAsBqc,GAAesN,EAgqFnCqX,CACEjhC,EAAY/nB,GAAG,GACf+nB,EAAY/nB,GAAG,GACf+nB,EAAY/nB,GAAG,OAtiFrB,WACE,MAAM2hD,EAAUrjD,SAAS4D,cAAc,KACvCy/C,EAAQpuB,GAAK,6BACbouB,EAAQt+C,YAAc,iBACtBs+C,EAAQlhD,UAAY,SACpBkhD,EAAQhK,QAAU,WAChB4B,MAEFoI,EAAQ3J,WAAa,WACnBhmB,KAAKuK,QAAQypB,WAAa,GAE5BrE,EAAQ9J,YAAc,WACpB7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,KAAM,YAE7B,QAEFznB,KAAKuK,QAAQie,UAEfppC,EAAE,oBAAoBmxB,SAAS,GAAG0mB,OAAOtH,GACzC,MAAME,EAAcvjD,SAAS4D,cAAc,KAC3C2/C,EAAYtuB,GAAK,2BACjBsuB,EAAYx+C,YAAc,qBAC1Bw+C,EAAYphD,UAAY,SACxBohD,EAAYlK,QAAU,WACa,OAA7BvoB,GAAsB,KACxB4C,KAAKkF,UAAU9H,GAAsB,IAAIoqB,GAAK,IAElDqI,EAAY7J,WAAa,WACvBhmB,KAAKuK,QAAQypB,WAAa,GAE5BnE,EAAYhK,YAAc,WACxB7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,KAAM,gBAE7B,QAEFznB,KAAKuK,QAAQie,UAEfppC,EAAE,oBAAoBmxB,SAAS,GAAG0mB,OAAOpH,GA4/EzCqH,GAr+EA93C,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,aAAanJ,MAAMstB,QAAU,MAE/BnkB,EAAE,YAAYnJ,MAAMqV,QAAU,OAC9BlM,EAAE,YAAYnJ,MAAM,aAAe,OAqInCzE,OAAO6C,KAAK2rB,KAAKoB,SAAS6B,SAASj1B,IACjC,MAAMk2B,EAAKlE,KAAKoB,QAAQpzB,GACiB,OAArCoR,EAAE,UAAU8kB,EAAG3C,MAAMskB,cACvB9wB,EAAmB/mB,GAAKoR,EAAE,UAAU8kB,EAAG3C,MAAMskB,YAC7CzmC,EAAE,UAAU8kB,EAAG3C,MAAMskB,YAAc,WACjC7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,IAAK,GAAGz5C,OAE/B,SAEFgyB,KAAKuK,QAAQie,cAUfxoB,KAAKm3B,aACPpjC,EAAoB3U,EAAE,SAASymC,YAC/BzmC,EAAE,SAASymC,YAAc,WACvB7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,IAAK,UAE5B,QAEFznB,KAAKuK,QAAQie,WAkFjBn0B,EAAgB2L,KAAK3L,cACrB2L,KAAK3L,cAAgB,WACnBA,IA3EE2L,KAAKoB,QAAQoM,KAAK1L,iBACpB1iB,EAAE,gBAAgBymC,YAAc,WAC9B7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,KAAM,sBAE7B,QAEFznB,KAAKuK,QAAQie,UAEfhxC,MAAM+6C,KAAKnzC,EAAE,cAAcmxB,UAAUtN,SAASm0B,IAC5C,MAAMC,EAASD,EAAM71B,GAAGxP,OAAO,GAC/BqlC,EAAMvR,YAAc,WAClB7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,IAAK,CAAC,GAAG4P,EAAO,KAAM,GAAGA,EAAO,SAEvD,QAEFr3B,KAAKuK,QAAQie,cAsDjBF,KAhDJ,WACE,GAAItoB,KAAKoB,QAAQF,OAAOY,eAAgB,CACtC,IAAK,IAAI9zB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3BoR,EAAE,YAAYpR,KAAK63C,YAAc,WAC/B7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,MAAOz5C,KAE9B,QAEFgyB,KAAKuK,QAAQie,UAGjB,IAAK,IAAIx6C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BoR,EAAE,aAAapR,KAAK63C,YAAc,WAChC7lB,KAAKuK,QAAQge,QAAU,EACvBvoB,KAAKuK,QAAQ/kB,KACX9Y,MACA,WACE,OAAO+6C,GAAc,MAAO,CAC1Bz5C,EACAgyB,KAAKoB,QAAQF,OAAOC,SAAS+I,KAAKl8B,OAGtC,QAEFgyB,KAAKuK,QAAQie,WAqBjB8O,GACA3O,MAEF3oB,KAAK3L,gBAoqELjV,EAAE,wBAAwBymC,YAAc,WACtC1vB,EAAsB,GAExB/W,EAAE,wBAAwB4mC,WAAa,WACrC7vB,EAAsB,EACtB6J,KAAKuK,QAAQvlB,OACbxT,OAAO6C,KAAK2rB,KAAKkF,WAAWjC,SAASj1B,IACnCqoB,EAA0BroB,GAAK,MA4DnCqkD,KACA1J,KACA3oB,KAAKsV,iBAEL8R,KACAnxB,EAAoB+J,KAAKikB,SAErBjkB,KAAK0Q,MAAM6mB,OACbv3B,KAAKw3B,MACH,0CAGFx3B,KAAKy3B,OACH,yCACA,GACA,GACA,EACA,GAGJz3B,KAAK03B,IAAI,eAoEX,MAAMC,GAAK,CACTrqD,KApDF,WACEw1C,IAAiB,EACjB,IAAI8U,GAAU,EACV53B,KAAKoiB,UAAYhqB,OAz8SF,WA08SjBw/B,EAAUC,QACR,8JAGAD,IACFnC,KACAz1B,KAAK83B,aAAa,OAAQrnB,IAC1BzQ,KAAK83B,aAAa,QAAS9T,IAC3BlB,IAAiB,IAyCnBiV,KA5BF,SAAc3oD,GACZ,MAAM6yC,EAAO5yC,KAAKC,MAAMF,GACxByzC,KACAuE,GAAWnF,EAAKE,UACK,YAAjBF,EAAKG,UACHpiB,KAAK0Q,MAAM6mB,OACbv3B,KAAKw3B,MACH,iGAGFx3B,KAAKy3B,OACH,gGACA,GACA,GACA,EACA,KAcNxV,KAAMA,IAGRjiB,KAAKg4B,YAAY,gBAAiBL,KArgTlC,IAxgHS","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index 618be14c..e5de48ea 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -100,6 +100,13 @@ const Config = { UpdateBuildings(); }, ), + PPDisplayTime: new SettingStandard( + 'bool', + 'BarsColors', + ['PP As Value (Standard)', 'PP As Time Unit'], + 'Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.', + false, + ), UpBarColor: new SettingStandard( 'bool', 'BarsColors', diff --git a/src/Data/SettingsDefault.js b/src/Data/SettingsDefault.js index 57883e86..f6f8cc3d 100644 --- a/src/Data/SettingsDefault.js +++ b/src/Data/SettingsDefault.js @@ -5,6 +5,7 @@ const ConfigDefault = { TimerBarPos: 0, TimerBarOverlay: 2, BuildColor: 1, + PPDisplayTime: 0, UpBarColor: 1, UpgradeBarFixedPos: 1, CalcWrink: 0, diff --git a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js index 7741ab7c..a3764f9c 100644 --- a/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js +++ b/src/Disp/BeautifyAndFormatting/BeautifyFormatting.js @@ -96,6 +96,7 @@ export function Beautify(num, floats, forced) { export function FormatTime(time, longFormat) { let formattedTime = time; if (time === Infinity) return time; + if (time < 0) return 'Negative time period'; formattedTime = Math.ceil(time); const y = Math.floor(formattedTime / 31557600); const d = Math.floor((formattedTime % 31557600) / 86400); diff --git a/src/Disp/InfoBars/BottomBar.js b/src/Disp/InfoBars/BottomBar.js index 0f6e5d2e..33ecf842 100644 --- a/src/Disp/InfoBars/BottomBar.js +++ b/src/Disp/InfoBars/BottomBar.js @@ -9,6 +9,7 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { VersionMajor, VersionMinor } from '../../Data/Moddata'; import { Beautify, + FormatTime, GetTimeColor, } from '../BeautifyAndFormatting/BeautifyFormatting'; import GetCPS from '../HelperFunctions/GetCPS'; @@ -94,9 +95,13 @@ export function UpdateBotBar() { l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[ count ].className = ColorTextPre + target[i].color; + let PPString; + if (CMOptions.PPDisplayTime) + PPString = FormatTime(Math.round(target[i].pp)); + else PPString = Beautify(Math.round(target[i].pp), 2); l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[ count - ].textContent = Beautify(Math.round(target[i].pp), 2); + ].textContent = PPString; const timeColor = GetTimeColor( (Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), diff --git a/src/Disp/Tooltips/TypesOfTooltips/Building.js b/src/Disp/Tooltips/TypesOfTooltips/Building.js index 829c4ced..48e626b7 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/Building.js +++ b/src/Disp/Tooltips/TypesOfTooltips/Building.js @@ -8,6 +8,7 @@ import { CMOptions } from '../../../Config/VariablesAndData'; import { SimObjects } from '../../../Sim/VariablesAndData'; import { Beautify, + FormatTime, GetTimeColor, } from '../../BeautifyAndFormatting/BeautifyFormatting'; import GetCPS from '../../HelperFunctions/GetCPS'; @@ -55,7 +56,9 @@ export default function Building() { }01% of income)`; } l('CMTooltipBorder').className = ColorTextPre + target[TooltipName].color; - l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); + if (CMOptions.PPDisplayTime) + l('CMTooltipPP').textContent = FormatTime(target[TooltipName].pp); + else l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2); l('CMTooltipPP').className = ColorTextPre + target[TooltipName].color; const timeColor = GetTimeColor( (TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(), diff --git a/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js b/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js index 908f6937..e33feeaa 100644 --- a/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js +++ b/src/Disp/Tooltips/TypesOfTooltips/Upgrade.js @@ -5,6 +5,7 @@ import { import { CMOptions } from '../../../Config/VariablesAndData'; import { Beautify, + FormatTime, GetTimeColor, } from '../../BeautifyAndFormatting/BeautifyFormatting'; import GetCPS from '../../HelperFunctions/GetCPS'; @@ -70,10 +71,15 @@ export default function Upgrade() { )} Clicks`; l('CMTooltipPP').style.color = 'white'; } else { - l('CMTooltipPP').textContent = Beautify( - CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, - 2, - ); + if (CMOptions.PPDisplayTime) + l('CMTooltipPP').textContent = FormatTime( + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, + ); + else + l('CMTooltipPP').textContent = Beautify( + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp, + 2, + ); l('CMTooltipPP').className = ColorTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color; From 00edec127cc91e2689a767b77c4a20030bc1ff23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Wed, 17 Mar 2021 23:52:23 +0100 Subject: [PATCH 20/25] Buttons to hide upgrade and building sections #47 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- .../Toggles/ToggleSectionHideButtons.js | 13 +++++++ src/Data/SettingsData.js | 13 ++++++- src/Data/SettingsDefault.js | 1 + .../CreateSectionHideButtons.js | 38 +++++++++++++++++++ src/Main/Initialization.js | 2 + 8 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 src/Config/Toggles/ToggleSectionHideButtons.js create mode 100644 src/Disp/Initialization/CreateSectionHideButtons.js diff --git a/CookieMonster.js b/CookieMonster.js index 0f2bac71..b8a7943e 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(i.push(Ho[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 0f2bac71..b8a7943e 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],R={};let H,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,Re,He,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Rt={},Ht={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(Re===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],Re=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ro=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ho=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ro).forEach((e=>{oo(Ro[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ho).forEach((e=>{oo(Ho[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Rt.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){He=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Buttons OFF","Extra Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||He){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),He&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),He=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Rt=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Rt=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Ht=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(R[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Rn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),n=!0)}));const a=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(a.push(Ho[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Hn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),He=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Hn).forEach((t=>{const n=In(t,Hn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Rn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Rt?Rt.wrath?`[W${Math.ceil(Rt.life/Game.fps)}]`:`[G${Math.ceil(Rt.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Ht.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Rt&&(t=!0,Rt.wrath?e+=`[W${Math.ceil(Rt.life/Game.fps)}]`:e+=`[G${Math.ceil(Rt.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Ht.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),R[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),H=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(i.push(Ho[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 17e75ec0..5eb72462 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","HideSectionsButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB9kB,IAAjB+kB,EACH,OAAOA,EAAa9mB,QAGrB,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOknB,WAC7B,IAAOlnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBI,EAAEzL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBI,EAAI,CAAChnB,EAASinB,KACjC,IAAI,IAAIC,KAAOD,EACXL,EAAoBO,EAAEF,EAAYC,KAASN,EAAoBO,EAAEnnB,EAASknB,IAC5E/hB,OAAOC,eAAepF,EAASknB,EAAK,CAAEE,YAAY,EAAM/hB,IAAK4hB,EAAWC,MAQ3EN,EAAoBO,EAAI,CAAC1hB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAoCA,IAAIwhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Config/Toggles/ToggleSectionHideButtons.js b/src/Config/Toggles/ToggleSectionHideButtons.js new file mode 100644 index 00000000..73f92b13 --- /dev/null +++ b/src/Config/Toggles/ToggleSectionHideButtons.js @@ -0,0 +1,13 @@ +import { CMOptions } from '../VariablesAndData'; + +/** + * This function updates the display setting of the two objects created by CM.Disp.CreateWrinklerButtons() + * It is called by changes in CM.Options.WrinklerButtons + */ +export default function ToggleSectionHideButtons() { + if (CMOptions.HideSectionsButtons) { + l('CMSectionHidButtons').style.display = ''; + } else { + l('CMSectionHidButtons').style.display = 'none'; + } +} diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index e5de48ea..462ff0fc 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -4,6 +4,7 @@ import { ToggleTimerBar, ToggleTimerBarPos } from '../Config/SpecificToggles'; import ToggleBotBar from '../Config/Toggles/ToggleBotBar'; import ToggleDetailedTime from '../Config/Toggles/ToggleDetailedTime'; import ToggleGCTimer from '../Config/Toggles/ToggleGCTimer'; +import ToggleSectionHideButtons from '../Config/Toggles/ToggleSectionHideButtons'; import ToggleToolWarnPos from '../Config/Toggles/ToggleToolWarnPos'; import ToggleUpgradeBarAndColor from '../Config/Toggles/ToggleUpgradeBarAndColor'; import ToggleUpgradeBarFixedPos from '../Config/Toggles/ToggleUpgradeBarFixedPos'; @@ -735,13 +736,23 @@ const Config = { WrinklerButtons: new SettingStandard( 'bool', 'Miscellaneous', - ['Extra Buttons OFF', 'Extra Buttons ON'], + ['Extra Wrinkler Buttons OFF', 'Extra Wrinkler Buttons ON'], 'Show buttons for popping wrinklers at bottom of cookie section', true, function () { ToggleWrinklerButtons(); }, ), + HideSectionsButtons: new SettingStandard( + 'bool', + 'Miscellaneous', + ['Hide Upgrades/Buildings Button OFF', 'Hide Upgrades/Buildings Button ON'], + 'Show buttons for hiding and showing the upgrades and buildings section in the right column', + true, + function () { + ToggleSectionHideButtons(); + }, + ), BulkBuyBlock: new SettingStandard( 'bool', 'Miscellaneous', diff --git a/src/Data/SettingsDefault.js b/src/Data/SettingsDefault.js index f6f8cc3d..2d28d439 100644 --- a/src/Data/SettingsDefault.js +++ b/src/Data/SettingsDefault.js @@ -101,6 +101,7 @@ const ConfigDefault = { GCTimer: 1, Favicon: 1, WrinklerButtons: 1, + HideSectionsButtons: 0, BulkBuyBlock: 0, Header: { BarsColors: 1, diff --git a/src/Disp/Initialization/CreateSectionHideButtons.js b/src/Disp/Initialization/CreateSectionHideButtons.js new file mode 100644 index 00000000..c4b001ec --- /dev/null +++ b/src/Disp/Initialization/CreateSectionHideButtons.js @@ -0,0 +1,38 @@ +/** + * This function creates two objects at the top of the right column that allowing hiding the upgrade and building section + */ +export default function CreateSectionHideButtons() { + const div = document.createElement('div'); + div.id = 'CMSectionHidButtons'; + div.style.textAlign = 'center'; + const a = document.createElement('a'); + a.className = 'option'; + a.onclick = function () { + if (l('upgrades').style.display === 'flex') { + l('upgrades').style.display = 'none'; + l('toggleUpgrades').style.display = 'none'; + l('techUpgrades').style.display = 'none'; + l('vaultUpgrades').style.display = 'none'; + } else { + l('upgrades').style.display = 'flex'; + if (l('toggleUpgrades').children.length !== 0) + l('toggleUpgrades').style.display = 'block'; + if (l('techUpgrades').children.length !== 0) + l('techUpgrades').style.display = 'block'; + if (l('vaultUpgrades').children.length !== 0) + l('vaultUpgrades').style.display = 'block'; + } + }; + a.textContent = 'Hide/Show Upgrades'; + div.appendChild(a); + const b = document.createElement('a'); + b.className = 'option'; + b.onclick = function () { + if (l('products').style.display === 'grid') + l('products').style.display = 'none'; + else l('products').style.display = 'grid'; + }; + b.textContent = 'Hide/Show Buildings'; + div.appendChild(b); + l('store').insertBefore(div, l('store').childNodes[2]); +} diff --git a/src/Main/Initialization.js b/src/Main/Initialization.js index f3677692..080a0bbc 100644 --- a/src/Main/Initialization.js +++ b/src/Main/Initialization.js @@ -6,6 +6,7 @@ import { VersionMajor, VersionMinor } from '../Data/Moddata'; import CreateUpgradeBar from '../Disp/BuildingsUpgrades/UpgradeBar'; import { CreateBotBar } from '../Disp/InfoBars/BottomBar'; import { CreateTimerBar } from '../Disp/InfoBars/TimerBar'; +import CreateSectionHideButtons from '../Disp/Initialization/CreateSectionHideButtons'; import CreateWrinklerButtons from '../Disp/Initialization/CreateWrinklerButton'; import CreateCssArea from '../Disp/Initialization/CssArea'; import UpdateBuildingUpgradeStyle from '../Disp/Initialization/UpdateBuildingUpgradeStyle'; @@ -37,6 +38,7 @@ export default function InitializeCookieMonster() { CreateTimerBar(); CreateUpgradeBar(); CreateWhiteScreen(); + CreateSectionHideButtons(); CreateFavicon(); Object.keys(TooltipText).forEach((i) => { CreateSimpleTooltip( From 6b2425fa19d08f041f8d1f36bc94818681c18b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 18 Mar 2021 00:00:23 +0100 Subject: [PATCH 21/25] Updated CONTRIBUTING.md to reflect new structure --- .github/CONTRIBUTING.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ff2fd180..cec4bcc4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,8 +1,6 @@ -The following is a description of the our approach to the project. +Cookie Monster is written to modify Cookie Clicker as little as possible. This means the data is copied to simulate instead of actually modifying the current values and reverting later. The benefit is that CM should never mess up any data. The downside is that there is an extra overhead to copy and store the copied data. -Cookie Monster is written to modify Cookie Clicker as little as possible. This means the data is copied to simulate instead of actually modifying the current values and reverting later. The benefit is that CM should never mess up any data. The downside is that there is an extra overhead to copy and store the copied data. - -Here is a description of what should be stored in each of the source JS. Make edits to the source file first and then use the combine file to compile the final file: +The following is a short description of the various `src` directories and their contents: JS | Description -- | - @@ -10,13 +8,11 @@ Cache | Functions related to creating and storing data cache Config | Functions related to manipulating CM configuration Data | Hard coded values Disp | Functions related to displaying CM's UI -Footer | The footer of CM's JS (not modified often or ever) -Header | The header of CM's JS (not modified often or ever) +InitSaveLoad | Functions related to registering the CM object with the Game's Modding API Main | Functions related to the main loop and initializing CM Sim | Functions related to simulate something These are some additional guidelines: - Try to use DOM as much as possible instead of using string manipulation to modify HTML. -- Please be descriptive of your commits. If the commit is related to an issue or PR, please add the issue/PR number to the commit message. -- Try to follow the formatting and annotation as specified by JSCode +- Please be descriptive of your commits. If the commit is related to an issue or PR, please add the issue/PR number to the commit message. - PR's should target the `dev` branch From 2c309c04c227e2e764d39f05a53ad6c9adde8276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 18 Mar 2021 00:01:59 +0100 Subject: [PATCH 22/25] Update bug_report.md --- .github/ISSUE_TEMPLATE/bug_report.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e42ac539..4c954e9d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -19,5 +19,6 @@ If applicable, add screenshots to help explain your problem. **Save file** ``` -If applicable please copy your save file here +Please add a save file here. +This makes debugging much easier as we do not always have a good test save to debug the issue ``` From 8f5e40d3be336ccfcb729bf61abcc5e1251affb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 18 Mar 2021 09:15:30 +0100 Subject: [PATCH 23/25] Display chance for random drops in stats #25 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- src/Disp/MenuSections/AddStatsPage.js | 134 +--------- src/Disp/MenuSections/CreateStatsSections.js | 247 ++++++++++++++++++- 5 files changed, 250 insertions(+), 137 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index b8a7943e..f0c141f8 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(i.push(Ho[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index b8a7943e..f0c141f8 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}let n=!1;const i=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(i.push(Ho[e]),n=!0)}));const a=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(a.push(Ro[e]),n=!0)}));const r=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(r.push($o[e]),n=!0)}));const s=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(s.push(Game.eggDrops[e]),n=!0)}));const c=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(c.push(Game.rareEggDrops[e]),n=!0)}));const d=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(d.push(Io[e]),n=!0)}));const p=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),u=Game.Has("Century egg");if(("christmas"===Game.season||n||p||u)&&(o.appendChild(jn("Season Specials","Sea")),e.Header.Sea&&(0!==i.length&&o.appendChild(Un("basic","Halloween Cookies Left to Buy",Dn(i))),0!==a.length&&o.appendChild(Un("basic","Christmas Cookies Left to Buy",Dn(a))),0!==r.length&&o.appendChild(Un("basic","Valentine Cookies Left to Buy",Dn(r))),0!==s.length&&o.appendChild(Un("basic","Normal Easter Eggs Left to Unlock",Dn(s))),0!==c.length&&o.appendChild(Un("basic","Rare Easter Eggs Left to Unlock",Dn(c))),0!==d.length&&o.appendChild(Un("basic","Rare Plant Drops Left to Unlock",Dn(d))),"christmas"===Game.season&&o.appendChild(Un("basic","Reindeer Reward",document.createTextNode(le(pt)))),p&&o.appendChild(Un("withTooltip","Chocolate Egg Cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),u&&o.appendChild(Un("basic","Century Egg Multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%"))))),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 5eb72462..48fba0ee 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","HideSectionsButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","HideSectionsButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","failRateHalloween","dropRateMult","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","SeasonSection","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/src/Disp/MenuSections/AddStatsPage.js b/src/Disp/MenuSections/AddStatsPage.js index 2315b4b4..ddede578 100644 --- a/src/Disp/MenuSections/AddStatsPage.js +++ b/src/Disp/MenuSections/AddStatsPage.js @@ -8,9 +8,6 @@ import { CMOptions } from '../../Config/VariablesAndData'; import { CacheAverageClicks, - CacheCentEgg, - CacheLastChoEgg, - CacheSeaSpec, CacheWrinklersFattest, CacheWrinklersNormal, CacheWrinklersTotal, @@ -110,136 +107,7 @@ export default function AddMenuStats(title) { } } - let specDisp = false; - const missingHalloweenCookies = []; - Object.keys(GameData.HalloCookies).forEach((i) => { - if (!Game.Has(GameData.HalloCookies[i])) { - missingHalloweenCookies.push(GameData.HalloCookies[i]); - specDisp = true; - } - }); - const missingChristmasCookies = []; - Object.keys(GameData.ChristCookies).forEach((i) => { - if (!Game.Has(GameData.ChristCookies[i])) { - missingChristmasCookies.push(GameData.ChristCookies[i]); - specDisp = true; - } - }); - const missingValentineCookies = []; - Object.keys(GameData.ValCookies).forEach((i) => { - if (!Game.Has(GameData.ValCookies[i])) { - missingValentineCookies.push(GameData.ValCookies[i]); - specDisp = true; - } - }); - const missingNormalEggs = []; - Object.keys(Game.eggDrops).forEach((i) => { - if (!Game.HasUnlocked(Game.eggDrops[i])) { - missingNormalEggs.push(Game.eggDrops[i]); - specDisp = true; - } - }); - const missingRareEggs = []; - Object.keys(Game.rareEggDrops).forEach((i) => { - if (!Game.HasUnlocked(Game.rareEggDrops[i])) { - missingRareEggs.push(Game.rareEggDrops[i]); - specDisp = true; - } - }); - const missingPlantDrops = []; - Object.keys(GameData.PlantDrops).forEach((i) => { - if (!Game.HasUnlocked(GameData.PlantDrops[i])) { - missingPlantDrops.push(GameData.PlantDrops[i]); - specDisp = true; - } - }); - const choEgg = - Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'); - const centEgg = Game.Has('Century egg'); - - if (Game.season === 'christmas' || specDisp || choEgg || centEgg) { - stats.appendChild(CreateElements.StatsHeader('Season Specials', 'Sea')); - if (CMOptions.Header.Sea) { - if (missingHalloweenCookies.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Halloween Cookies Left to Buy', - CreateElements.StatsMissDisp(missingHalloweenCookies), - ), - ); - if (missingChristmasCookies.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Christmas Cookies Left to Buy', - CreateElements.StatsMissDisp(missingChristmasCookies), - ), - ); - if (missingValentineCookies.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Valentine Cookies Left to Buy', - CreateElements.StatsMissDisp(missingValentineCookies), - ), - ); - if (missingNormalEggs.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Normal Easter Eggs Left to Unlock', - CreateElements.StatsMissDisp(missingNormalEggs), - ), - ); - if (missingRareEggs.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Rare Easter Eggs Left to Unlock', - CreateElements.StatsMissDisp(missingRareEggs), - ), - ); - if (missingPlantDrops.length !== 0) - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Rare Plant Drops Left to Unlock', - CreateElements.StatsMissDisp(missingPlantDrops), - ), - ); - - if (Game.season === 'christmas') - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Reindeer Reward', - document.createTextNode(Beautify(CacheSeaSpec)), - ), - ); - if (choEgg) { - stats.appendChild( - CreateElements.StatsListing( - 'withTooltip', - 'Chocolate Egg Cookies', - document.createTextNode(Beautify(CacheLastChoEgg)), - 'ChoEggTooltipPlaceholder', - ), - ); - } - if (centEgg) { - stats.appendChild( - CreateElements.StatsListing( - 'basic', - 'Century Egg Multiplier', - document.createTextNode( - `${Math.round((CacheCentEgg - 1) * 10000) / 100}%`, - ), - ), - ); - } - } - } + stats.appendChild(CreateSections.SeasonSection()); stats.appendChild(CreateElements.StatsHeader('Miscellaneous', 'Misc')); if (CMOptions.Header.Misc) { diff --git a/src/Disp/MenuSections/CreateStatsSections.js b/src/Disp/MenuSections/CreateStatsSections.js index 28d3f122..ee11f277 100644 --- a/src/Disp/MenuSections/CreateStatsSections.js +++ b/src/Disp/MenuSections/CreateStatsSections.js @@ -1,8 +1,10 @@ /** Functions to create the individual sections of the Statistics page */ +import * as GameData from '../../Data/Gamedata'; import { MaxChainCookieReward } from '../../Cache/Stats/ChainCookies'; import { CacheAvgCPSWithChoEgg, + CacheCentEgg, CacheChainFrenzyMaxReward, CacheChainFrenzyRequired, CacheChainFrenzyRequiredNext, @@ -30,6 +32,7 @@ import { CacheLuckyWrathRewardFrenzy, CacheNoGoldSwitchCookiesPS, CacheRealCookiesEarned, + CacheSeaSpec, CacheWrathCookiesMult, CacheWrinklersTotal, } from '../../Cache/VariablesAndData'; @@ -43,7 +46,7 @@ import { import GetCPS from '../HelperFunctions/GetCPS'; import GetWrinkConfigBank from '../HelperFunctions/GetWrinkConfigBank'; import { ColorGreen, ColorRed, ColorTextPre } from '../VariablesAndData'; -import { StatsListing } from './CreateDOMElements'; +import { StatsListing, StatsHeader, StatsMissDisp } from './CreateDOMElements'; /** * This function creates the "Lucky" section of the stats page @@ -741,3 +744,245 @@ export function PrestigeSection() { return section; } + +/** + * This function creates the "Season Specials" section of the stats page + * @returns {object} section The object contating the Season Specials section + */ +export function SeasonSection() { + const section = document.createElement('div'); + section.className = 'CMStatsSeasonSection'; + + let specDisp = false; + const missingHalloweenCookies = []; + Object.keys(GameData.HalloCookies).forEach((i) => { + if (!Game.Has(GameData.HalloCookies[i])) { + missingHalloweenCookies.push(GameData.HalloCookies[i]); + specDisp = true; + } + }); + const missingChristmasCookies = []; + Object.keys(GameData.ChristCookies).forEach((i) => { + if (!Game.Has(GameData.ChristCookies[i])) { + missingChristmasCookies.push(GameData.ChristCookies[i]); + specDisp = true; + } + }); + const missingValentineCookies = []; + Object.keys(GameData.ValCookies).forEach((i) => { + if (!Game.Has(GameData.ValCookies[i])) { + missingValentineCookies.push(GameData.ValCookies[i]); + specDisp = true; + } + }); + const missingNormalEggs = []; + Object.keys(Game.eggDrops).forEach((i) => { + if (!Game.HasUnlocked(Game.eggDrops[i])) { + missingNormalEggs.push(Game.eggDrops[i]); + specDisp = true; + } + }); + const missingRareEggs = []; + Object.keys(Game.rareEggDrops).forEach((i) => { + if (!Game.HasUnlocked(Game.rareEggDrops[i])) { + missingRareEggs.push(Game.rareEggDrops[i]); + specDisp = true; + } + }); + const missingPlantDrops = []; + Object.keys(GameData.PlantDrops).forEach((i) => { + if (!Game.HasUnlocked(GameData.PlantDrops[i])) { + missingPlantDrops.push(GameData.PlantDrops[i]); + specDisp = true; + } + }); + const choEgg = + Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'); + const centEgg = Game.Has('Century egg'); + + if (Game.season === 'christmas' || specDisp || choEgg || centEgg) { + section.appendChild(StatsHeader('Season Specials', 'Sea')); + if (CMOptions.Header.Sea) { + if (missingHalloweenCookies.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Halloween cookies left to buy', + StatsMissDisp(missingHalloweenCookies), + ), + ); + let failRateHalloween = 0.95; + if (Game.HasAchiev('Spooky cookies')) failRateHalloween = 0.8; + if (Game.Has('Starterror')) failRateHalloween *= 0.9; + failRateHalloween *= 1 / Game.dropRateMult(); + if (Game.hasGod) { + const godLvl = Game.hasGod('seasons'); + if (godLvl === 1) failRateHalloween *= 0.9; + else if (godLvl === 2) failRateHalloween *= 0.95; + else if (godLvl === 3) failRateHalloween *= 0.97; + } + section.appendChild( + StatsListing( + 'basic', + 'Chance of receiving a cookie from wrinkler/shiny wrinkler', + document.createTextNode( + `${Beautify((1 - failRateHalloween) * 100)}% / ${Beautify( + (1 - failRateHalloween * 0.9) * 100, + )}%`, + ), + ), + ); + } + if (missingChristmasCookies.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Christmas cookies left to buy', + StatsMissDisp(missingChristmasCookies), + ), + ); + let failRateChristmas = 0.8; + if (Game.HasAchiev('Let it snow')) failRateChristmas = 0.6; + failRateChristmas *= 1 / Game.dropRateMult(); + if (Game.Has('Starsnow')) failRateChristmas *= 0.95; + if (Game.hasGod) { + const godLvl = Game.hasGod('seasons'); + if (godLvl === 1) failRateChristmas *= 0.9; + else if (godLvl === 2) failRateChristmas *= 0.95; + else if (godLvl === 3) failRateChristmas *= 0.97; + } + section.appendChild( + StatsListing( + 'basic', + 'Chance of receiving a cookie from reindeer', + document.createTextNode( + `${Beautify((1 - failRateChristmas) * 100)}%`, + ), + ), + ); + } + if (missingValentineCookies.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Valentine cookies left to buy', + StatsMissDisp(missingValentineCookies), + ), + ); + } + const dropRateEgg = function (StartingFailRate) { + let failRateEgg = StartingFailRate * (1 / Game.dropRateMult()); + if (Game.HasAchiev('Hide & seek champion')) failRateEgg *= 0.7; + if (Game.Has('Omelette')) failRateEgg *= 0.9; + if (Game.Has('Starspawn')) failRateEgg *= 0.9; + if (Game.hasGod) { + const godLvl = Game.hasGod('seasons'); + if (godLvl === 1) failRateEgg *= 0.9; + else if (godLvl === 2) failRateEgg *= 0.95; + else if (godLvl === 3) failRateEgg *= 0.97; + } + // Calculations courtesy of @svschouw, at https://github.com/Aktanusa/CookieMonster/issues/25 + const succesRateEgg = 1 - failRateEgg; + const obtainedEggs = Game.eggDrops.length - missingNormalEggs.length; + const obtainedRareEggs = + Game.rareEggDrops.length - missingRareEggs.length; + const pNormal1 = + succesRateEgg * 0.9 * (1 - obtainedEggs / Game.eggDrops.length); + const pRare1 = + succesRateEgg * + 0.1 * + (1 - obtainedRareEggs / Game.rareEggDrops.length); + const pRedropNormal = + succesRateEgg * 0.9 * (obtainedEggs / Game.eggDrops.length); + const pRedropRare = + succesRateEgg * 0.1 * (obtainedRareEggs / Game.rareEggDrops.length); + const pRedrop = pRedropNormal + pRedropRare; + const pNormal2 = + pRedrop * 0.9 * (1 - obtainedEggs / Game.eggDrops.length); + const pRare2 = + pRedrop * 0.1 * (1 - obtainedRareEggs / Game.rareEggDrops.length); + return [pNormal1 + pNormal2, pRare1 + pRare2]; + }; + if (missingNormalEggs.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Normal easter eggs left to unlock', + StatsMissDisp(missingNormalEggs), + ), + ); + section.appendChild( + StatsListing( + 'basic', + 'Chance of receiving an egg from wrinkler/golden cookie', + document.createTextNode( + `${Beautify(dropRateEgg(0.98)[0] * 100)}% / ${Beautify( + dropRateEgg(0.9)[0] * 100, + )}%`, + ), + ), + ); + } + if (missingRareEggs.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Rare easter eggs left to unlock', + StatsMissDisp(missingRareEggs), + ), + ); + section.appendChild( + StatsListing( + 'basic', + 'Chance of receiving a rare egg from wrinkler/golden cookie', + document.createTextNode( + `${Beautify(dropRateEgg(0.98)[1] * 100)}% / ${Beautify( + dropRateEgg(0.9)[1] * 100, + )}%`, + ), + ), + ); + } + if (missingPlantDrops.length !== 0) { + section.appendChild( + StatsListing( + 'basic', + 'Rare plant drops left to unlock', + StatsMissDisp(missingPlantDrops), + ), + ); + } + + if (Game.season === 'christmas') + section.appendChild( + StatsListing( + 'basic', + 'Reindeer reward', + document.createTextNode(Beautify(CacheSeaSpec)), + ), + ); + if (choEgg) { + section.appendChild( + StatsListing( + 'withTooltip', + 'Chocolate egg cookies', + document.createTextNode(Beautify(CacheLastChoEgg)), + 'ChoEggTooltipPlaceholder', + ), + ); + } + if (centEgg) { + section.appendChild( + StatsListing( + 'basic', + 'Century egg multiplier', + document.createTextNode( + `${Math.round((CacheCentEgg - 1) * 10000) / 100}%`, + ), + ), + ); + } + } + } + return section; +} From 1c3a27bc9afa0be0b720a4f2e72638bd782049d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 18 Mar 2021 09:17:08 +0100 Subject: [PATCH 24/25] Made description of decimal setting clearer #690 --- src/Data/SettingsData.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/SettingsData.js b/src/Data/SettingsData.js index 462ff0fc..e3704398 100644 --- a/src/Data/SettingsData.js +++ b/src/Data/SettingsData.js @@ -687,7 +687,7 @@ const Config = { 'bool', 'Notation', ['1 decimals', '2 decimals', '3 decimals'], - 'Set the number of decimals used when applicable', + `Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game's Setting Scale"`, false, function () { RefreshScale(); From 36534be65473998a8a05781fda0228485f1e6194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 18 Mar 2021 09:28:49 +0100 Subject: [PATCH 25/25] Pushed version number and changelog to 2.031.6 --- CookieMonster.js | 2 +- dist/CookieMonster.js | 2 +- dist/CookieMonster.js.map | 2 +- package.json | 2 +- src/Data/Moddata.js | 30 +++++++++++++++++++++--------- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index f0c141f8..935e1b51 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],'Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game\'s Setting Scale"',!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.6"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.6) has revamped the way PP is colourcoded. In the previous versions this was not always correct and we had some settings that made it even more incorrect. With this update Cookie Monster compares the PP of a building to all other possibilities (also buying 10 or 100) of a building and colors the PP accordingly.
\nThis means that if it is better to buy 10 of a building immediately rather than to buy in increments of 1 Cookie Monster will now show this! In this case the buy 1 option will be yellow, while the buy 10 option will be green.
\nThis also means that you will see some more diverse colors. Rather than coloring according to arbitrary "middle values" Cookie Monster now uses a top 10, 20 and 30. While this might take some getting used to we believe the new system is much better in conveying useful information to the user while also being more correct!
\n
\nThis update also implements the following functions:
\n- Added a tooltip displaying the reward to the extra pop wrinkler buttons
\n- Added tooltips to the Gods in the Pantheon
\n- The tooltip for Elder Pledge now displays correctly, although it takes some time to load after Cookie Monster has been loaded
\n- You can now test the volume and sound of notifications in the settings screen
\n- The bottom bar will now flicker less and each column has received a bit of padding
\n- Introduced new colour scheme for PP, see the explanation of colors in the Readme or the settings
\n- Added option to show buttons that can hide the upgrade and building section
\n- Added option to display PP as a time unit, note that these are only approximations. PP does not translate directly into time (the name is deceptive, we know...)
\n- Statistics page now shows chance for random drops when they have not been achieved
\n
\nThis update fixes the following bugs:
\n- Incorrect amount for "required for max plant reward" in statistics page
\n- Fixed the tooltips of the \'?\' buttons in the statistics page not showing
\n- Fixed some unclear settings descriptions
\n
\nPlease submit any bug reports or feature requests to the GitHub page!\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.6",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.6 loaded!"):Game.Notify("Cookie Monster version 2.031.6 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.6 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.6"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index f0c141f8..935e1b51 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,2 @@ /*! For license information please see CookieMonster.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],"Set the number of decimals used when applicable",!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.5"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
\nWe believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
\n
\nBesides, this update fixes the following bugs:
\n- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
\n- Fixed not always being able to sell when "blocking bulk buy"
\n- Fixed heavenly chips per second display
\n- Fixed small display bug when pressing shift and hovering over garden plots
\n- Fixed some bugs with the display of numbers and formatting of them
\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.5",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.5 loaded!"):Game.Notify("Cookie Monster version 2.031.5 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.5 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.5"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};const t=["","","M","G","T","P","E","Z","Y"],n=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],i=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let a,r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={};const S="CMText",B="CMBack",P="Blue",E="Green",N="Yellow",O="Orange",F="Red",W="Purple",L="Gray",A="Pink",j="Brown",U=[L,P,E,N,O,F,W,A,j],D=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"]],H={};let R,$,I=0,z=-1,V=[],_=1,X=1,Q=1;const q=[10,15,30,60,300,600,900,1800],Y=[1,5,10,15,30],K={Frenzy:N,"Dragon Harvest":j,"Elder frenzy":E,Clot:F,"Click frenzy":P,Dragonflight:A};let J,Z,ee,te,oe,ne,ie,ae={},re="";function le(o,a,r){const l=e.ScaleDecimals+1;if(o===1/0)return"Infinity";if(void 0===o)return"0";if(0===e.Scale)return M.Beautify(o,a);if(Number.isFinite(o)){let s="";if(0===o)return o.toString();if(o>.001&&o=.01&&o=.01&&o=.01&&o315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",c+=a>0?a+(o?1===a?" day":" days":"d")+", ":"",(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ce(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=E):(n=se(t),o=t>300?F:t>60?O:N),{text:n,color:o}}let de,pe,ue,me,he,ge,fe,Ce,ye,be,ke,Ge,ve,we,xe,Te,Me,Se,Be,Pe,Ee,Ne,Oe,Fe,We,Le,Ae,je,Ue,De,He,Re,$e,Ie,ze,Ve=0,_e=0,Xe=0,Qe=0,qe=0,Ye=0,Ke=0,Je=0,Ze=0,et=0,tt=0,ot=0,nt=0,it=0,at=0,rt=1,lt=1,st=1,ct=0,dt=0,pt=0,ut=0,mt={},ht={},gt={},ft=0,Ct=0,yt=[0,null],bt=0,kt=0,Gt={},vt={},wt={},xt={},Tt={},Mt=0,St=0,Bt=[],Pt=0,Et=0,Nt=[],Ot=0,Ft=0,Wt=[],Lt=0,At=0,jt=[],Ut=0,Dt=0,Ht={},Rt={},$t=0,It=0,zt=[],Vt={},_t=0,Xt={0:[0,0,0],1:[0,0,0],2:[0,0,0],3:[0,0,0],4:[0,0,0],5:[0,0,0],6:[0,0,0],7:[0,0,0],8:[0,0,0],9:[0,0,0],10:[0,0,0]},Qt=[],qt=[],Yt=[],Kt=Game.startDate,Jt=Game.startDate;function Zt(e){let t=0;return Game.dragonAuras[Ae].name!==e&&Game.dragonAuras[je].name!==e||(t=1),"Reality Bending"!==Game.dragonAuras[Ae].name&&"Reality Bending"!==Game.dragonAuras[je].name||(t+=.1),t}function eo(){let e=.25;return e*=1+Zt("Earth Shatterer"),e}function to(e,t){return void 0===$e[e]?void 0===t?1:t:$e[e]}function oo(e){const t=qt[e];return(1!==Game.ascensionMode||"prestige"!==t.pool&&"fortune"!==t.tier)&&t?t.bought:0}function no(e){if(Game.hasGod){void 0===Qt.Temple.minigame&&(Qt.Temple.minigame=Game.Objects.Temple.minigame);const t=Qt.Temple.minigame.gods[e];if(Ue===t.id)return 1;if(De===t.id)return 2;if(He===t.id)return 3}return!1}function io(e,t){let o=t;if(oo("Season savings")&&(o*=.99),oo("Santa's dominion")&&(o*=.99),oo("Faberge egg")&&(o*=.99),oo("Divine discount")&&(o*=.99),oo("Fortune #100")&&(o*=.99),o*=1-.02*Zt("Fierce Hoarder"),Game.hasBuff("Everything must go")&&(o*=.95),Game.hasBuff("Crafty pixies")&&(o*=.98),Game.hasBuff("Nasty goblins")&&(o*=1.02),e.fortune&&oo(e.fortune.name)&&(o*=.93),o*=to("buildingCost"),Qt.Temple.minigameLoaded){const e=no("creation");1===e?o*=.93:2===e?o*=.95:3===e&&(o*=.98)}return o}function ao(e,t,o,n,i,a){const r=void 0===a?0:a;let l=i,s=o,c=0;-1===i&&(l=s),i||(l=Game.buyBulk);for(let o=0;o0&&(c+=o,s-=1)}return c}function ro(){let t=Game.buyBulk;if(1===Game.buyMode?X=t:t=X,1===t?t=mt:10===t?t=ht:100===t&&(t=gt),1===Game.buyMode?1===e.BuildColor?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e.Colors[t[o].color]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(mt).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=le(ao(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(mt).map((e=>{const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort((function(e,t){return U.indexOf(e.color)>U.indexOf(t.color)?1:U.indexOf(e.color){const t=mt[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eU.indexOf(t.color)?1:U.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_=i:i=_,1===i&&(i=mt),10===i&&(i=ht),100===i&&(i=gt),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=le(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=S+i[o].color,n=e.PPDisplayTime?se(Math.round(i[o].pp)):le(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ce((Game.Objects[o].bulkPrice-(Game.cookies+co()))/so());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=S+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&oo(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(oo(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&oo(e.fortune.name)&&(t*=1.07),e.grandma&&oo(e.grandma.name)&&(t*=1+.01*Qt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&oo(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function ko(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;oo("Thousand fingers")&&(t+=.1),oo("Million fingers")&&(t*=5),oo("Billion fingers")&&(t*=10),oo("Trillion fingers")&&(t*=20),oo("Quadrillion fingers")&&(t*=20),oo("Quintillion fingers")&&(t*=20),oo("Sextillion fingers")&&(t*=20),oo("Septillion fingers")&&(t*=20),oo("Octillion fingers")&&(t*=20),oo("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Qt).forEach((e=>{"Cursor"!==Qt[e].name&&(n+=Qt[e].amount)})),t*=n,o*=bo(e),o*=Game.magicCpS("Cursor"),o*=to("cursorCps"),Game.ComputeCps(.1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{oo(Game.GrandmaSynergies[e])&&(o*=2)})),oo("Bingo center/Research facility")&&(o*=4),oo("Ritual rolling pins")&&(o*=2),oo("Naughty list")&&(o*=2),oo("Elderwort biscuits")&&(o*=1.02),o*=to("grandmaCps"),oo("Cat ladies"))for(let e=0;e{"Grandma"!==Qt[e].name&&(i+=Qt[e].amount)})),o*=1+.01*Zt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=bo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function Go(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Qt).forEach((t=>{Qt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(oo("Starlove")&&(e=3),Game.hasGod){const t=no("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function vo(){Ne=Game.UpgradesOwned,Oe=Game.pledges,Fe=Game.AchievementsOwned,We=Game.heavenlyPower,Le=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Qt[e];void 0===o&&(Qt[e]=ko(e),o=Qt[e],uo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(Ue=t.minigame.slot[0],De=t.minigame.slot[1],He=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Qt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=qt[e];void 0===o&&(qt[e]=Go(e),o=qt[e]),o.bought=t.bought,qt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=Yt[e];void 0===o&&(Yt[e]=yo(e),o=Yt[e]),o.won=t.won,Yt[e]=o})),Co(),Ae=Ve,je=_e}function wo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function xo(e){e.appendChild(wo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(wo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(wo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(wo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===ee){e.appendChild(wo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionHeader";const t=document.createElement("div");t.id="CMTooltipProduction",e.appendChild(t)}}function To(e,t,o){let n=e,i=0;for(;n{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function So(){null!==l("CMDispTooltipWarningParent")&&(0===e.ToolWarnPos?(l("CMDispTooltipWarningParent").style.top="auto",l("CMDispTooltipWarningParent").style.margin="4px -4px",l("CMDispTooltipWarningParent").style.padding="3px 4px"):(l("CMDispTooltipWarningParent").style.right="auto",l("CMDispTooltipWarningParent").style.margin="4px",l("CMDispTooltipWarningParent").style.padding="4px 3px"))}function Bo(){if(vo(),"none"!==l("tooltipAnchor").style.display&&l("CMTooltipArea")){l("CMTooltipArea").innerHTML="";const t=function(){l("tooltip").firstChild.style.paddingBottom="4px";const e=document.createElement("div");return e.style.border="1px solid",e.style.padding="4px",e.style.margin="0px -4px",e.id="CMTooltipBorder",e.className="CMTextGray",e}();l("CMTooltipArea").appendChild(t),"b"===ee?function(){if(1===e.TooltipBuildUpgrade&&1===Game.buyMode){let t;if(xo(l("CMTooltipBorder")),1===Game.buyMode?Q=t:t=Q,1===Game.buyBulk?t=mt:10===Game.buyBulk?t=ht:100===Game.buyBulk&&(t=gt),J=Game.Objects[te].bulkPrice,Z=t[te].bonus,1===e.TooltipBuildUpgrade&&1===Game.buyMode){l("CMTooltipIncome").textContent=le(Z,2);const o=Math.round(Z/Game.cookiesPs*1e4);Number.isFinite(o)&&0!==o?l("CMTooltipIncome").textContent+=` (${o/100}% of income)`:l("CMTooltipIncome").textContent+=` (<0${e.ScaleSeparator?",":"."}01% of income)`,l("CMTooltipBorder").className=S+t[te].color,e.PPDisplayTime?l("CMTooltipPP").textContent=se(t[te].pp):l("CMTooltipPP").textContent=le(t[te].pp,2),l("CMTooltipPP").className=S+t[te].color;const n=ce((J-(Game.cookies+co()))/so());l("CMTooltipTime").textContent=n.text,"Done!"===n.text&&Game.cookiest.plantsById[t.plot[te[1]][te[0]][0]-1].matureBase,o=t.plantsById[t.plot[te[1]][te[0]][0]-1].name;l("CMTooltipBorder").appendChild(wo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${le(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${le(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${le(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?le(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${le(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===ee?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(wo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=po(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==K[Game.buffs[t].name]?K[Game.buffs[t].name]:W,a.lastChild.children[1].className=B+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ie!==n&&(ie=n,go())}}(),mo(),Bo(),function(){if(1===e.TooltipWrink&&1===I){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===V[t]||void 0===V[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),z=t,V[t]=1}}else V[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[z],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[z].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Qt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=le(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu();let t=l("cookies").innerHTML.replace(/.*(?=
)/i,le(Game.cookies));Game.prefs.monospace&&(t=`${t}`),l("cookies").innerHTML=t}class Eo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}}function No(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+_t;Game.cpsSucked>0&&(o+=ft),Ut=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-fe,i=Math.max(0,Game.cookies-Ce)/n,a=Math.max(0,ft-ye)/n,r=Math.max(0,yt[0]-be)/n,l=Math.max(0,o-ut)/n,s=(Game.cookieClicks-ke)/n;for(let e=0;ezt[30][0]?F:W,0!==Number(e.PPSecondsLowerLimit)&&o/so()0&&(n=F),n}function Fo(t,o){Object.keys(t).forEach((n=>{t[n].color=Oo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const n=Game.Objects[o].getSumPrice(t);Game.cookiesPs?e[o].pp=Math.max(n-(Game.cookies+co()),0)/Game.cookiesPs+n/e[o].bonus:e[o].pp=n/e[o].bonus,zt.push([e[o].pp,t])}))}function Lo(){!function(){It=1/0,zt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Wo(mt,1),Wo(ht,10),Wo(gt,100),zt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;zt[t][1]>Game.cookies&&(t+=1,zt.length!==t+1););It=zt[e.PPExcludeTop][t],Fo(mt,1),Fo(ht,10),Fo(gt,100)}(),Object.keys(Gt).forEach((e=>{Game.cookiesPs?Gt[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+co()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/Gt[e].bonus:Gt[e].pp=Game.Upgrades[e].getPrice()/Gt[e].bonus,Number.isNaN(Gt[e].pp)&&(Gt[e].pp=1/0),Gt[e].color=Oo(Gt[e],Game.Upgrades[e].getPrice())}))}function Ao(e,t,o,n,i){let a=o,r=0;for(let o=0;o{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),$e=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(Le)*We*function(){let e=0;if(oo("Heavenly chip secret")&&(e+=.05),oo("Heavenly cookie stand")&&(e+=.2),oo("Heavenly bakery")&&(e+=.25),oo("Heavenly confectionery")&&(e+=.25),oo("Heavenly key")&&(e+=.25),e*=1+.05*Zt("Dragon God"),oo("Lucky digit")&&(e*=1.01),oo("Lucky number")&&(e*=1.01),oo("Lucky payout")&&(e*=1.01),Game.hasGod){const t=no("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=to("cps"),oo("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];oo(o.name)&&("function"==typeof o.power?e*=1+.01*qt[o.name].power(qt[o.name]):e*=1+.01*o.power)})),oo("Specialized chocolate chips")&&(e*=1.01),oo("Designer cocoa beans")&&(e*=1.02),oo("Underworld ovens")&&(e*=1.03),oo("Exotic nuts")&&(e*=1.04),oo("Arcane sugar")&&(e*=1.05),oo("Increased merriness")&&(e*=1.15),oo("Improved jolliness")&&(e*=1.15),oo("A lump of coal")&&(e*=1.01),oo("An itchy sweater")&&(e*=1.01),oo("Santa's dominion")&&(e*=1.2),oo("Fortune #100")&&(e*=1.01),oo("Fortune #101")&&(e*=1.07),oo("Dragon scale")&&(e*=1.03);let o=1;if(no){let t=no("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=no("ages"),1===t?e*=1+.15*Math.sin(Jt/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(Jt/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(Jt/1e3/86400*Math.PI*2)),t=no("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=no("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=no("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}oo("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=Fe/25;let i=1;if(oo("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Zt("Breath of Milk"),no){const e=no("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=to("milk");let a=1;oo("Kitten helpers")&&(a*=1+.1*n*i),oo("Kitten workers")&&(a*=1+.125*n*i),oo("Kitten engineers")&&(a*=1+.15*n*i),oo("Kitten overseers")&&(a*=1+.175*n*i),oo("Kitten managers")&&(a*=1+.2*n*i),oo("Kitten accountants")&&(a*=1+.2*n*i),oo("Kitten specialists")&&(a*=1+.2*n*i),oo("Kitten experts")&&(a*=1+.2*n*i),oo("Kitten consultants")&&(a*=1+.2*n*i),oo("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),oo("Kitten marketeers")&&(a*=1+.15*n*i),oo("Kitten analysts")&&(a*=1+.125*n*i),oo("Kitten executives")&&(a*=1+.115*n*i),oo("Kitten angels")&&(a*=1+.1*n*i),oo("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Qt).forEach((e=>{const t=Qt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&oo("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),Ie+=t.amount*a})),oo('"egg"')&&(Ie+=9),e*=a;let r=1;if(oo("Chicken egg")&&(r*=1.01),oo("Duck egg")&&(r*=1.01),oo("Turkey egg")&&(r*=1.01),oo("Quail egg")&&(r*=1.01),oo("Robin egg")&&(r*=1.01),oo("Ostrich egg")&&(r*=1.01),oo("Cassowary egg")&&(r*=1.01),oo("Salmon roe")&&(r*=1.01),oo("Frogspawn")&&(r*=1.01),oo("Shark egg")&&(r*=1.01),oo("Turtle egg")&&(r*=1.01),oo("Ant larva")&&(r*=1.01),oo("Century egg")){let e=10*Math.floor((Kt-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),dt=1+.1*(1-(1-e/100)**3),r*=dt}e*=r,oo("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Zt("Radiant Appetite");const l=Ie*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&jo(Game.CpsAchievements[e].name)})),ze=l;const{n:s}=Game.shimmerTypes.golden,c=Zt("Dragon's Fortune");for(let t=0;t{oo(e[o])&&(t+=.1)}))}e*=t}if(oo("Shimmering veil [off]")){let t=.5;oo("Reinforced membrane")&&(t+=.1),e*=1+t}oo("Magic shenanigans")&&(e*=1e3),oo("Occult obstruction")&&(e*=0),Ie=Game.runModHookOnValue("cps",Ie),e*=Mo(),Ie*=e}const Do=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Ho=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ro=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],$o=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Io=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function zo(e){return Yt[e]?Yt[e].won:0}function Vo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{oo(Game.GrandmaSynergies[t])&&(e+=1)})),!zo("Elder")&&e>=7&&jo("Elder"),!zo("Veteran")&&e>=14&&jo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount,i=Math.min(Qt[e].amount,i),zo("Mathematician")||Qt[e].amount=1&&jo("One with everything"),1===o&&jo("Mathematician"),1===n&&jo("Base 10"),i>=100&&jo("Centennial"),i>=150&&jo("Centennial and a half"),i>=200&&jo("Bicentennial"),i>=250&&jo("Bicentennial and a half"),i>=300&&jo("Tricentennial"),i>=350&&jo("Tricentennial and a half"),i>=400&&jo("Quadricentennial"),i>=450&&jo("Quadricentennial and a half"),i>=500&&jo("Quincentennial"),i>=550&&jo("Quincentennial and a half"),i>=600&&jo("Sexcentennial"),t>=100&&jo("Builder"),t>=500&&jo("Architect"),t>=1e3&&jo("Engineer"),t>=2e3&&jo("Lord of Constructs"),t>=4e3&&jo("Grand design"),t>=8e3&&jo("Ecumenopolis"),Ne>=20&&jo("Enhancer"),Ne>=50&&jo("Augmenter"),Ne>=100&&jo("Upgrader"),Ne>=200&&jo("Lord of Progress"),Ne>=300&&jo("The full picture"),Ne>=400&&jo("When there's nothing left to add"),t>=4e3&&Ne>=300&&jo("Polymath"),t>=8e3&&Ne>=400&&jo("Renaissance baker"),Qt.Cursor.amount+Qt.Grandma.amount>=777&&jo("The elder scrolls");let a=!0;Object.keys(Ho).forEach((e=>{oo(Ho[e])||(a=!1)})),a&&jo("Spooky cookies");let r=!0;if(Object.keys(Ro).forEach((e=>{oo(Ro[e])||(r=!1)})),r&&jo("Let it snow"),oo("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{oo(e[o].name)&&(t+=1)})),t>=e.length&&jo("O Fortuna")}}function _o(e,t){const o=[];return Object.keys(Game.Objects).forEach((t=>{o[t]={},o[t].bonus=function(e,t){vo(),Qt[e].amount+=t;const o=Qt[e];"Cursor"===e?(o.amount>=1&&jo("Click"),o.amount>=2&&jo("Double-click"),o.amount>=50&&jo("Mouse wheel"),o.amount>=100&&jo("Of Mice and Men"),o.amount>=200&&jo("The Digital"),o.amount>=300&&jo("Extreme polydactyly"),o.amount>=400&&jo("Dr. T"),o.amount>=500&&jo("Thumbs, phalanges, metacarpals"),o.amount>=600&&jo("With her finger and her thumb"),o.amount>=700&&jo("Gotta hand it to you"),o.amount>=800&&jo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&jo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=Fe;return Uo(),Vo(),n!==Fe&&Uo(),Ie-Game.cookiesPs}(t,e),1!==e&&(Be=1)})),o}function Xo(){Object.keys(Game.Objects).forEach((e=>{mt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),ht[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),gt[e].price=Ao(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100)}))}function Qo(){mt=_o(1),ht=_o(10),gt=_o(100),Gt=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){vo(),"Shimmering veil [on]"===qt[e].name?qt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===qt[e].name?qt["Golden switch [off]"].bought=0:qt[e].bought=(qt[e].bought+1)%2,qt[e],Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(Ne+=1),"Elder Pledge"===e?(Oe+=1,Oe>0&&jo("Elder nap"),Oe>=5&&jo("Elder slumber")):"Elder Covenant"===e?jo("Elder calm"):"Prism heart biscuits"===e?jo("Lovely cookies"):"Heavenly key"===e&&jo("Wholesome");const t=Fe;Uo(),Vo(),t!==Fe&&Uo();const o=function(){let e=0;oo("Thousand fingers")&&(e+=.1),oo("Million fingers")&&(e*=5),oo("Billion fingers")&&(e*=10),oo("Trillion fingers")&&(e*=20),oo("Quadrillion fingers")&&(e*=20),oo("Quintillion fingers")&&(e*=20),oo("Sextillion fingers")&&(e*=20),oo("Septillion fingers")&&(e*=20),oo("Octillion fingers")&&(e*=20),oo("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Qt).forEach((e=>{t+=Qt[e].amount})),t-=Qt.Cursor.amount,e*=t,oo("Plastic mouse")&&(e+=.01*Ie),oo("Iron mouse")&&(e+=.01*Ie),oo("Titanium mouse")&&(e+=.01*Ie),oo("Adamantium mouse")&&(e+=.01*Ie),oo("Unobtainium mouse")&&(e+=.01*Ie),oo("Eludium mouse")&&(e+=.01*Ie),oo("Wishalloy mouse")&&(e+=.01*Ie),oo("Fantasteel mouse")&&(e+=.01*Ie),oo("Nevercrack mouse")&&(e+=.01*Ie),oo("Armythril mouse")&&(e+=.01*Ie),oo("Technobsidian mouse")&&(e+=.01*Ie),oo("Plasmarble mouse")&&(e+=.01*Ie),oo("Miraculite mouse")&&(e+=.01*Ie),oo("Fortune #104")&&(e+=.01*Ie);let o=1;if(oo("Santa's helpers")&&(o*=1.1),oo("Cookie egg")&&(o*=1.1),oo("Halo gloves")&&(o*=1.1),oo("Dragon claw")&&(o*=1.03),oo("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,oo("Luminous gloves")?20:10)),o*=to("click"),Qt.Temple.minigameLoaded&&no){const e=no("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Zt("Dragon Cursor");let n=o*Game.ComputeCps(1,oo("Reinforced index finger")+oo("Carpal tunnel prevention cream")+oo("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[Ie-Game.cookiesPs,o]:[Ie-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(Gt[t]={bonus:Game.cookiesPs-Ge},1===e.CalcWrink?Gt[t].bonus-=ve:2===e.CalcWrink&&(Gt[t].bonus-=we),Number.isFinite(Gt[t].bonus)||(Gt[t].bonus=0)):(Gt[t]={},o[0]&&(Gt[t].bonus=o[0]),o[1]&&(Gt[t].bonusMouse=o[1]))}))}function qo(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Bt=qo(7,e,lt),Mt=2*Bt[1]/lt,St=Bt[2]/60/60/6/rt,Nt=qo(6,e,st),Pt=2*Nt[1]/st,Et=Nt[2]/60/60/6/rt,Wt=qo(7,7*e,lt),Ot=2*Wt[1]/lt,Ft=Wt[2]/60/60/6/rt,jt=qo(6,7*e,st),Lt=2*jt[1]/st,At=jt[2]/60/60/6/rt}function Ko(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Me,i=Math.max(0,o-Se)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?xt+=e:"cookie"===o.pool?Tt+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(wt+=e)}}))}function Zo(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),pt=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(pt*=2)}}function en(){qe=900*at/.15,qe*=rt;const e=Mo();e>0?qe/=e:qe=0,Ye=lt*(.15*qe)+13,Ke=st*(.15*qe)+13,Je=7*qe,Ze=lt*(.15*Je)+13,et=st*(.15*Je)+13,tt=2*qe,ot=.15*tt,nt=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountnt&&(nt=2*Game.Objects[e].price,it=e)}))}function tn(){let e=1,t=1,o=1;oo("Green yeast digestives")&&(o*=1.01),oo("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),lt=o*e,st=o*t,rt=1,0===Game.shimmerTypes.golden.n&&(rt*=1+1.23*Game.auraMult("Dragon's Fortune"))}function on(){ft=0,Ct=0,yt=[0,null];for(let e=0;eyt[0]&&(yt=[t,e]))}}function nn(){Co(),on(),en(),tn(),Yo(),Jo(),Zo(),de=new Eo(q[q.length-1]),pe=new Eo(q[q.length-1]),ue=new Eo(q[q.length-1]),me=new Eo(q[q.length-1]),he=new Eo(Y[Y.length-1]),ge=new Eo(5),Ko(),No(),Qo(),Xo(),Lo()}const an={BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,BuildColor:1,PPDisplayTime:0,UpBarColor:1,UpgradeBarFixedPos:1,CalcWrink:0,CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,PPExcludeTop:0,PPSecondsLowerLimit:0,PPOnlyConsiderBuyable:0,ToolWarnBon:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,DragonAuraInfo:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,UpStats:1,TimeFormat:0,DetailedTime:1,GrimoireBar:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,Colors:{Blue:"#4bb8f0",Green:"#00ff00",Yellow:"#ffff00",Orange:"#ff7f00",Red:"#ff0000",Purple:"#ff00ff",Gray:"#b3b3b3",Pink:"#ff1493",Brown:"#8b4513"},SortBuildings:0,SortUpgrades:0,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,BulkBuyBlock:0,Header:{BarsColors:1,Calculation:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Tooltip:1,Statistics:1,Notation:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},rn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function ln(){1===e.BotBar?(l("CMBotBar").style.display="",mo()):l("CMBotBar").style.display="none",go()}function sn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),mo(),ro(),lo()}function cn(){let t="";for(let o=0;o0?Ht.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class pn{constructor(e,t){this.type=e,this.group=t}}class un extends pn{constructor(e,t,o,n,i,a=null){super(e,t),this.label=o,this.desc=n,this.toggle=i,a&&(this.func=a)}}class mn extends pn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}class hn extends pn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}const gn={BotBar:new un("bool","BarsColors",["Bottom Bar OFF","Bottom Bar ON"],"Building Information",!0,(function(){ln()})),TimerBar:new un("bool","BarsColors",["Timer Bar OFF","Timer Bar ON"],"Timers of Golden Cookie, Season Popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(function(){fo()})),TimerBarPos:new un("bool","BarsColors",["Timer Bar Position (Top Left)","Timer Bar Position (Bottom)"],"Placement of the Timer Bar",!1,(function(){0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),go()})),TimerBarOverlay:new un("bool","BarsColors",["Timer Bar Overlay OFF","Timer Bar Overlay Only Seconds","Timer Bar Overlay Full"],"Overlay on timers displaying seconds and/or percentage left",!0),SortBuildings:new un("bool","BarsColors",["Sort Buildings: Default","Sort Buildings: PP of x1 purchase","Sort Buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(function(){ro()})),SortUpgrades:new un("bool","BarsColors",["Sort Upgrades: Default","Sort Upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(function(){lo()})),BuildColor:new un("bool","BarsColors",["Building Colors OFF","Building Colors ON"],"Color code buildings",!0,(function(){ro()})),PPDisplayTime:new un("bool","BarsColors",["PP As Value (Standard)","PP As Time Unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),UpBarColor:new un("bool","BarsColors",["Upgrade Colors/Bar OFF","Upgrade Colors with Bar ON","Upgrade Colors without Bar ON"],"Color code upgrades and optionally add a counter bar",!1,(function(){1===e.UpBarColor?(l("CMUpgradeBar").style.display="",lo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",lo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),Colors:new class extends pn{constructor(e,t,o,n){super(e,t),this.desc=o,this.func=n}}("color","BarsColors",{Blue:"Color Blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels",Green:"Color Green. Used to show best PP building, for Blood Frenzy bar, and for various labels",Yellow:"Color Yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels",Orange:"Color Orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels",Red:"Color Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels",Purple:"Color Purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels",Gray:"Color Gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar",Pink:"Color Pink. Used for Dragonflight bar",Brown:"Color Brown. Used for Dragon Harvest bar"},(function(){cn()})),UpgradeBarFixedPos:new un("bool","BarsColors",["Upgrade Bar Fixed Position OFF","Upgrade Bar Fixed Position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(function(){1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),CalcWrink:new un("bool","Calculation",["Calculate with Wrinklers OFF","Calculate with Wrinklers ON","Calculate with Single Fattest Wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) Wrinklers",!0,(function(){Re=!0})),CPSMode:new un("bool","Calculation",["Current Cookies Per Second","Average Cookies Per Second"],"Calculate times using current Cookies Per Second or average Cookies Per Second",!1),AvgCPSHist:new un("bool","Calculation",["Average CPS for past 10s","Average CPS for past 15s","Average CPS for past 30s","Average CPS for past 1m","Average CPS for past 5m","Average CPS for past 10m","Average CPS for past 15m","Average CPS for past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new un("bool","Calculation",["Average Cookie Clicks for past 1s","Average Cookie Clicks for past 5s","Average Cookie Clicks for past 10s","Average Cookie Clicks for past 15s","Average Cookie Clicks for past 30s"],"How much time average Cookie Clicks should consider",!1),PPExcludeTop:new un("bool","Calculation",["Don't Ignore Any","Ignore 1st Best","Ignore 1st and 2nd Best","Ignore 1st, 2nd and 3rd Best"],"Makes CookieMonster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPSecondsLowerLimit:new hn("numscale","Calculation","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),PPOnlyConsiderBuyable:new un("bool","Calculation",["Don't Ignore Non-Buyable","Ignore Non-Buyable"],"Makes CookieMonster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),ToolWarnBon:new un("bool","Calculation",["Calculate Tooltip Warning With Bonus CPS OFF","Calculate Tooltip Warning With Bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),Title:new un("bool","NotificationGeneral",["Title OFF","Title ON","Title Pinned Tab Highlight"],'Update title with Golden Cookie/Season Popup timers; pinned tab highlight only changes the title when a Golden Cookie/Season Popup spawns; "!" means that Golden Cookie/Reindeer can spawn',!0),GeneralSound:new un("bool","NotificationGeneral",["Consider Game Volume Setting OFF","Consider Game Volume Setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new un("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when Golden Cookie spawns",!0,(function(){rn(e.GCNotification)})),GCFlash:new un("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on Golden Cookie",!0),GCSound:new un("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on Golden Cookie",!0),GCVolume:new mn("vol","NotificationGC",[],"Volume"),GCSoundURL:new un("url","NotificationGC","Sound URL:","URL of the sound to be played when a Golden Cookie spawns"),FortuneNotification:new un("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when Fortune Cookie is on the Ticker",!0,(function(){rn(e.FortuneNotification)})),FortuneFlash:new un("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on Fortune Cookie",!0),FortuneSound:new un("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on Fortune Cookie",!0),FortuneVolume:new mn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new un("url","NotificationFC","Sound URL:","URL of the sound to be played when the Ticker has a Fortune Cookie"),SeaNotification:new un("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on Season Popup",!0,(function(){rn(e.SeaNotification)})),SeaFlash:new un("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on Season Popup",!0),SeaSound:new un("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on Season Popup",!0),SeaVolume:new mn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new un("url","NotificationSea","Sound URL:","URL of the sound to be played when a Season Special spawns"),GardFlash:new un("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on Garden Tick",!0),GardSound:new un("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on Garden Tick",!0),GardVolume:new mn("vol","NotificationGard",[],"Volume"),GardSoundURL:new un("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new un("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(function(){rn(e.MagicNotification)})),MagicFlash:new un("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),MagicSound:new un("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new mn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new un("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new un("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a Wrinkler appears",!0,(function(){rn(e.WrinklerNotification)})),WrinklerFlash:new un("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a Wrinkler appears",!0),WrinklerSound:new un("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a Wrinkler appears",!0),WrinklerVolume:new mn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new un("url","NotificationWrink","Sound URL:","URL of the sound to be played when a Wrinkler appears"),WrinklerMaxNotification:new un("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of Wrinklers has appeared",!0,(function(){rn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new un("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxSound:new un("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of Wrinklers has appeared",!0),WrinklerMaxVolume:new mn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new un("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of Wrinklers has appeared"),TooltipBuildUpgrade:new un("bool","Tooltip",["Building/Upgrade Tooltip Information OFF","Building/Upgrade Tooltip Information ON"],"Extra information in Building/Upgrade tooltips",!0),TooltipAmor:new un("bool","Tooltip",["Buildings Tooltip Amortization Information OFF","Buildings Tooltip Amortization Information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new un("bool","Tooltip",["Tooltip Lucky Warning OFF","Tooltip Lucky Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new un("bool","Tooltip",["Tooltip Lucky Frenzy Warning OFF","Tooltip Lucky Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new un("bool","Tooltip",["Tooltip Conjure Warning OFF","Tooltip Conjure Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new un("bool","Tooltip",["Tooltip Conjure Frenzy Warning OFF","Tooltip Conjure Frenzy Warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new un("bool","Tooltip",["Tooltip Edifice Warning OFF","Tooltip Edifice Warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new hn("numscale","Tooltip","Tooltip Warning At x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnPos:new un("bool","Tooltip",["Tooltip Warning Position (Left)","Tooltip Warning Position (Bottom)"],"Placement of the warning boxes",!1,(function(){So()})),TooltipGrim:new un("bool","Tooltip",["Grimoire Tooltip Information OFF","Grimoire Tooltip Information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new un("bool","Tooltip",["Wrinkler Tooltip OFF","Wrinkler Tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new un("bool","Tooltip",["Sugar Lump Tooltip OFF","Sugar Lump Tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new un("bool","Tooltip",["Garden Plots Tooltip OFF","Garden Plots Tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new un("bool","Tooltip",["Show Extra Info Pantheon Tooltip OFF","Show Extra Info Pantheon Tooltip ON"],"Shows additional info in the pantheon tooltip",!0),DragonAuraInfo:new un("bool","Tooltip",["Extra Dragon Aura Info OFF","Extra Dragon Aura Info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),TooltipAscendButton:new un("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new un("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new un("bool","Statistics",["Missing Upgrades OFF","Missing Upgrades ON"],"Shows Missing upgrades in Stats Menu. This feature can be laggy for users with a low amount of unlocked achievements.",!0),UpStats:new un("bool","Statistics",["Statistics Update Rate (Default)","Statistics Update Rate (1s)"],"Default Game rate is once every 5 seconds",!1),TimeFormat:new un("bool","Statistics",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new un("bool","Statistics",["Detailed Time OFF","Detailed Time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(function(){1===e.DetailedTime?Game.sayTime=$:Game.sayTime=M.sayTime})),GrimoireBar:new un("bool","Statistics",["Grimoire Magic Meter Timer OFF","Grimoire Magic Meter Timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),HeavenlyChipsTarget:new hn("numscale","Statistics","Heavenly Chips Target: ",'Use this to set a Heavenly Chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new un("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many Golden Cookies you have missed",!0),Scale:new un("bool","Notation",["Game's Setting Scale","Metric","Short Scale","Short Scale (Abbreviated)","Scientific Notation","Engineering Notation"],"Change how long numbers are handled",!1,(function(){sn()})),ScaleDecimals:new un("bool","Notation",["1 decimals","2 decimals","3 decimals"],'Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game\'s Setting Scale"',!1,(function(){sn()})),ScaleSeparator:new un("bool","Notation",[". for decimals (Standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(function(){sn()})),ScaleCutoff:new hn("numscale","Notation","Notation Cut-off Point: ","The number from which CookieMonster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),GCTimer:new un("bool","Miscellaneous",["Golden Cookie Timer OFF","Golden Cookie Timer ON"],"A timer on the Golden Cookie when it has been spawned",!0,(function(){1===e.GCTimer?Object.keys(ae).forEach((e=>{ae[e].style.display="block",ae[e].style.left=Vt[e].l.style.left,ae[e].style.top=Vt[e].l.style.top})):Object.keys(ae).forEach((e=>ae[e].style.display="none"))})),Favicon:new un("bool","Miscellaneous",["Favicon OFF","Favicon ON"],"Update favicon with Golden/Wrath Cookie",!0,(function(){dn()})),WrinklerButtons:new un("bool","Miscellaneous",["Extra Wrinkler Buttons OFF","Extra Wrinkler Buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(function(){e.WrinklerButtons?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")})),HideSectionsButtons:new un("bool","Miscellaneous",["Hide Upgrades/Buildings Button OFF","Hide Upgrades/Buildings Button ON"],"Show buttons for hiding and showing the upgrades and buildings section in the right column",!0,(function(){e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),BulkBuyBlock:new un("bool","Miscellaneous",["Block Bulk Buying OFF","Block Bulk Buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0)};function fn(){return JSON.stringify({settings:e,version:"2.031.6"})}function Cn(){if(Xe!==Game.dragonLevel||Re){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{Qt[e]=ko(e)})),qt=[],Object.keys(Game.Upgrades).forEach((e=>{qt[e]=Go(e)})),Yt=[],Object.keys(Game.Achievements).forEach((e=>{Yt[e]=yo(e)})),vo()}let kn=!1;function Gn(t,o){1===e[o]&&3===t&&!1===kn||1===t?(l("CMWhiteScreen").style.opacity="0.5",3===t?(l("CMWhiteScreen").style.display="inline",setTimeout((function(){Gn(2,o)}),1e3/Game.fps)):setTimeout((function(){Gn(0,o)}),1e3/Game.fps)):2===t?(l("CMWhiteScreen").style.opacity="1",setTimeout((function(){Gn(1,o)}),1e3/Game.fps)):0===t&&(l("CMWhiteScreen").style.display="none")}function vn(t,o,n,i){if((1===e[o]||i)&&!1===kn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function wn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===kn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function xn(){if(ne!==Game.OnAscend&&(ne=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(ln(),fo()),ho()),!Game.OnAscend&&0===Game.AscendTimer){a!==Object.keys(Game.mods).length&&(bn(),nn(),a=Object.keys(Game.mods).length),Re&&(Qo(),Game.Has("Golden switch [off]")?(vo(),qt["Golden switch [off]"].bought=0,Uo(),at=Ie):at=Game.cookiesPs,tn(),en(),Jo(),Yo(),Cn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Xt[e][t]=yn(e,t)}(),Zo(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;vo();let t=2;5!==Ae&&18!==Ae||(t-=1),5!==je&&18!==je||(t-=1),Ae=5,je=18;for(let e=0;e{Qt[t].amount>0&&(e=t)})),Qt[e].amount-=1,Ee-=1}return Object.keys(Qt).forEach((t=>{const o=Qt[t];e+=ao(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),_t=e}(),Re=0);const t=Game.auraMult("Fierce Hoarder")>0;!Pe&&t?(Pe=!0,Be=1):Pe&&!t&&(Pe=!1,Be=1),Be&&(Xo(),Be=0),function(){on(),Lo(),function(){bt=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Qt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}kt=e,bt=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),No(),Ko();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);$t=se(e/so())}(),k=0,Vt={},Object.keys(Game.shimmers).forEach((e=>{Vt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(Ht=Game.shimmers[e],k+=1)})),Object.keys(ae).forEach((e=>{void 0===Vt[e]&&(ae[e].parentNode.removeChild(ae[e]),delete ae[e])})),C!==Game.shimmerTypes.golden.n?(C=Game.shimmerTypes.golden.n,C&&(y{void 0===ae[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ae[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),dn(),y=k,0===k&&(Ht=0)):1===e.GCTimer&&C&&Object.keys(ae).forEach((e=>{ae[e].style.opacity=Vt[e].l.style.opacity,ae[e].style.transform=Vt[e].l.style.transform,ae[e].textContent=Math.ceil(Vt[e].life/Game.fps)})),g!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(g=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,g&&(Gn(3,"FortuneFlash"),vn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),wn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),h!==Game.shimmerTypes.reindeer.spawned&&(h=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(Rt=Game.shimmers[e])})),Gn(3,"SeaFlash"),vn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),wn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&f!==Game.Objects.Farm.minigame.nextStep&&(0!==f&&f0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>G?(G=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Gn(3,"WrinklerMaxFlash"):Gn(3,"WrinklerFlash"),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?vn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):vn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?wn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):wn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):G=t}}()}}function Tn(){const e=b64_to_utf8(unescape(localStorage.getItem("CookieClickerGame")).split("!END!")[0]),t=e.match(/CookieMonster.*(;|$)/);if(null!==t){const o=e.replace(t[0],`CookieMonster:${fn()}`);localStorage.setItem("CookieClickerGame",escape(`${utf8_to_b64(o)}!END!`))}}function Mn(t){if(void 0!==localStorage.CMConfig&&delete localStorage.CMConfig,void 0!==t){e=t;let o=!1;Object.keys(an).forEach((t=>{void 0===e[t]?(o=!0,e[t]=an[t]):"Header"!==t&&"Colors"!==t?-1===t.indexOf("SoundURL")?e[t]>-1&&e[t]{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=an[t][n])})):Object.keys(an.Colors).forEach((n=>{void 0!==e[t][n]&&"string"==typeof e[t][n]||(o=!0,e[t][n]=an[t][n])}))})),o&&Tn(),xn(),Object.keys(an).forEach((e=>{"Header"!==e&&void 0!==gn[e].func&&gn[e].func()}))}else Mn(an)}function Sn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Bn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Ao(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${le(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ce((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(le(Game.Objects[o].bulkPrice)).join(le((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return ee=t,te=o,Bo(),l("tooltip").innerHTML}function Pn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("g",`${e}`)}),"this"),Game.tooltip.wobble()})}))}function En(){if(!u&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];d=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){d(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Tn()}function jn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){An(o),Game.UpdateMenu()},n.appendChild(i),n}function Un(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(H[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Dn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Hn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(jn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+co()0&&(t.appendChild(Un("basic","Heavenly Chips To Target Set In Settings (CUR)",document.createTextNode(le(e)))),t.appendChild(Un("basic","Time To Target (CUR, Current 5 Second Average)",document.createTextNode(se(e/ct)))))}const l=function(e){let t=Game.cookiesPs;vo(),0===qt["Heavenly key"].bought&&(qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Uo(),t=Ie,vo()),Ut>=1e6&&jo("Sacrifice"),Ut>=1e9&&jo("Oblivion"),Ut>=1e12&&jo("From scratch"),Ut>=1e15&&jo("Nihilism"),Ut>=1e18&&jo("Dematerialize"),Ut>=1e21&&jo("Nil zero zilch"),Ut>=1e24&&jo("Transcendence"),Ut>=1e27&&jo("Obliterate"),Ut>=1e30&&jo("Negative void"),Ut>=1e33&&jo("To crumbs, you say?"),Ut>=1e36&&jo("You get nothing"),Ut>=1e39&&jo("Humble rebeginnings"),Ut>=1e42&&jo("The end of the world"),Ut>=1e45&&jo("Oh, you're back"),Ut>=1e48&&jo("Lazarus"),Ut>=1e51&&jo("Smurf account"),Ut>=1e54&&jo("If at first you don't succeed"),qt["Heavenly chip secret"].bought=1,qt["Heavenly cookie stand"].bought=1,qt["Heavenly bakery"].bought=1,qt["Heavenly confectionery"].bought=1,qt["Heavenly key"].bought=1,Le=e;const o=Fe;Uo(),Vo(),o!==Fe&&Uo();const n=Ie-t;return Le=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(le(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Un("withTooltip","Reset Bonus Income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Un("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(jn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${le(ft)} / ${le(Ct)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){Sn()},e.appendChild(t),o.appendChild(Un("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${le(yt[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},n.appendChild(i),o.appendChild(Un("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==yt[1]?yt[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Ho).forEach((e=>{Game.Has(Ho[e])||(n.push(Ho[e]),o=!0)}));const i=[];Object.keys(Ro).forEach((e=>{Game.Has(Ro[e])||(i.push(Ro[e]),o=!0)}));const a=[];Object.keys($o).forEach((e=>{Game.Has($o[e])||(a.push($o[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=[];Object.keys(Io).forEach((e=>{Game.HasUnlocked(Io[e])||(s.push(Io[e]),o=!0)}));const c=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),d=Game.Has("Century egg");if(("christmas"===Game.season||o||c||d)&&(t.appendChild(jn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Un("basic","Halloween cookies left to buy",Dn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${le(100*(1-e))}% / ${le(100*(1-.9*e))}%`)))}if(0!==i.length){t.appendChild(Un("basic","Christmas cookies left to buy",Dn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}t.appendChild(Un("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${le(100*(1-e))}%`)))}0!==a.length&&t.appendChild(Un("basic","Valentine cookies left to buy",Dn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Un("basic","Normal easter eggs left to unlock",Dn(r))),t.appendChild(Un("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[0])}% / ${le(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Un("basic","Rare easter eggs left to unlock",Dn(l))),t.appendChild(Un("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${le(100*e(.98)[1])}% / ${le(100*e(.9)[1])}%`)))),0!==s.length&&t.appendChild(Un("basic","Rare plant drops left to unlock",Dn(s))),"christmas"===Game.season&&t.appendChild(Un("basic","Reindeer reward",document.createTextNode(le(pt)))),c&&t.appendChild(Un("withTooltip","Chocolate egg cookies",document.createTextNode(le(ut)),"ChoEggTooltipPlaceholder")),d&&t.appendChild(Un("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(dt-1))/100+"%")))}return t}()),o.appendChild(jn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Un("basic",`Average Cookies Per Second (Past ${q[e.AvgCPSHist]<60?`${q[e.AvgCPSHist]} seconds`:q[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(le(so(),3)))),o.appendChild(Un("basic",`Average Cookie Clicks Per Second (Past ${Y[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(le(vt,1)))),Game.Has("Fortune cookies")){const e=[];Object.keys(Do).forEach((t=>{Game.Has(Do[t])||e.push(Do[t])})),0!==e.length&&o.appendChild(Un("basic","Fortune Upgrades Left to Buy",Dn(e)))}if(e.ShowMissedGC&&o.appendChild(Un("basic","Missed Golden Cookies",document.createTextNode(le(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Un("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&xt){const t=xt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=xt,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(wt){const t=wt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=wt,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Tt){const t=Tt.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Tt,e.appendChild(i)}}}))}const Rn={BarsColors:"Bars/Colors",Calculation:"Calculation",Notification:"Notification",Tooltip:"Tooltips and additional insights",Statistics:"Statistics",Notation:"Notation",Miscellaneous:"Miscellaneous"},$n={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function In(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){An(t),Game.UpdateMenu()},n.appendChild(i),n}function zn(t){const o=document.createElement("div");if(o.className="listing","bool"===gn[t].type){const n=document.createElement("a");gn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=Wn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===gn[t].label.length?(e[t]=0,gn[t].toggle&&(l(Wn+t).className="option off")):l(Wn+t).className="option",void 0!==gn[t].func&&gn[t].func(),l(Wn+t).innerHTML=gn[t].label[e[t]],Tn()}(t)},n.textContent=gn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=gn[t].desc,o.appendChild(i),o}if("vol"===gn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=gn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Ln(t)},r.onchange=function(){Ln(t)},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){vn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===gn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${gn[t].label} `,o.appendChild(n);const i=document.createElement("input");i.id=Wn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${Wn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){Game.Prompt(a.outerHTML,[["Save",function(){e[`${t}`]=l(`CMConfig${t}Prompt`).value,Tn(),Game.ClosePrompt(),Game.UpdateMenu()}],"Cancel"])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=gn[t].desc,o.appendChild(s),o}if("color"===gn[t].type){o.className="";for(let t=0;tthis.max&&console.log("TEST"),e[t]=this.value,Tn(),sn()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=gn[t].desc,o.appendChild(a),o}return o}function Vn(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function _n(){M.Beautify=Beautify,Beautify=le,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),Re=1,Jt=Date.now(),Kt=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){Vn(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){Vn(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(function(){Vn(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("u",`${e}`)}),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e-1].amount>0){const o=Qt[Game.ObjectsById[e].name].name;Qt[o].amount-=1,Ee-=1,t=Qt[o].basePrice*Game.priceIncrease**Math.max(0,Qt[o].amount-1-Qt[o].free),t=Game.modifyBuildingPrice(Qt[o],t),t=Math.ceil(t);break}const o=Fe;return Uo(),Vo(),o!==Fe&&Uo(),[Ie-Game.cookiesPs,t]}(t),n=se(o/(e+Game.cookiesPs)),i=le(e/Game.cookiesPs);l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${le(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${Qe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Fn().picker&&void 0!==Fn().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Rn).forEach((t=>{const n=In(t,Rn[t]);o.appendChild(n),e.Header[t]&&("Notification"===t?Object.keys($n).forEach((t=>{const n=In(t,$n[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))}))})):Object.keys(gn).forEach((e=>{gn[e].group===t&&o.appendChild(zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Mn(an)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Hn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){An("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThe latest update (v 2.031.6) has revamped the way PP is colourcoded. In the previous versions this was not always correct and we had some settings that made it even more incorrect. With this update Cookie Monster compares the PP of a building to all other possibilities (also buying 10 or 100) of a building and colors the PP accordingly.
\nThis means that if it is better to buy 10 of a building immediately rather than to buy in increments of 1 Cookie Monster will now show this! In this case the buy 1 option will be yellow, while the buy 10 option will be green.
\nThis also means that you will see some more diverse colors. Rather than coloring according to arbitrary "middle values" Cookie Monster now uses a top 10, 20 and 30. While this might take some getting used to we believe the new system is much better in conveying useful information to the user while also being more correct!
\n
\nThis update also implements the following functions:
\n- Added a tooltip displaying the reward to the extra pop wrinkler buttons
\n- Added tooltips to the Gods in the Pantheon
\n- The tooltip for Elder Pledge now displays correctly, although it takes some time to load after Cookie Monster has been loaded
\n- You can now test the volume and sound of notifications in the settings screen
\n- The bottom bar will now flicker less and each column has received a bit of padding
\n- Introduced new colour scheme for PP, see the explanation of colors in the Readme or the settings
\n- Added option to show buttons that can hide the upgrade and building section
\n- Added option to display PP as a time unit, note that these are only approximations. PP does not translate directly into time (the name is deceptive, we know...)
\n- Statistics page now shows chance for random drops when they have not been achieved
\n
\nThis update fixes the following bugs:
\n- Incorrect amount for "required for max plant reward" in statistics page
\n- Fixed the tooltips of the \'?\' buttons in the statistics page not showing
\n- Fixed some unclear settings descriptions
\n
\nPlease submit any bug reports or feature requests to the GitHub page!\n
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,$=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):se(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),re=`${Game.OnAscend?"Ascending! ":""}${le(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=re;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=Ht?Ht.wrath?`[W${Math.ceil(Ht.life/Game.fps)}]`:`[G${Math.ceil(Ht.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,g&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=h?`[R${Math.ceil(Rt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=re;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;Ht&&(t=!0,Ht.wrath?e+=`[W${Math.ceil(Ht.life/Game.fps)}]`:e+=`[G${Math.ceil(Ht.life/Game.fps)}]`),g&&(t=!0,e+="[F]"),"christmas"===Game.season&&h&&(e+=`[R${Math.ceil(Rt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${le(Game.prestige)}.
(CpS +${le(Game.prestige)}%)`,n+='
'),n+=Se<1?"Ascending now would grant you no prestige.":Se<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${le(Se)} prestige levels (+${le(Se)}% CpS)
and ${le(Se)} heavenly chips to spend.`,n+='
',n+=`You need ${le(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${$t} to reach the next level and you are making ${le(ct,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function Xn(){bn(),en(),nn(),a=Object.keys(Game.mods).length,v=document.createElement("style"),v.type="text/css",v.id="CMCSS",document.head.appendChild(v),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=S+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.6",N)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",P)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",P)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",P)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{uo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=po("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:L},{id:"CMTimerBarGCBar",color:W}]);e.appendChild(t);const o=po("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:L},{id:"CMTimerBarRenBar",color:O}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=B+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(P,"Better than best PP building")),e.appendChild(o(E,"Same as best PP building")),e.appendChild(o(N,"Between best and worst PP buildings closer to best")),e.appendChild(o(O,"Between best and worst PP buildings closer to worst")),e.appendChild(o(F,"Same as worst PP building")),e.appendChild(o(W,"Worse than worst PP building")),e.appendChild(o(L,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=S+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",P)),e.appendChild(o("CMUpgradeBarGreen",E)),e.appendChild(o("CMUpgradeBarYellow",N)),e.appendChild(o("CMUpgradeBarOrange",O)),e.appendChild(o("CMUpgradeBarRed",F)),e.appendChild(o("CMUpgradeBarPurple",W)),e.appendChild(o("CMUpgradeBarGray",L)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMWhiteScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(D).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),H[e]=n}(D[e][0],D[e][1],D[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){Sn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopAll")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==yt[1]&&(Game.wrinklers[yt[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("wb","PopFattest")}),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("b",`${e}`)}),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(r=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("s","Lump")}),"this"),Game.tooltip.wobble()}),m=Game.LoadMinigames,Game.LoadMinigames=function(){m(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("ha","HarvestAllButton")}),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("p",[`${t[0]}`,`${t[2]}`])}),"this"),Game.tooltip.wobble()}}))),Pn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pag",e)}),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(function(){return Bn("pas",[e,Game.Objects.Temple.minigame.slot[e]])}),"this"),Game.tooltip.wobble()}}}(),Nn()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){I=1},l("backgroundLeftCanvas").onmouseout=function(){I=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{V[e]=0}))},_n(),Nn(),Game.CalculateGains(),Mn(),R=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.6 loaded!"):Game.Notify("Cookie Monster version 2.031.6 loaded!","","",1,1),Game.Win("Third-party")}const Qn={init:function(){kn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.6 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(Xn(),Game.registerHook("draw",Po),Game.registerHook("logic",xn),kn=!1)},load:function(e){const t=JSON.parse(e);bn(),Mn(t.settings),"2.031.6"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:fn};Game.registerMod("CookieMonster",Qn)})()})(); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 48fba0ee..d310927c 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","HideSectionsButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","failRateHalloween","dropRateMult","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","SeasonSection","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cookiemonster-mod/CookieMonster.js"],"names":["__webpack_modules__","877","module","global","factory","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","border-radius","setBoxShadow","box-shadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","right","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","styleElement","onFineChange","overwriteImportant","closable","insetWidth","insetColor","refine","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","background-image","background-position","background-size","background-repeat","background-origin","padding-left","padding-right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","min-width","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__esModule","d","definition","key","o","enumerable","CMOptions","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","ColorTextPre","ColorBackPre","ColorBlue","ColorGreen","ColorYellow","ColorOrange","ColorRed","ColorPurple","ColorGray","ColorPink","ColorBrown","Colors","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColors","Frenzy","Dragon Harvest","Elder frenzy","Clot","Click frenzy","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","BeautifyFormatting_Beautify","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColor","text","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimDateCentury","Game","startDate","SimDateAges","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColor","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColor","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColor","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColor","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","elderWrath","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipCreateTooltipBox","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColor","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColor","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","matureBase","plantName","GardenPlots","totalGain","mortal","tile","immortal","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","TooltipCreateWarningSection","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","Draw","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColor","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMAvgQueue","[object Object]","maxLength","queue","newValue","timePeriod","CacheAvgCPS","currDate","Date","now","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","addLatest","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColor","getSumPrice","PPExcludeTop","CachePP","PP_CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","computedMouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","SettingsDefault","UpgradeBarFixedPos","GeneralSound","GCNotification","GCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","TooltipAmor","DragonAuraInfo","TooltipAscendButton","MissingUpgrades","DetailedTime","GrimoireBar","HeavenlyChipsTarget","ShowMissedGC","Blue","Green","Yellow","Orange","Red","Purple","Gray","Pink","Brown","GCTimer","Favicon","WrinklerButtons","HideSectionsButtons","BulkBuyBlock","Header","BarsColors","Calculation","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Tooltip","Statistics","Notation","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","Config_CheckNotificationPermissions","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateColors","UpdateFavicon","wrath","href","Setting","group","SettingStandard","label","desc","toggle","super","SettingVolume","SettingInputNumber","SettingsData","insertBefore","save","stringify","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","InitData","isInitializing","Flash","config","setTimeout","PlaySound","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoop","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","jscolor_default","ToggleSetting_ConfigPrefix","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColor","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColorFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","LuckySection","chainColor","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColor","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColorFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColorFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","ChainSection","conjureColor","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColor","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","SpellsSection","bakeberryColor","bakeberryFrag","chocorootColor","chocorootFrag","queenbeetColor","queenbeetFrag","duketaterColor","duketaterFrag","GardenSection","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","PrestigeSection","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","missingPlantDrops","centEgg","failRateHalloween","dropRateMult","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","SeasonSection","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","Prompt","outerHTML","ClosePrompt","innerDiv","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","mouseDown","setOnCrate","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","groupObject","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateWhiteScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":";AAAS,MACC,IAAIA,EAAsB,CAE9BC,IACA,SAAUC,IAchB,SAAWC,EAAQC,GAElB,aAEuC,iBAAnBF,EAAOG,QAc3BD,EAAQD,GAZPD,EAAOG,QAAUF,EAAOG,SACvBF,EAASD,GACT,SAAUI,GACT,IAAKA,EAAID,SACR,MAAM,IAAIE,MAAM,wCAEjB,OAAOJ,EAAQG,IAZnB,CAoBqB,oBAAXE,OAAyBA,OAASC,MAAM,SAAUD,GAK5D,aAGA,IAwgDME,EAt7BAC,EAzXAC,EAvNFC,EAFAC,IAEAD,EAAM,CAGTE,aAAc,EAEdC,UAAY,GAEZC,WAAa,GAGbC,SAAW,gBACY,IAAXV,GAA0BA,EAAOH,UAC3CG,EAAOH,SAASc,iBAAiB,mBAAoBN,EAAIO,IAAIC,MAAM,IAKrEC,kBAAoB,SAAUC,EAAUC,GAEvC,KADAA,EAAWA,EAAWX,EAAIY,KAAKD,GAAYhB,EAAOH,UAEjD,MAAM,IAAIE,MAAM,qBAQjB,IALA,IAAImB,EAAOF,EAASG,iBAAiBJ,GAGjCK,EAAa,IAAIC,OAAO,WAAahB,EAAIO,IAAIU,YAAc,6BAA8B,KAEpFC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,GAAK,EAAG,CAUxC,IAAIE,EAAUC,EARd,KAAIR,EAAKK,GAAGjB,SAAWY,EAAKK,GAAGjB,mBAAmBD,EAAIO,YAIjCe,IAAjBT,EAAKK,GAAGK,MAAoD,SAA9BV,EAAKK,GAAGK,KAAKC,gBAA4BxB,EAAIyB,wBAOzB,QAApDL,EAAWpB,EAAI0B,YAAYb,EAAKK,GAAI,aACpCL,EAAKK,GAAGS,YAAcN,EAAIR,EAAKK,GAAGS,UAAUC,MAAMb,KAClD,CACD,IAAIc,EAAYhB,EAAKK,GAEjBY,EAAU,GACG,OAAbV,EACHU,EAAUV,EAEAC,IACVU,QAAQC,KAAK,sFAAwFhC,EAAIiC,SACrGZ,EAAE,KACLS,EAAUT,EAAE,KAId,IAAIa,EAAO,KACX,GAAIJ,EAAQK,OACX,IACCD,EAAOlC,EAAIoC,gBAAgBN,GAC1B,MAAOO,GACRN,QAAQC,KAAKK,EAAI,KAAOP,GAI1B,IACC,IAAI9B,EAAIO,IAAIsB,EAAWK,GACtB,MAAOG,GACRN,QAAQC,KAAKK,OAOjBD,gBAAkB,SAAUE,GAC3B,IAAIJ,EAAO,KAEX,IACCA,EAAOK,KAAKC,MAAMF,GAEjB,MAAOG,GACR,IAAKzC,EAAIO,IAAImC,UACZ,MAAM,IAAIhD,MAAM,4CAA8C+C,GAG9D,IACCP,EAAO,IAAKS,SAAU,eAAiBL,EAAM,kDAAtC,GACN,MAAOM,GACR,MAAM,IAAIlD,MAAM,uCAAyCkD,IAI5D,OAAOV,GAIRW,aAAe,WAEd,IADA,IAAIC,EAAO,GACF5B,EAAI,EAAGA,EAAIlB,EAAIG,UAAUgB,OAAQD,GAAK,EAE1ClB,EAAIG,UAAUe,IAAMlB,EAAIG,UAAUe,GAAG6B,eACxCD,EAAKE,KAAKhD,EAAIG,UAAUe,IAG1B,OAAO4B,GAIRG,SAAW,SAAUC,GACpB,IAAIC,EAAKxD,EAAOH,SAAS4D,cAAcF,GAEvC,OADAlD,EAAIqD,QAAQF,EAAI,OAAO,GAChBA,GAIRvC,KAAO,SAAU0C,GAChB,IAAKA,EACJ,OAAO,KAGR,GAA8B,iBAAnBA,EAA6B,CAEvC,IAAIC,EAAMD,EACNH,EAAK,KACT,IACCA,EAAKxD,EAAOH,SAASgE,cAAcD,GAClC,MAAOlB,GAER,OADAN,QAAQC,KAAKK,GACN,KAKR,OAHKc,GACJpB,QAAQC,KAAK,sCAAuCuB,GAE9CJ,EAGR,OAAInD,EAAIyD,OAAOH,GAEPA,GAGRvB,QAAQC,KAAK,qCAAsCsB,EAAgBA,GAC5D,OAKRG,OAAS,SAAUC,GAClB,MAAoB,iBAATC,KACHD,aAAeC,KAEhBD,GAAsB,iBAARA,GAA4C,iBAAjBA,EAAIE,UAAiD,iBAAjBF,EAAIG,UAIzFA,SAAW,SAAUjD,GACpB,SAAIA,IAAQA,EAAKiD,WACTjD,EAAKiD,SAASrC,eAMvBsC,eAAiB,SAAUlD,GAC1B,KAAOA,EAAKmD,YACXnD,EAAKoD,YAAYpD,EAAKmD,aAKxBE,YAAc,SAAUd,GACvB,OAAOA,GAA2B,UAArBnD,EAAI6D,SAASV,IAA6C,SAA1BA,EAAG5B,KAAKC,eAItD0C,SAAW,SAAUf,GACpB,IAAKA,EACJ,OAAO,EAER,IAAIgB,EAAInE,EAAI6D,SAASV,GACrB,MACQ,WAANgB,GACM,UAANA,GAAiB,CAAC,SAAU,SAAU,SAASC,QAAQjB,EAAG5B,KAAKC,gBAAkB,GAKpF6C,cAAgB,SAAUlB,GACzB,OAAQnD,EAAI6D,SAASV,IACpB,IAAK,QAAS,OAASA,EAAGmB,OAA6B,KAApBnB,EAAGmB,MAAMnC,OAC5C,IAAK,SAAU,MAAkC,KAA1BgB,EAAGoB,YAAYpC,OAEvC,OAAO,MAKRqC,wBAA0B,WACzB,IAAIC,GAAY,EAEhB,IACC,IAAIvC,EAAOwC,OAAOC,eAAe,GAAI,UAAW,CAC/CC,IAAK,WAAcH,GAAY,KAEhC9E,EAAOW,iBAAiB,cAAe,KAAM4B,GAC7CvC,EAAOkF,oBAAoB,cAAe,KAAM3C,GAC/C,MAAOG,IAET,OAAOoC,EAXkB,GAe1BhD,sBACK1B,EAAMJ,EAAOH,SAAS4D,cAAc,YACpCrD,EAAI+E,eACP/E,EAAI+E,aAAa,OAAQ,SACK,SAA1B/E,EAAIwB,KAAKC,iBAQfuD,SAAW,gBAOX1B,QAAU,WACT,IAAI2B,EAAMC,UAAU,GAEpB,GAAyB,IAArBA,UAAU9D,OAAc,CAE3B,IAAI+D,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAEnFT,EAAQW,UAAU,GAGtB,OADAC,EAHIE,EAAOH,UAAU,IAGRX,GACN,EAED,GAAyB,IAArBW,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAElEC,EAAOF,EAAIG,eAAenF,EAAI+E,UAAYC,EAAIhF,EAAI+E,UAAaC,EAAIhF,EAAI+E,UAAY,GAAvF,IACIM,EAAMJ,UAAU,GAEpB,IAAK,IAAIG,KAAQC,EACZA,EAAIF,eAAeC,KACtBF,EAAKE,GAAQC,EAAID,IAGnB,OAAO,EAGR,MAAM,IAAI1F,MAAM,sBAOjB4F,WAAa,WACZ,IAAIN,EAAMC,UAAU,GACpB,IAAKD,EAAIG,eAAenF,EAAI+E,UAC3B,OAAO,EAER,IAAK,IAAI7D,EAAI,EAAGA,EAAI+D,UAAU9D,OAAQD,GAAK,EAAG,CAC7C,IAAIkE,EAAOH,UAAU/D,UACd8D,EAAIhF,EAAI+E,UAAUK,GAE1B,OAAO,GAIRG,QAAU,SAAUP,EAAKI,EAAMI,GAC9B,IAAKR,EAAIG,eAAenF,EAAI+E,UAAW,CAEtC,QAAmBzD,IAAfkE,EAGH,OAFAR,EAAIhF,EAAI+E,UAAY,GAKtB,IAAIG,EAAOF,EAAIhF,EAAI+E,UAKnB,OAHKG,EAAKC,eAAeC,SAAwB9D,IAAfkE,IACjCN,EAAKE,GAAQI,GAEPN,EAAKE,IAIb1D,YAAc,SAAUyB,EAAIsC,GAC3B,IAAIC,EAAW,QAAUD,EAEzB,OADgBtC,EAAGwC,aAAaD,IAKjCE,YAAc,SAAUzC,EAAIsC,EAAMnB,GACjC,IAAIoB,EAAW,QAAUD,EACzBtC,EAAG2B,aAAaY,EAAUpB,IAI3BuB,qBAAuB,GAGvBC,iBAAmB,SAAUC,EAAW5C,EAAI6C,EAAMC,GAC5CjG,EAAI6F,qBAAqBV,eAAeY,KAC5C/F,EAAI6F,qBAAqBE,GAAa,IAEvC/F,EAAI6F,qBAAqBE,GAAW/C,KAAK,CAACG,EAAI6C,EAAMC,IACpD9C,EAAG7C,iBAAiB0F,EAAMC,GAAM,IAIjCC,kBAAoB,SAAUH,GAC7B,GAAI/F,EAAI6F,qBAAqBV,eAAeY,GAAY,CACvD,IAAK,IAAI7E,EAAI,EAAGA,EAAIlB,EAAI6F,qBAAqBE,GAAW5E,OAAQD,GAAK,EAAG,CACvE,IAAIiF,EAAMnG,EAAI6F,qBAAqBE,GAAW7E,GAC9CiF,EAAI,GAAGtB,oBAAoBsB,EAAI,GAAIA,EAAI,IAAI,UAErCnG,EAAI6F,qBAAqBE,KAKlCK,eAAiB,SAAU/D,GACtBA,EAAE+D,gBAAkB/D,EAAE+D,iBAC1B/D,EAAEgE,aAAc,GAIjBC,cAAgB,SAAUC,GAErBA,EAAOC,aACVxG,EAAIyG,gBAAkBF,EACtBvG,EAAIyG,gBAAgBD,eAKtBE,cAAgB,WAEX1G,EAAIyG,kBACPzG,EAAIyG,gBAAgBE,iBACpB3G,EAAIyG,gBAAkB,OAKxBG,aAAe,SAAUzD,EAAI0D,EAAWC,EAASC,GAChD,GAAK5D,EAAL,CAIA,IAAI6D,EAAK,KAaT,MAXqB,mBAAVC,MACVD,EAAK,IAAIC,MAAMJ,EAAW,CACzBC,QAASA,EACTC,WAAYA,KAIbC,EAAKrH,EAAOH,SAAS0H,YAAY,UAC9BC,UAAUN,EAAWC,EAASC,KAG7BC,IAKLhH,EAAIqD,QAAQ2D,EAAI,YAAY,GAE5B7D,EAAGiE,cAAcJ,IACV,KAIRK,kBAAoB,SAAUlE,EAAI0D,EAAWC,EAASC,GAChD5D,GAGDnD,EAAIiE,YAAYd,IACnBnD,EAAI4G,aAAazD,EAAI0D,EAAWC,EAASC,IAK3CO,SAAW,SAAUN,GACpB,IAAIO,EAAO,CACVC,EAAG,MACHC,GAAI,QACJC,GAAI,UAEL,MAAuB,iBAAZV,EAAGW,KACNX,EAAGW,UACerG,IAAf0F,EAAGY,SAAyBL,EAAKpC,eAAe6B,EAAGY,SACtDL,EAAKP,EAAGY,SAET,MAIRC,QAAU,SAAUvF,GACnB,OAAKA,EAGEA,EAAIwF,QAAQ,aAAc,IAAIC,MAAM,OAFnC,IAOTC,SAAW,SAAUjI,EAAK4B,GACzB,QAAKA,SAGiBL,IAAlBvB,EAAIkI,UACAlI,EAAIkI,UAAUC,SAASvG,IAGvB,IAAM,IAAM5B,EAAI4B,UAAUmG,QAAQ,OAAQ,KAAO,KAAK1D,QAAQ,IAAMzC,EAAY,OAKzFwG,SAAW,SAAUpI,EAAK4B,GACzB,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EACtClB,EAAIgI,SAASjI,EAAKqI,EAAWlH,MACjCnB,EAAI4B,YAAc5B,EAAI4B,UAAY,IAAM,IAAMyG,EAAWlH,SAR1D,IAAK,IAAIA,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUI,IAAID,EAAWlH,KAchCoH,YAAc,SAAUvI,EAAK4B,GAC5B,IAAIyG,EAAapI,EAAI6H,QAAQlG,GAE7B,QAAsBL,IAAlBvB,EAAIkI,UAOR,IAAS/G,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAAG,CAC9C,IAAIqH,EAAO,IAAIvH,OACd,QAAUoH,EAAWlH,GAArB,YACSkH,EAAWlH,GADpB,aAESkH,EAAWlH,GAAK,SACzB,KAEDnB,EAAI4B,UAAY5B,EAAI4B,UAAUmG,QAAQS,EAAM,WAb5C,IAAK,IAAIrH,EAAI,EAAGA,EAAIkH,EAAWjH,OAAQD,GAAK,EAC3CnB,EAAIkI,UAAUO,OAAOJ,EAAWlH,KAiBnCuH,aAAe,SAAU1I,GAKxB,OAJgBJ,EAAO+I,iBAAmB/I,EAAO+I,iBAAiB3I,GAAOA,EAAI4I,eAKrE,IAUTC,SAAW,SAAU7I,EAAK8I,EAAQC,EAAWC,GAE5C,IAAIC,EAAWF,EAAY,YAAc,GACrCG,EAAY,KAEhB,IAAK,IAAI7D,KAAQyD,EAChB,GAAIA,EAAO1D,eAAeC,GAAO,CAChC,IAAI8D,EAAS,KAEQ,OAAjBL,EAAOzD,IAGL6D,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,cAE1BkJ,GAAaA,EAAU9D,eAAeC,KAEzC8D,EAASD,EAAU7D,MAMhB2D,IACEE,IAEJA,EAAYjJ,EAAIuF,QAAQxF,EAAK,YAAa,KAEtCkJ,EAAU9D,eAAeC,KAE7B6D,EAAU7D,GAAQrF,EAAIoJ,MAAM/D,KAG9B8D,EAASL,EAAOzD,IAGF,OAAX8D,GACHnJ,EAAIoJ,MAAMC,YAAYhE,EAAM8D,EAAQF,KAOxCK,SAAW,SAAUC,EAAGC,EAAGC,GAC1B,MAAO,MACL,IAAMC,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1CC,eAIHC,UAAY,SAAUR,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,MACL,IAAMN,KAAKC,MAAMJ,GAAGK,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMH,GAAGI,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAMF,GAAGG,SAAS,KAAKC,QAAQ,IAC1C,IAAMH,KAAKC,MAAU,IAAJK,GAASJ,SAAS,KAAKC,QAAQ,IAChDC,eAIHG,SAAW,SAAUV,EAAGC,EAAGC,GAC1B,MAAO,OACNC,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GACZ,KAIDS,UAAY,SAAUX,EAAGC,EAAGC,EAAGO,GAC9B,MAAO,QACNN,KAAKC,MAAMJ,GAAK,IAChBG,KAAKC,MAAMH,GAAK,IAChBE,KAAKC,MAAMF,GAAK,IACfC,KAAKC,MAA4C,KAArCK,QAA4B,EAAIA,IAAY,IAC1D,KAIDG,gBAmBKpK,EAjBJ,WAKC,IAJA,IAAIqK,EAAU,kBACVC,EAAW,CAAC,GAAI,WAAY,QAAS,MAAO,QAC5CC,EAAS1K,EAAOH,SAAS4D,cAAc,OAElClC,EAAI,EAAGA,EAAIkJ,EAASjJ,OAAQD,GAAK,EAAG,CAC5C,IAAIoJ,EAAUF,EAASlJ,GAAKiJ,EACxBI,EAASD,EAAU,2CAGvB,GADAD,EAAOlB,MAAMqB,WAAaD,EACtBF,EAAOlB,MAAMqB,WAChB,OAAOF,EAGT,OAAOH,EAGOM,GAER,WACN,OAAO3K,EAAW,IAAM4K,MAAMC,UAAUC,KAAKC,KAAK5F,UAAW,MAAQ,MAMvE6F,gBAAkB,SAAU/K,EAAKuE,GAChCtE,EAAI4I,SAAS7I,EAAK,CAACgL,gBAAkBzG,GAAS,OAI/C0G,aAAe,SAAUjL,EAAKuE,GAC7BtE,EAAI4I,SAAS7I,EAAK,CAACkL,aAAc3G,GAAS,UAI3C4G,cAAgB,SAAU7I,EAAG8I,GAC5B,IAAIC,EAAE,EAAGC,EAAE,EACPC,EAAOjJ,EAAEkJ,wBAGb,GAFAH,EAAIE,EAAKE,KACTH,EAAIC,EAAKG,KACJN,EAAoB,CACxB,IAAIO,EAAU1L,EAAI2L,aAClBP,GAAKM,EAAQ,GACbL,GAAKK,EAAQ,GAEd,MAAO,CAACN,EAAGC,IAIZO,eAAiB,SAAUvJ,GAC1B,MAAO,CAACA,EAAEwJ,YAAaxJ,EAAEyJ,eAK1BC,iBAAmB,SAAU1J,GAC5B,IAAI+I,EAAI,EAAGC,EAAI,EASf,YARgC,IAArBhJ,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/DiK,EAAI/I,EAAE2J,eAAe,GAAGC,QACxBZ,EAAIhJ,EAAE2J,eAAe,GAAGE,SACO,iBAAd7J,EAAE4J,UACnBb,EAAI/I,EAAE4J,QACNZ,EAAIhJ,EAAE6J,SAEA,CAAEd,EAAGA,EAAGC,EAAGA,IAKnBc,iBAAmB,SAAU9J,GAC5B,IACI+J,GADS/J,EAAEkE,QAAUlE,EAAEgK,YACHd,wBAIpBU,EAAU,EAAGC,EAAU,EAY3B,YAXgC,IAArB7J,EAAE2J,gBAAkC3J,EAAE2J,eAAe7K,QAE/D8K,EAAU5J,EAAE2J,eAAe,GAAGC,QAC9BC,EAAU7J,EAAE2J,eAAe,GAAGE,SACC,iBAAd7J,EAAE4J,UACnBA,EAAU5J,EAAE4J,QACZC,EAAU7J,EAAE6J,SAKN,CAAEd,EAFLa,EAAUG,EAAWZ,KAEVH,EADXa,EAAUE,EAAWX,MAK1BE,WAAa,WACZ,IAAIW,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,EACL5M,EAAO6M,aAAeF,EAAIG,aAAeH,EAAII,YAAc,IAC3D/M,EAAOgN,aAAeL,EAAIM,YAAcN,EAAIO,WAAa,KAK5DC,YAAc,WACb,IAAIR,EAAM3M,EAAOH,SAAS+M,gBAC1B,MAAO,CACL5M,EAAOoN,YAAcT,EAAIU,YACzBrN,EAAOsN,aAAeX,EAAIY,eAW7BC,QAAU,SAAU7D,EAAGC,EAAGC,GACzBF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIrF,EAAIsF,KAAK2D,IAAI3D,KAAK2D,IAAI9D,EAAEC,GAAGC,GAC3B6D,EAAI5D,KAAK6D,IAAI7D,KAAK6D,IAAIhE,EAAEC,GAAGC,GAC3BnI,EAAIgM,EAAIlJ,EACZ,GAAU,IAAN9C,EAAW,MAAO,CAAE,KAAM,EAAG,IAAMgM,GACvC,IAAIE,EAAIjE,IAAInF,EAAI,GAAGqF,EAAED,GAAGlI,EAAKkI,IAAIpF,EAAI,GAAGmF,EAAEE,GAAGnI,EAAI,GAAGkI,EAAED,GAAGjI,EACzD,MAAO,CACN,IAAU,IAAJkM,EAAM,EAAEA,GACPlM,EAAEgM,EAAT,IACA,IAAMA,IAWRG,QAAU,SAAUD,EAAGE,EAAGJ,GACzB,IAAIK,EAAWL,EAAI,IAAX,IAER,GAAU,OAANE,EACH,MAAO,CAAEG,EAAGA,EAAGA,GAGhBH,GAAK,GACLE,GAAK,IAEL,IAAIvM,EAAIuI,KAAKkE,MAAMJ,GAEflM,EAAIqM,GAAK,EAAID,GACbtJ,EAAIuJ,GAAK,EAAID,GAFTvM,EAAE,EAAIqM,EAAErM,EAAI,GAAGqM,EAAErM,KAGzB,OAAQA,GACP,KAAK,EACL,KAAK,EAAG,MAAO,CAACwM,EAAEvJ,EAAE9C,GACpB,KAAK,EAAG,MAAO,CAAC8C,EAAEuJ,EAAErM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAEqM,EAAEvJ,GACpB,KAAK,EAAG,MAAO,CAAC9C,EAAE8C,EAAEuJ,GACpB,KAAK,EAAG,MAAO,CAACvJ,EAAE9C,EAAEqM,GACpB,KAAK,EAAG,MAAO,CAACA,EAAErM,EAAE8C,KAKtByJ,iBAAmB,SAAUtL,GAC5B,IAKIjB,EALAwM,EAAM,CACTC,KAAM,KACNC,OAAQ,MAKT,GAAI1M,EAAIiB,EAAIV,MAAM,4BAA6B,CAG9C,GAAoB,IAAhBP,EAAE,GAAGF,OAER0M,EAAIE,OAAS,OACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAAM,UAG3B,GAAoB,IAAhBvI,EAAE,GAAGF,OAEf0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1BoE,SAAS3M,EAAE,GAAGuI,OAAO,EAAE,GAAG,IAC1B,UAGK,IAAoB,IAAhBvI,EAAE,GAAGF,OAWf,OAAO,EATP0M,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVE,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzCD,SAAS3M,EAAE,GAAG4M,OAAO,GAAK5M,EAAE,GAAG4M,OAAO,GAAG,IACzC,MAOF,OAAOJ,EAGR,GAAIxM,EAAIiB,EAAIV,MAAM,6BAA8B,CAG/C,IAEIsM,EAAIC,EAAIC,EAAIC,EAFZC,EAAMjN,EAAE,GAAG0G,MAAM,KACjBwG,EAAK,kCAET,GACCD,EAAInN,QAAU,IACb+M,EAAKI,EAAI,GAAG1M,MAAM2M,MAClBJ,EAAKG,EAAI,GAAG1M,MAAM2M,MAClBH,EAAKE,EAAI,GAAG1M,MAAM2M,IAiBnB,OAfAV,EAAIE,OAAS,MACbF,EAAIC,KAAO,CACVU,WAAWN,EAAG,KAAO,EACrBM,WAAWL,EAAG,KAAO,EACrBK,WAAWJ,EAAG,KAAO,EACrB,MAIAE,EAAInN,QAAU,IACbkN,EAAKC,EAAI,GAAG1M,MAAM2M,MAEnBV,EAAIE,OAAS,OACbF,EAAIC,KAAK,GAAKU,WAAWH,EAAG,KAAO,GAE7BR,EAIT,OAAO,GAIRY,kBAAoB,SAAUC,GAC7B,IAAIC,EAAO,GAEU,iBAAVD,EAEVA,EAAM5G,QAAQ,iDAAiD,SAAUpE,GACxEiL,EAAK3L,KAAKU,MAEDgH,MAAMkE,QAAQF,KACxBC,EAAOD,GAOR,IAFA,IAAIG,EAAS,GAEJ3N,EAAI,EAAGA,EAAIyN,EAAKxN,OAAQD,IAAK,CACrC,IAAI4N,EAAQ9O,EAAI4N,iBAAiBe,EAAKzN,IAClC4N,GACHD,EAAO7L,KAAK8L,GAId,OAAOD,GAIRE,wBAA0B,SAAUF,GACnC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAAO1N,OAAQD,IAAK,CACvC,IAAI6I,EAAI8E,EAAO3N,GAAG4M,KAAK,GACvB,GAAU,OAAN/D,GAAcA,EAAI,EACrB,OAAO,EAGT,OAAO,GAIRiF,cAAgB,SAAUjB,GACzB,OAAQA,EAAOvM,eACf,IAAK,OACL,IAAK,OACJ,OAAO,EAER,OAAO,GAQRyN,sBAAwB,SAAUC,GACjC,IAAIC,EAAMxP,EAAOyP,kBAAoB,EACrCF,EAAOG,OAASF,EAChBD,EAAOI,QAAUH,EACPD,EAAOK,WAAW,MACxBC,MAAML,EAAKA,IAIhBM,sBAAwB,SAAUX,EAAOY,EAAcC,EAAWC,GAEjE,IAAIC,EAAOpG,KAAKC,MAAM1J,EAAIO,IAAIuP,iBAAiB3O,QAC3C4O,EAAS/P,EAAIO,IAAIyP,eACjBC,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAEnBC,EAASV,GAAiC,EAATI,EACjCO,EAAmB,EAATP,EAEVb,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAE5BL,EAAOG,MAAQgB,EACfnB,EAAOI,OAASgB,EACZV,GACH5P,EAAIiP,sBAAsBC,GAI3BqB,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,GAG3BC,EAAIC,UAAYL,EAChB,IAAK,IAAI/E,EAAI,EAAGA,EAAIiF,EAAQjF,GAAc,EAAT2E,EAChCQ,EAAIE,SAASrF,EAAG,EAAG2E,EAAQA,GAC3BQ,EAAIE,SAASrF,EAAI2E,EAAQA,EAAQA,EAAQA,GAGtCjB,IAEHyB,EAAIC,UAAY1B,EAChByB,EAAIE,SAAS,EAAG,EAAGJ,EAAQC,IAG5B,IAAII,EAAQ,KACZ,OAAQhB,GACP,IAAK,OACJgB,EAAQ,EACRH,EAAII,UAAU,EAAG,EAAGd,EAAK,EAAGS,GAC5B,MACD,IAAK,QACJI,EAAQL,EAASR,EACjBU,EAAII,UAAUN,EAAUR,EAAK,EAAI,EAAGA,EAAK,EAAGS,GAG9C,GAAc,OAAVI,EAAgB,CACnBH,EAAIK,UAAY,EAChB,IAAK,IAAI1P,EAAI,EAAGA,EAAIlB,EAAIO,IAAIuP,iBAAiB3O,OAAQD,GAAK,EACzDqP,EAAIM,YACJN,EAAIO,YAAc9Q,EAAIO,IAAIuP,iBAAiB5O,GAC3CqP,EAAIQ,OAAO,GAAML,EAAQxP,EAAG,GAC5BqP,EAAIS,OAAO,GAAMN,EAAQxP,EAAGoP,GAC5BC,EAAIU,SAIN,MAAO,CACN/B,OAAQA,EACRG,MAAOgB,EACPf,OAAQgB,IAMVY,wBAA0B,SAAUpC,EAAOqC,EAAU9B,GACpD,IAAI+B,EAkBJ,OAfCA,EADGD,GAAY9B,EACN,CACR,MAAQ,CAAC7D,KAAO,QAAS6F,MAAQ,QAAQF,GACzCrC,EAAQ,MACRA,EAAQ,IAAMO,EAAQ,KACtB,kBAAoBA,EAAQ,GAAK,KACjC,sBAGQ,CACR,WACAP,EAAQ,MACRA,EAAQ,SAIH9O,EAAIkK,eAAeoH,MAAM1R,KAAMwR,IAIvCG,eAAiB,WAEhB,GAAKvR,EAAIwR,QAAWxR,EAAIwR,OAAOC,MAA/B,CAIA,IAEIC,EAAIC,EAFJC,EAAU5R,EAAIwR,OAAOC,MAIrBG,EAAQC,OAGXH,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAAe,GAC9C4O,EAAK,CAAC,EAAG,KAETD,EAAK1R,EAAIkL,cAAc0G,EAAQ7O,eAC/B4O,EAAK3R,EAAI2L,cAGV,IAII5B,EAAGP,EAAGsI,EAJNC,EAAK/R,EAAI4L,eAAegG,EAAQ7O,eAChCiP,EAAKhS,EAAI8M,cACTmF,EAAKjS,EAAIkS,cAAcN,GACvBO,EAAK,CAACF,EAAGG,QAASH,EAAGI,SAEzB,OAAQT,EAAQT,SAAS3P,eACxB,IAAK,OAAQuI,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,IAAK,QAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAAG,MAC5B,IAAK,MAAQ/H,EAAE,EAAGP,EAAE,EAAGsI,GAAG,EAAG,MAC7B,QAAa/H,EAAE,EAAGP,EAAE,EAAGsI,EAAE,EAE1B,IAAIQ,GAAKP,EAAGvI,GAAG2I,EAAG3I,IAAI,EAGtB,GAAKoI,EAAQW,cAMRC,EAAK,EACPb,EAAG5H,GAAG2H,EAAG3H,GAAGoI,EAAGpI,GAAKiI,EAAGjI,KACrB4H,EAAG5H,GAAG2H,EAAG3H,GAAGgI,EAAGhI,GAAG,EAAIiI,EAAGjI,GAAG,GAAK2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,IAAM,EAAI2H,EAAG3H,GAAGgI,EAAGhI,GAAGoI,EAAGpI,GAC3E2H,EAAG3H,IACH4H,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG2I,EAAG3I,GAAG8I,EAAEA,EAAER,EAAIE,EAAGxI,IACjCmI,EAAGnI,GAAGkI,EAAGlI,GAAGuI,EAAGvI,GAAG,EAAIwI,EAAGxI,GAAG,GAAKkI,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAC/FJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAAK,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,EAAIJ,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,QAXhE,IAAIU,EAAK,CACRd,EAAG3H,GACH2H,EAAGlI,GAAGuI,EAAGvI,GAAG8I,EAAEA,EAAER,GAalB,IAAI1G,EAAIoH,EAAGzI,GACPsB,EAAImH,EAAGhJ,GACPiJ,EAAgBb,EAAQC,MAAQ,QAAU,WAC1Ca,GACFF,EAAG,GAAKL,EAAG,GAAKT,EAAG,IAAMc,EAAG,GAAKd,EAAG,GAAKK,EAAG,KAC5CS,EAAG,GAAKL,EAAG,GAAKT,EAAG,GAAKK,EAAG,GAE7B/R,EAAI2S,cAAcf,EAASxG,EAAGC,EAAGoH,EAAeC,KAIjDC,cAAgB,SAAUf,EAASxG,EAAGC,EAAGoH,EAAeC,GACvD,IAAIE,EAAUF,EAAiB,EAAId,EAAQiB,WAE3C7S,EAAIwR,OAAOsB,KAAK3J,MAAMgI,SAAWsB,EACjCzS,EAAIwR,OAAOsB,KAAK3J,MAAMqC,KAAOJ,EAAI,KACjCpL,EAAIwR,OAAOsB,KAAK3J,MAAMsC,IAAMJ,EAAI,KAEhCrL,EAAIgL,aACHhL,EAAIwR,OAAOuB,KACXnB,EAAQoB,OACP,IAAIhT,EAAIH,UAAU,EAAG+S,EAAShB,EAAQiB,WAAY,EAAGjB,EAAQqB,aAC7D,OAIHf,cAAgB,SAAUN,GACzB,IAAIsB,EAAI,EAAItB,EAAQuB,mBAAqBvB,EAAQvC,MAC7C9B,EAAI,EAAIqE,EAAQuB,mBAAqBvB,EAAQtC,OAE7C8D,EAAc,EAAIxB,EAAQuB,mBAAqB,EAAInT,EAAIqT,kBAAkBzB,GAAWA,EAAQ0B,WAE5FtT,EAAIuT,iBAAiB3B,KACxBsB,GAAKE,GAEFxB,EAAQ4B,oBACXN,GAAKE,GAGN,IAAIK,EAAMzT,EAAI0T,eAAe9B,EAASsB,GAElCO,EAAInE,SACP/B,GAAKkG,EAAInE,OAASsC,EAAQ+B,SAEvB/B,EAAQgC,cACXrG,GAAK,EAAIqE,EAAQuB,mBAAqBvB,EAAQ+B,QAAU/B,EAAQiC,cAGjE,IAAIC,EAAKZ,EAAK,EAAItB,EAAQ+B,QACtBI,EAAKxG,EAAK,EAAIqE,EAAQ+B,QAE1B,MAAO,CACNK,SAAUd,EACVe,SAAU1G,EACV2G,QAASJ,EACTK,QAASJ,EACT3B,QAAS0B,EAAM,EAAIlC,EAAQwC,YAC3B/B,QAAS0B,EAAM,EAAInC,EAAQwC,YAC3BC,QAASZ,IAKXC,eAAiB,SAAU9B,EAASvC,GACnC,IAAIiF,EAAO,EAAGC,EAAO,EAAGC,EAAQ,EAAGC,EAAQ,EAAGnF,EAAS,EACnDoF,EAAc9C,EAAQ+C,SAAW/C,EAAQ+C,SAASxT,OAAS,EAiB/D,OAfIuT,IAEHH,GADAD,EAAO1C,EAAQgD,aACD,EAAInL,KAAKoL,KAAKH,EAAcJ,GAAQ,EAGlDE,EAAQ/K,KAAK6D,IAAI,EAAG7D,KAAKkE,OAAO0B,GAAUiF,EAAO,GAAK1C,EAAQkD,gBAAmBR,IACjFG,EAAQ7C,EAAQmD,cAAgBtL,KAAK2D,IAAIwE,EAAQmD,cAAeP,GAASA,GAGtED,IACHjF,EACCiF,EAAOE,GACNF,EAAO,GAAK3C,EAAQkD,gBAGhB,CACNR,KAAMA,EACNC,KAAMA,EACNC,MAAOA,EACPC,MAAOA,EACPpF,MAAOA,EACPC,OAAQA,IAKV+D,kBAAoB,SAAUzB,GAC7B,OAAOnI,KAAK6D,IACXsE,EAAQ+B,QAAU,EACjB,EAAI/B,EAAQoD,mBAAqBpD,EAAQqD,iBAAoBrD,EAAQuB,qBAKxE+B,eAAiB,SAAUtD,GAC1B,OAAQA,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IAElB,MAAO,KAIR+R,iBAAmB,SAAU3B,GAC5B,GAAIA,EAAQuD,KAAKhU,OAAS,EACzB,OAAQyQ,EAAQuD,KAAKlH,OAAO,GAAGzM,eAC9B,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,MAAO,IAGnB,OAAO,MAKR4T,gBAAkB,SAAUxD,EAASxM,GACpC,GAAKwM,EAAQxM,GAAb,CAGA,IAAIiQ,EAAW,KAEf,GAA6B,iBAAlBzD,EAAQxM,GAElB,IACCiQ,EAAW,IAAI1S,SAAUiP,EAAQxM,IAChC,MAAO/C,GACRN,QAAQuT,MAAMjT,QAIfgT,EAAWzD,EAAQxM,GAGhBiQ,GACHA,EAASxK,KAAK+G,KAOhB2D,cAAgB,SAAUC,GAEzB,IADA,IAAI1S,EAAO9C,EAAI6C,eACN3B,EAAI,EAAGA,EAAI4B,EAAK3B,OAAQD,GAAK,EACrC4B,EAAK5B,GAAGuU,QAAQD,IAKlBE,kBAAoB,CACnBC,MAAO,YACPC,MAAO,aAERC,iBAAmB,CAClBF,MAAO,UACPC,MAAO,YAIRE,eAAiB,KACjBrP,gBAAkB,KAGlBsP,gBAAkB,SAAU1T,IACyB,IAAhD,CAAC,MAAO,UAAU+B,QAAQpE,EAAIsH,SAASjF,KACtCrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBC,eAAiB,SAAU5T,GAC1BrC,EAAIuR,kBAIL2E,eAAiB,SAAU7T,GAC1BrC,EAAIuR,kBAIL4E,eAAiB,SAAU9T,GAEtBrC,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAKnBI,oBAAsB,SAAU/T,GAC/B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvB9F,EAAOtG,SAAWsG,EAAOtG,mBAAmBD,EAAIO,IAC/CgG,EAAOtG,QAAQoW,cAAgB9P,EAAO+P,UACzC/P,EAAOtG,QAAQsW,OAENvW,EAAIuF,QAAQgB,EAAQ,OAChBvG,EAAIuF,QAAQgB,EAAQ,YAGjCvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,SAIlEvG,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMuE,WAMpBS,mBAAqB,SAAUpU,GAC9B,IAAIkE,EAASlE,EAAEkE,QAAUlE,EAAEgK,WAEvBrM,EAAIuF,QAAQgB,EAAQ,YACvBvG,EAAIwW,sBAAsBnU,EAAGkE,EAAQvG,EAAIuF,QAAQgB,EAAQ,WAAY,UAKvEiQ,sBAAwB,SAAUnU,EAAGkE,EAAQmQ,EAAaC,GACzD,IAAI/E,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAElCvG,EAAIoG,eAAe/D,GACnBrC,EAAIsG,cAAcC,GAElB,IAAIqQ,EAAqB,SAAUtK,EAAKuK,GACvC7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI0V,kBAAkBiB,GACvD3W,EAAI8W,sBAAsBzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,IAChE7W,EAAI8F,iBAAiB,OAAQwG,EAAKtM,EAAI6V,iBAAiBc,GACtD3W,EAAI+W,qBAAqB1U,EAAGkE,EAAQmQ,EAAaC,KAKnD,GAFAC,EAAmBjX,EAAOH,SAAU,CAAC,EAAG,IAEpCG,EAAOqX,QAAUrX,EAAOsX,aAAc,CACzC,IAAI3L,EAAO3L,EAAOsX,aAAa1L,wBAC3B2L,EAAM,EAAE5L,EAAKE,MAAOF,EAAKG,KAC7BmL,EAAmBjX,EAAOqX,OAAOrX,OAAOH,SAAU0X,GAGnD,IAAIC,EAAMnX,EAAI+L,iBAAiB1J,GAC3B+U,EAAMpX,EAAImM,iBAAiB9J,GAM/B,OALArC,EAAI8V,eAAiB,CACpB1K,EAAG+L,EAAI/L,EAAIgM,EAAIhM,EACfC,EAAG8L,EAAI9L,EAAI+L,EAAI/L,GAGRqL,GACR,IAAK,MAEkC,MAAlC1W,EAAIuT,iBAAiB3B,IAA2C,IAAvBA,EAAQyF,SAAShK,GAC7DuE,EAAQ0F,SAAS,KAAM,KAAM,IAAK,MAEnCtX,EAAIuX,OAAO3F,EAASvP,EAAG,EAAG,GAC1B,MAED,IAAK,MACJrC,EAAIwX,OAAO5F,EAASvP,EAAG,GACvB,MAED,IAAK,OACJrC,EAAIyX,QAAQ7F,EAASvP,EAAG,GAGzBuP,EAAQ6D,QAAQ,UAIjBqB,sBAAwB,SAAUzU,EAAGkE,EAAQmQ,EAAaC,EAAaE,GACtE,OAAO,SAAUxU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClC,OAAQmQ,GACR,IAAK,MACJ1W,EAAIuX,OAAO3F,EAASvP,EAAGwU,EAAO,GAAIA,EAAO,IACzC,MAED,IAAK,MACJ7W,EAAIwX,OAAO5F,EAASvP,EAAGwU,EAAO,IAC9B,MAED,IAAK,OACJ7W,EAAIyX,QAAQ7F,EAASvP,EAAGwU,EAAO,IAGhCjF,EAAQ6D,QAAQ,WAKlBsB,qBAAuB,SAAU1U,EAAGkE,EAAQmQ,EAAaC,GACxD,OAAO,SAAUtU,GAChB,IAAIuP,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAClCvG,EAAIkG,kBAAkB,QACtBlG,EAAI0G,gBAKJkL,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,YAKlBiC,qBAAuB,SAAUrV,GAChC,IAAIkE,EAASlE,EAAEsV,cACX/F,EAAU5R,EAAIuF,QAAQgB,EAAQ,YAC9BuI,EAAQ9O,EAAIuF,QAAQgB,EAAQ,SAGK,QAAjCqL,EAAQ7D,OAAOvM,gBAClBoQ,EAAQgG,WAAW9I,EAAMf,QACpB/N,EAAIgP,cAAc4C,EAAQiG,eAC9B/I,EAAMhB,KAAK,GAAK,IAKI,OAAlBgB,EAAMhB,KAAK,MACmB,IAA7B8D,EAAQkG,kBAA2D,SAA7BlG,EAAQkG,kBAA+BlG,EAAQmG,2BACxFjJ,EAAMhB,KAAK,GAAK,GAIlB8D,EAAQoG,SAAS1G,MAAMM,EAAS9C,EAAMhB,MAEtC8D,EAAQ6D,QAAQ,SAChB7D,EAAQ6D,QAAQ,UAEZ7D,EAAQqG,oBACXrG,EAAQsG,QAKVX,OAAS,SAAU3F,EAASvP,EAAG8V,EAAMC,GACpC,IAAIC,EAAarY,EAAI+L,iBAAiB1J,GAClC+I,EAAI+M,EAAOE,EAAWjN,EAAIpL,EAAI8V,eAAe1K,EAAIwG,EAAQ+B,QAAU/B,EAAQuB,mBAC3E9H,EAAI+M,EAAOC,EAAWhN,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,mBAE3EmF,EAAOlN,GAAK,KAAOwG,EAAQvC,MAAQ,IACnCkJ,EAAO,IAAOlN,GAAK,KAAOuG,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIkV,eAAetD,IAC3B,IAAK,IAAKA,EAAQ0F,SAASgB,EAAMC,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAASgB,EAAM,KAAMC,EAAM,QAK9Cf,OAAS,SAAU5F,EAASvP,EAAG+V,GAC9B,IAEIG,EAAO,KADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,KAAOvB,EAAQtC,OAAS,IAE/C,OAAQtP,EAAIuT,iBAAiB3B,IAC7B,IAAK,IAAKA,EAAQ0F,SAAS,KAAMiB,EAAM,KAAM,MAAO,MACpD,IAAK,IAAK3G,EAAQ0F,SAAS,KAAM,KAAMiB,EAAM,QAK9Cd,QAAU,SAAU7F,EAASvP,EAAG+V,GAC/B,IAEIG,EAAO,GADHH,EADSpY,EAAI+L,iBAAiB1J,GACZgJ,EAAIrL,EAAI8V,eAAezK,EAAIuG,EAAQ+B,QAAU/B,EAAQuB,qBACxD,GAAOvB,EAAQtC,OAAS,IAE/C,GAAIiJ,EAAO,EAAK,CAEf,IAAIC,EAAM5G,EAAQiG,YACmB,QAAjCjG,EAAQ7D,OAAOvM,eAA4BxB,EAAIgP,cAAcwJ,IAChE5G,EAAQgG,WAAmB,QAARY,EAAgB,OAAS,QAI9C5G,EAAQ0F,SAAS,KAAM,KAAM,KAAMiB,IAIpCE,gBAAkB,WAEjB,IAAI5K,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAsC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAlCW,SAAUrJ,EAAOC,EAAQ/N,GACvC2N,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIqJ,EAAQpI,EAAIqI,qBAAqB,EAAG,EAAG1J,EAAOG,MAAO,GACzDsJ,EAAME,aAAa,EAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,GAAO,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAI,EAAG,QAC1BF,EAAME,aAAa,EAAO,QAE1BtI,EAAIC,UAAYmI,EAChBpI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAExC,IAAIwJ,EAAQvI,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACrD,OAAQ/N,EAAKC,eACb,IAAK,IACJsX,EAAMD,aAAa,EAAG,uBACtBC,EAAMD,aAAa,EAAG,uBACtB,MACD,IAAK,IACJC,EAAMD,aAAa,EAAG,iBACtBC,EAAMD,aAAa,EAAG,iBAGvBtI,EAAIC,UAAYsI,EAChBvI,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRkL,qBAAuB,WAEtB,IAAIlL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAmB5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAfW,SAAUrJ,EAAOC,EAAQ0J,EAAQC,GAC/C/J,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAI4J,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAGG,GACrBE,EAAKL,aAAa,EAAGI,GAErB1I,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRsL,sBAAwB,WAEvB,IAAItL,EAAM,CACT9N,IAAK,KACL2Y,KAAM,MAGHxJ,EAASlP,EAAIiD,SAAS,UACtBsN,EAAMrB,EAAOK,WAAW,MAoC5B,OAHA1B,EAAI9N,IAAMmP,EACVrB,EAAI6K,KAhCW,SAAUrJ,EAAOC,EAAQR,GACvCI,EAAOG,MAAQA,EACfH,EAAOI,OAASA,EAEhBiB,EAAII,UAAU,EAAG,EAAGzB,EAAOG,MAAOH,EAAOI,QAEzC,IAAIS,EAASb,EAAOG,MAAQ,EACxBY,EAAWjQ,EAAIO,IAAI2P,iBACnBC,EAAWnQ,EAAIO,IAAI6P,iBAMvB,GAHAG,EAAIC,UAAYP,EAChBM,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,QAEpCS,EAAS,EACZ,IAAK,IAAI1E,EAAI,EAAGA,EAAI6D,EAAOI,OAAQjE,GAAc,EAAT0E,EAEvCQ,EAAIC,UAAYL,EAChBI,EAAIE,SAAS,EAAGpF,EAAG0E,EAAQA,GAC3BQ,EAAIE,SAASV,EAAQ1E,EAAI0E,EAAQA,EAAQA,GAI3C,IAAImJ,EAAO3I,EAAIqI,qBAAqB,EAAG,EAAG,EAAG1J,EAAOI,QACpD4J,EAAKL,aAAa,EAAG/J,GACrBoK,EAAKL,aAAa,EAAG,iBAErBtI,EAAIC,UAAY0I,EAChB3I,EAAIE,SAAS,EAAG,EAAGvB,EAAOG,MAAOH,EAAOI,SAMlCzB,GAIRhO,WACKA,EAAY,SAAUuZ,EAASxG,EAASyG,EAAMC,EAAQxK,EAAOyK,GAChE3Z,KAAKwZ,QAAUA,EACfxZ,KAAKgT,QAAUA,EACfhT,KAAKyZ,KAAOA,EACZzZ,KAAK0Z,OAASA,EACd1Z,KAAKkP,MAAQA,EACblP,KAAK2Z,QAAUA,GAGhB1Z,EAAU8K,UAAUhB,SAAW,WAC9B,IAAIgF,EAAO,CACVlF,KAAKC,MAAM9J,KAAKwZ,SAAW,KAC3B3P,KAAKC,MAAM9J,KAAKgT,SAAW,KAC3BnJ,KAAKC,MAAM9J,KAAKyZ,MAAQ,KACxB5P,KAAKC,MAAM9J,KAAK0Z,QAAU,KAC1B1Z,KAAKkP,OAKN,OAHIlP,KAAK2Z,OACR5K,EAAK3L,KAAK,SAEJ2L,EAAK/D,KAAK,MAGX/K,GAIR2Z,MAAQ,CACPC,WAAa,EACbC,WAAa,EACbC,aAAe,GAIhBC,SAAW,CACV7L,OAAQ,CAAC,OAAQ,MAAO,MAAO,OAAQ,MAAO,QAC9C8L,gBAAiB,CAAC,OAAQ,SAC1B1E,KAAM,CAAC,MAAO,MAAO,KAAM,MAC3BhE,SAAU,CAAC,OAAQ,QAAS,MAAO,UACnC2I,aAAc,CAAC,QAAQ,GAAM,GAC7BhC,iBAAkB,CAAC,QAAQ,GAAM,IAIlCiC,eAAiB,CAEhBC,aAAgB,iBAChBC,aAAgB,UAChBC,mBAAsB,aACtBC,SAAY,cACZC,WAAc,qBACdC,WAAc,qBACdC,OAAU,MAIXrY,QAAU,iCAUV1B,IAAM,SAAUwC,EAAeb,GAE9B,IAAIqY,EAAO3a,KAurBX,SAAS4a,EAAWC,EAAQnW,GAC3B,GAAsB,iBAAXmW,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI4Z,SAASzU,eAAesV,KACV,iBAAVnW,IACVA,EAAQA,EAAM9C,gBAE8B,IAAzCxB,EAAI4Z,SAASa,GAAQrW,QAAQE,IAChC,MAAM,IAAI5E,MAAM,WAAc+a,EAAS,wBAA2BnW,GAKpE,GAAItE,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIC,EAAS,QAAUH,EAEvB,GAA4B,mBAAjBF,EAAKK,GAEf,OADAL,EAAKK,GAAQtW,IACN,EAED,GAAImW,KAAUF,EAEpB,OADAA,EAAKE,GAAUnW,GACR,EAGR,MAAM,IAAI5E,MAAM,sCAAwC+a,GAIzD,SAASI,EAAWJ,GACnB,GAAsB,iBAAXA,EACV,MAAM,IAAI/a,MAAM,kCAAoC+a,GAIrD,GAAIza,EAAI+Z,eAAe5U,eAAesV,GAAS,CAC9C,IAAIC,EAASD,EACTE,EAAS3a,EAAI+Z,eAAeU,GAChC,IAAIE,EAMH,MAAM,IAAIjb,MAAM,WAAc+a,EAAS,mBAJvC1Y,QAAQC,KAAK,iDAAuDhC,EAAIiC,QAASyY,EAAQC,GACzFF,EAASE,EAOX,IAAIG,EAAS,QAAUL,EAEvB,GAA4B,mBAAjBF,EAAKO,GACf,OAAOP,EAAKO,GAAQxW,OAEd,GAAImW,KAAUF,EACpB,OAAOA,EAAKE,GAGb,MAAM,IAAI/a,MAAM,sCAAwC+a,GAWzD,SAASM,IAKRR,EAAKS,8BAEAhb,EAAIwR,SACRxR,EAAIwR,OAAS,CACZC,MAAO,KACPqB,KAAO9S,EAAIiD,SAAS,OACpBgY,IAAMjb,EAAIiD,SAAS,OACnB8P,KAAO/S,EAAIiD,SAAS,OACpBiY,KAAOlb,EAAIiD,SAAS,OACpBkY,IAAMnb,EAAIiD,SAAS,OACnBmY,KAAOpb,EAAIiD,SAAS,OACpBoY,KAAOrb,EAAIiD,SAAS,OACpBqY,UAAYtb,EAAIyY,kBAChB8C,MAAQvb,EAAIiD,SAAS,OACrBuY,QAAUxb,EAAIiD,SAAS,OACvBwY,QAAUzb,EAAIiD,SAAS,OACvByY,QAAU1b,EAAIiD,SAAS,OACvB0Y,QAAU3b,EAAIiD,SAAS,OACvB2Y,IAAM5b,EAAIiD,SAAS,OACnB4Y,KAAO7b,EAAIiD,SAAS,OACpB6Y,KAAO9b,EAAIiD,SAAS,OACpB8Y,QAAU/b,EAAI+Y,uBACdiD,QAAUhc,EAAIiD,SAAS,OACvBgZ,SAAWjc,EAAIiD,SAAS,OACxBiZ,SAAWlc,EAAIiD,SAAS,OACxBkZ,SAAWnc,EAAIiD,SAAS,OACxBmZ,KAAOpc,EAAIiD,SAAS,OACpBoZ,MAAQrc,EAAIiD,SAAS,OACrBqZ,MAAQtc,EAAIiD,SAAS,OACrBsZ,SAAWvc,EAAImZ,wBACfqD,SAAWxc,EAAIiD,SAAS,OACxBwZ,UAAYzc,EAAIiD,SAAS,OACzByZ,UAAY1c,EAAIiD,SAAS,OACzB0Z,UAAY3c,EAAIiD,SAAS,OACzBwQ,IAAMzT,EAAIiD,SAAS,OACnB2Z,IAAM5c,EAAIiD,SAAS,OACnB4Z,KAAO7c,EAAIiD,SAAS,SAGrBjD,EAAIwR,OAAO2J,IAAI2B,YAAY9c,EAAIwR,OAAO8J,UAAUvb,KAChDC,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO2J,KACvCnb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOgK,SACxCxb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOiK,SACxCzb,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOkK,SACxC1b,EAAIwR,OAAO+J,MAAMuB,YAAY9c,EAAIwR,OAAOmK,SACxC3b,EAAIwR,OAAO4J,KAAK0B,YAAY9c,EAAIwR,OAAO+J,OACvCvb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO4J,MACtCpb,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6J,MAEtCrb,EAAIwR,OAAOoK,IAAIkB,YAAY9c,EAAIwR,OAAOuK,QAAQhc,KAC9CC,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAOoK,KACvC5b,EAAIwR,OAAOqK,KAAKiB,YAAY9c,EAAIwR,OAAO2K,UACvCnc,EAAIwR,OAAO2K,SAASW,YAAY9c,EAAIwR,OAAO0K,UAC3Clc,EAAIwR,OAAO0K,SAASY,YAAY9c,EAAIwR,OAAOyK,UAC3Cjc,EAAIwR,OAAOyK,SAASa,YAAY9c,EAAIwR,OAAOwK,SAC3Chc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOqK,MACtC7b,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOsK,MAEtC9b,EAAIwR,OAAO4K,KAAKU,YAAY9c,EAAIwR,OAAO+K,SAASxc,KAChDC,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAO4K,MACxCpc,EAAIwR,OAAO6K,MAAMS,YAAY9c,EAAIwR,OAAOmL,WACxC3c,EAAIwR,OAAOmL,UAAUG,YAAY9c,EAAIwR,OAAOkL,WAC5C1c,EAAIwR,OAAOkL,UAAUI,YAAY9c,EAAIwR,OAAOiL,WAC5Czc,EAAIwR,OAAOiL,UAAUK,YAAY9c,EAAIwR,OAAOgL,UAC5Cxc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO6K,OACtCrc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAO8K,OAEtCtc,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOiC,KAEtCzT,EAAIwR,OAAOoL,IAAIE,YAAY9c,EAAIwR,OAAOqL,MACtC7c,EAAIwR,OAAOyJ,IAAI6B,YAAY9c,EAAIwR,OAAOoL,KAEtC5c,EAAIwR,OAAO0J,KAAK4B,YAAY9c,EAAIwR,OAAOyJ,KACvCjb,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAOuB,MACvC/S,EAAIwR,OAAOsB,KAAKgK,YAAY9c,EAAIwR,OAAO0J,MAEvClb,EAAIwR,OAAOsB,KAAKxS,iBAAiB,aAAcN,EAAIyW,qBAClDzW,EAAIwE,yBAA0B,CAACuY,SAAS,KAG1C,IAoSKC,EACAC,EArSDC,EAAIld,EAAIwR,OAER2L,IAAkBnd,EAAIuT,iBAAiBgH,GACvC6C,EAAqB7C,EAAK/G,kBAC1B6J,EAAard,EAAIkS,cAAcqI,GAC/B+C,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFC,EAAiBxd,EAAIqT,kBAAkBkH,GACvCkD,EAAehU,KAAK2D,IACvBmN,EAAKkD,aACLhU,KAAKC,MAAM6Q,EAAK5G,QAAUlK,KAAKiU,KAIhCR,EAAEpK,KAAKnR,UAAY,sBACnBub,EAAEpK,KAAK3J,MAAMwU,MAAQ,OACrBT,EAAEpK,KAAK3J,MAAMkG,MAAQgO,EAAWjL,QAAU,KAC1C8K,EAAEpK,KAAK3J,MAAMmG,OAAS+N,EAAWhL,QAAU,KAC3C6K,EAAEpK,KAAK3J,MAAMyU,OAASrD,EAAKqD,OAG3BV,EAAEjC,IAAItZ,UAAY,iBAClBub,EAAEjC,IAAI9R,MAAMkG,MAAQgO,EAAWnJ,QAAU,KACzCgJ,EAAEjC,IAAI9R,MAAMmG,OAAS+N,EAAWlJ,QAAU,KAC1C+I,EAAEjC,IAAI9R,MAAMgI,SAAW,WAGvB+L,EAAEnK,KAAKpR,UAAY,wBACnBub,EAAEnK,KAAK5J,MAAMgI,SAAW,WACxB+L,EAAEnK,KAAK5J,MAAMqC,KAAO,IACpB0R,EAAEnK,KAAK5J,MAAMsC,IAAM,IACnByR,EAAEnK,KAAK5J,MAAMkG,MAAQ,OACrB6N,EAAEnK,KAAK5J,MAAMmG,OAAS,OACtBtP,EAAI8K,gBAAgBoS,EAAEnK,KAAM0K,EAAe,MAG3CP,EAAEhC,KAAKvZ,UAAY,wBACnBub,EAAEhC,KAAK/R,MAAMgI,SAAW,WACxB+L,EAAEhC,KAAK/R,MAAM0U,OAAStD,EAAKnG,YAAc,WACzC8I,EAAEhC,KAAK/R,MAAM2U,YAAcvD,EAAKuD,YAChCZ,EAAEhC,KAAK/R,MAAMqB,WAAa+P,EAAKwD,gBAC/B/d,EAAI8K,gBAAgBoS,EAAEhC,KAAMuC,EAAe,MAK3CP,EAAE7B,KAAKlS,MAAMqB,WAAa,mBAC1B0S,EAAEpB,KAAK3S,MAAMqB,WAAa,mBAC1B0S,EAAEZ,MAAMnT,MAAMqB,WAAa,mBAE3B0S,EAAE7B,KAAKlS,MAAM6U,QACbd,EAAEpB,KAAK3S,MAAM6U,QACbd,EAAEZ,MAAMnT,MAAM6U,QACb,IAGDd,EAAE/B,IAAIhS,MAAMgI,SAAW,WACvB+L,EAAE/B,IAAIhS,MAAMkG,MAAQkL,EAAKlL,MAAQ,KACjC6N,EAAE/B,IAAIhS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAE5B,UAAU5C,KAAK6B,EAAKlL,MAAOkL,EAAKjL,OAAQtP,EAAIkV,eAAeqF,IAG7D2C,EAAE9B,KAAKjS,MAAMgI,SAAW,WACxB+L,EAAE9B,KAAKjS,MAAMqC,KAAO+O,EAAK5G,QAAU,KACnCuJ,EAAE9B,KAAKjS,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAE9B,KAAKjS,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAE9B,KAAKjS,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAE7B,KAAKlS,MAAMgI,SAAW,WACxB+L,EAAE7B,KAAKlS,MAAMqC,KAAO,MACpB0R,EAAE7B,KAAKlS,MAAMsC,IAAM,MACnByR,EAAE7B,KAAKlS,MAAMkG,MAASkL,EAAK5G,QAAU,EAAI4G,EAAKpH,mBAAqBoH,EAAKlL,MAAQmO,EAAkB,KAClGN,EAAE7B,KAAKlS,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAE7B,KAAKlS,MAAM+U,OAjEG,YAkEhBle,EAAIqD,QAAQ6Z,EAAE7B,KAAM,CACnB8C,SAAU5D,EACV6D,QAAS,QAIVlB,EAAE3B,MAAMpS,MAAMgI,SAAW,WACzB+L,EAAE3B,MAAMpS,MAAMqC,KACd0R,EAAE3B,MAAMpS,MAAMsC,IACb,IACDyR,EAAE3B,MAAMpS,MAAMkG,MACd6N,EAAE3B,MAAMpS,MAAMmG,OACbgO,EAAiB,KAGlBJ,EAAE1B,QAAQrS,MAAMgI,SAChB+L,EAAEzB,QAAQtS,MAAMgI,SACf,WACD+L,EAAE1B,QAAQrS,MAAMqB,WAChB0S,EAAEzB,QAAQtS,MAAMqB,WACf+P,EAAK8D,mBACNnB,EAAE1B,QAAQrS,MAAMkG,MAChB6N,EAAEzB,QAAQtS,MAAMmG,OACd,EAAIiL,EAAKvF,mBAAqBuF,EAAKtF,iBAAoB,KACzDiI,EAAE1B,QAAQrS,MAAMmG,OAChB4N,EAAEzB,QAAQtS,MAAMkG,MACfiO,EAAiB,KAClBJ,EAAE1B,QAAQrS,MAAMqC,KAChB0R,EAAEzB,QAAQtS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAKsF,EAAKvF,mBAAsB,KACtGkI,EAAE1B,QAAQrS,MAAMsC,IAChByR,EAAEzB,QAAQtS,MAAMqC,KACf,IAGD0R,EAAExB,QAAQvS,MAAMgI,SAChB+L,EAAEvB,QAAQxS,MAAMgI,SACf,WACD+L,EAAExB,QAAQvS,MAAMqB,WAChB0S,EAAEvB,QAAQxS,MAAMqB,WACf+P,EAAK+D,aACNpB,EAAExB,QAAQvS,MAAMmG,OAChB4N,EAAEvB,QAAQxS,MAAMkG,MACdiO,EAAiB,EAAI/C,EAAKvF,mBAAsB,KAClDkI,EAAExB,QAAQvS,MAAMkG,MAChB6N,EAAEvB,QAAQxS,MAAMmG,OACfiL,EAAKtF,iBAAmB,KACzBiI,EAAExB,QAAQvS,MAAMqC,KAChB0R,EAAEvB,QAAQxS,MAAMsC,IACdhC,KAAKkE,MAAM2P,EAAiB,GAAK7T,KAAKkE,MAAM4M,EAAKtF,iBAAmB,GAAM,KAC5EiI,EAAExB,QAAQvS,MAAMsC,IAChByR,EAAEvB,QAAQxS,MAAMqC,KACf+O,EAAKvF,mBAAqB,KAI3BkI,EAAEtB,IAAIzS,MAAMoV,SAAW,SACvBrB,EAAEtB,IAAIzS,MAAMkG,MAAQkL,EAAKjH,WAAa,KACtC4J,EAAEtB,IAAIzS,MAAMmG,OAASiL,EAAKjL,OAAS,KAGnC4N,EAAEnB,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,OAAQ,QAGrD4N,EAAErB,KAAK1S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAErB,KAAK1S,MAAMgI,SAAW,WACxB+L,EAAErB,KAAK1S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqB,EAAIqK,EAAkB,KACrGN,EAAErB,KAAK1S,MAAMsC,IAAM8O,EAAK5G,QAAU,KAClCuJ,EAAErB,KAAK1S,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAChD+J,EAAErB,KAAK1S,MAAM2U,YAAcvD,EAAK0D,mBAGhCf,EAAEpB,KAAK3S,MAAMqV,QAAUrB,EAAgB,QAAU,OACjDD,EAAEpB,KAAK3S,MAAMgI,SAAW,WACxB+L,EAAEpB,KAAK3S,MAAMqC,KAAQ+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,EAAkB,KACjGN,EAAEpB,KAAK3S,MAAMsC,IAAM,MACnByR,EAAEpB,KAAK3S,MAAMkG,MACVkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,oBAChDiK,EAAqB,EAAI3T,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,IAClD,KACLN,EAAEpB,KAAK3S,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACvF4N,EAAEpB,KAAK3S,MAAM+U,OAAS,UACtBle,EAAIqD,QAAQ6Z,EAAEpB,KAAM,CACnBqC,SAAU5D,EACV6D,QAAS,QAIVlB,EAAEjB,SAAS9S,MAAM0U,OACjBX,EAAEf,SAAShT,MAAM0U,OAChBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEf,SAAShT,MAAMgI,SAAW,WAC5B+L,EAAEf,SAAShT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KACjFiI,EAAEf,SAAShT,MAAMsC,IAAM,IAGvByR,EAAEhB,SAAS/S,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGrEpB,EAAElB,QAAQ7S,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC1C4J,EAAElB,QAAQ7S,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIpDvB,EAAEd,KAAKjT,MAAMoV,SAAW,SACxBrB,EAAEd,KAAKjT,MAAMkG,MAAQkL,EAAKjH,WAAa,KACvC4J,EAAEd,KAAKjT,MAAMmG,OAASiL,EAAKjL,OAAS,KAGpC4N,EAAEX,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ,QAG9C4N,EAAEb,MAAMlT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEb,MAAMlT,MAAMgI,SAAW,WACzB+L,EAAEb,MAAMlT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEb,MAAMlT,MAAMsC,IAAM8O,EAAK5G,QAAU,KACnCuJ,EAAEb,MAAMlT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WACjD+J,EAAEb,MAAMlT,MAAM2U,YAAcvD,EAAK0D,mBAGjCf,EAAEZ,MAAMnT,MAAMqV,QAAUpB,EAAqB,QAAU,OACvDF,EAAEZ,MAAMnT,MAAMgI,SAAW,WACzB+L,EAAEZ,MAAMnT,MAAMqC,KACX+O,EAAK5G,QAAU4G,EAAKlL,MAAQ,EAAIkL,EAAKpH,mBAAqBqK,GAC1DL,EAAiB5C,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBAAsB,GACrF,KACL+J,EAAEZ,MAAMnT,MAAMsC,IAAM,MACpByR,EAAEZ,MAAMnT,MAAMkG,MACXkL,EAAKjH,WAAa,EAAIkK,EAAiB,EAAIjD,EAAKpH,mBACjD1J,KAAK6D,IAAI,EAAGiN,EAAK5G,QAAU6J,GACxB,KACLN,EAAEZ,MAAMnT,MAAMmG,OAAU,EAAIiL,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KACxF4N,EAAEZ,MAAMnT,MAAM+U,OAAS,UACvBle,EAAIqD,QAAQ6Z,EAAEZ,MAAO,CACpB6B,SAAU5D,EACV6D,QAAS,SAIVlB,EAAET,UAAUtT,MAAM0U,OAClBX,EAAEP,UAAUxT,MAAM0U,OACjBtD,EAAKvF,mBAAqB,YAAcuF,EAAK8D,mBAG9CnB,EAAEP,UAAUxT,MAAMgI,SAAW,WAC7B+L,EAAEP,UAAUxT,MAAMqC,OAAS,EAAI+O,EAAKvF,mBAAqBuF,EAAKtF,kBAAoB,KAClFiI,EAAEP,UAAUxT,MAAMsC,IAAM,IAGxByR,EAAER,UAAUvT,MAAM0U,OAAStD,EAAKtF,iBAAmB,YAAcsF,EAAK+D,aAGtEpB,EAAEV,SAASrT,MAAMkG,MAAQkL,EAAKjH,WAAa,KAC3C4J,EAAEV,SAASrT,MAAMmG,OAAStP,EAAIO,IAAIke,iBAAmB,KAIrDvB,EAAEzJ,IAAI9R,UAAY,kBAClBub,EAAEzJ,IAAItK,MAAMqV,QAAUnB,EAAWhJ,QAAQE,KAAO,QAAU,OAC1D2I,EAAEzJ,IAAItK,MAAMgI,SAAW,WACvB+L,EAAEzJ,IAAItK,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEzJ,IAAItK,MAAMsC,IAAO,EAAI8O,EAAKpH,mBAAqB,EAAIoH,EAAK5G,QAAU4G,EAAKjL,OAAU,KAInF4N,EAAEzJ,IAAIiL,UAAY,GAKlB,IAHA,IAAIC,EAAa3e,EAAIyP,sBAAsB,iBAEvCmP,EAAK,EACAtV,EAAI,EAAGA,EAAI+T,EAAWhJ,QAAQE,KAAMjL,IAC5C,IAAK,IAAIwI,EAAI,EAAGA,EAAIuL,EAAWhJ,QAAQC,MAAQsK,EAAKrE,EAAK5F,SAASxT,OAAQ2Q,IAAK8M,IAAM,CACpF,IAAIC,EAActE,EAAK5F,SAASiK,GAC5BE,EAAiB9e,EAAIiK,UAAUqH,MAAM,KAAMuN,EAAY/Q,MAEvDiR,EAAK/e,EAAIiD,SAAS,OACtB8b,EAAG5V,MAAMkG,MAASgO,EAAWhJ,QAAQG,MAAQ,EAAI+F,EAAKpH,mBAAsB,KAC5E4L,EAAG5V,MAAMmG,OAAU+N,EAAWhJ,QAAQI,MAAQ,EAAI8F,EAAKpH,mBAAsB,KAC7E4L,EAAG5V,MAAM4U,gBAAkBe,EAE3B,IAAIE,EAAKhf,EAAIiD,SAAS,OACtB+b,EAAGrd,UAAY,yBACfqd,EAAG7V,MAAMqV,QAAU,QACnBQ,EAAG7V,MAAMgI,SAAW,WACpB6N,EAAG7V,MAAMqC,MACP6R,EAAWhJ,QAAQC,MAAQ,EAAI,EAC/B7K,KAAKC,MAAYoI,IAAMuL,EAAWrJ,SAAWqJ,EAAWhJ,QAAQG,QAAU6I,EAAWhJ,QAAQC,KAAO,IAAzF,IAAiG,IACzG,KACL0K,EAAG7V,MAAMsC,IAAOnC,GAAK+T,EAAWhJ,QAAQI,MAAQ8F,EAAKzF,gBAAmB,KACxEkK,EAAG7V,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAC5C6L,EAAG7V,MAAM2U,YAAcvD,EAAK0D,mBAC5Be,EAAG7V,MAAM+U,OAAS,UACU,OAAxBW,EAAY/Q,KAAK,IAAe+Q,EAAY/Q,KAAK,GAAK,IACzDkR,EAAG7V,MAAM8V,gBAAkB,QAAWN,EAAWzP,OAAOgQ,YAAc,KACtEF,EAAG7V,MAAMgW,iBAAmB,SAC5BH,EAAG7V,MAAMiW,mBAAqB,iBAE/Bpf,EAAIqD,QAAQ2b,EAAI,CACfb,SAAU5D,EACV6D,QAAS,iBACTtP,MAAO+P,IAERG,EAAG1e,iBAAiB,QAASN,EAAI0X,sBAAsB,GACvDsH,EAAGlC,YAAYiC,GACf7B,EAAEzJ,IAAIqJ,YAAYkC,GAYpB9B,EAAEN,IAAIjb,UAAY,oBAClBub,EAAEN,IAAIzT,MAAMqV,QAAUjE,EAAK3G,YAAc,QAAU,OACnDsJ,EAAEN,IAAIzT,MAAMgI,SAAW,WACvB+L,EAAEN,IAAIzT,MAAMqC,KAAO+O,EAAK5G,QAAU,KAClCuJ,EAAEN,IAAIzT,MAAMkW,OAAS9E,EAAK5G,QAAU,KACpCuJ,EAAEN,IAAIzT,MAAMwK,QAAU,SACtBuJ,EAAEN,IAAIzT,MAAMmW,SAAYjC,EAAWrJ,SAAW,EAAIuG,EAAKpH,mBAAqB,GAAkB,KAC9F+J,EAAEN,IAAIzT,MAAMoV,SAAW,SACvBrB,EAAEN,IAAIzT,MAAMmG,OAASiL,EAAK1G,aAAe,KACzCqJ,EAAEN,IAAIzT,MAAMoW,WAAa,SACzBrC,EAAEN,IAAIzT,MAAM0U,OAAStD,EAAKpH,mBAAqB,WAd1C8J,GADAD,EAAczC,EAAK0D,mBAAmBlW,MAAM,QAClB5G,OAAS,EAAI6b,EAAY,GAAKA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAAK,IAAMA,EAAY,GAC7IE,EAAEN,IAAIzT,MAAM2U,YAAcb,EAe3BC,EAAEN,IAAIzT,MAAM2F,MAAQyL,EAAKiF,YACzBtC,EAAEN,IAAIzT,MAAMsW,KAAO,kBACnBvC,EAAEN,IAAIzT,MAAMuW,UAAY,SACxBxC,EAAEN,IAAIzT,MAAM+U,OAAS,UACrBhB,EAAEN,IAAI+C,YAAc,WACnBpF,EAAKrC,QAENgF,EAAEL,KAAK1T,MAAMyW,WAAarF,EAAK1G,aAAe,KAC9CqJ,EAAEL,KAAK6B,UAAY,GACnBxB,EAAEL,KAAKC,YAAYnd,EAAOH,SAASqgB,eAAetF,EAAKuF,YAGvDC,IACAC,IACAC,IAIIjgB,EAAIwR,OAAOC,OAASzR,EAAIwR,OAAOC,QAAU8I,GAC5Cva,EAAIsI,YAAYtI,EAAIwR,OAAOC,MAAM1O,cAAe/C,EAAIO,IAAI2f,iBAIzDlgB,EAAIwR,OAAOC,MAAQ8I,EAIfA,EAAK4F,YAAcxgB,EAAOH,SAAS4gB,KACtCpgB,EAAIuR,iBAEJvR,EAAI2S,cAAc4H,EAAM,EAAG,EAAG,YAAY,GAGvC2C,EAAEpK,KAAKuN,aAAe9F,EAAK4F,WAC9B5F,EAAK4F,UAAUrD,YAAYI,EAAEpK,MAG9B9S,EAAImI,SAASoS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAI1C,SAASH,IAER,IAAIO,EAAWtgB,EAAIkV,eAAeqF,GAC9BnP,EAAI3B,KAAKC,MAAO6Q,EAAKlD,SAAS9J,EAAI,KAAQgN,EAAKlL,MAAQ,IACvDhE,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASiJ,GAAY,MAAQ/F,EAAKjL,OAAS,IACpEgO,EAAkB,EAAI/C,EAAKvF,mBAAqBuF,EAAKtF,iBAAmB,EAAIsF,EAAKgD,UACjFrG,GAAOzN,KAAKkE,MAAM2P,EAAiB,GAKvC,OAJAtd,EAAIwR,OAAO+J,MAAMpS,MAAMqC,KAAQJ,EAAI8L,EAAO,KAC1ClX,EAAIwR,OAAO+J,MAAMpS,MAAMsC,IAAOJ,EAAI6L,EAAO,KAGjClX,EAAIuT,iBAAiBgH,IAC7B,IAAK,IACJ,IAAIgG,EAAOvgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,IAAKgN,EAAKlD,SAAShK,GACvDmT,EAAOxgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAG,EAAGgN,EAAKlD,SAAShK,GACrD2L,EAAS,OACZvP,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACtB9W,KAAKC,MAAM6W,EAAK,IAAM,IACnBtH,EAAS,OACZxP,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACtB/W,KAAKC,MAAM8W,EAAK,IAAM,IACvBxgB,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAC9D,MACD,IAAK,IACJ,IAAIwH,EAAMzgB,EAAIwN,QAAQ+M,EAAKlD,SAAS9J,EAAGgN,EAAKlD,SAAS5J,EAAG,KACpDuL,EAAS,OACZvP,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IACrBhX,KAAKC,MAAM+W,EAAI,IAAM,IAClBxH,EAAS,OACbjZ,EAAIwR,OAAOuK,QAAQrD,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQ0J,EAAQC,GAK/DjZ,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAASV,IACR,IAAIW,EAAa3gB,EAAIuT,iBAAiBgH,GACtC,GAAIoG,EAAY,CAEf,IAAItV,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAASsJ,GAAc,MAAQpG,EAAKjL,OAAS,IAC1EtP,EAAIwR,OAAO2K,SAAShT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI1Ize,EAAIwR,OAAO+K,SAAS7D,KAAK6B,EAAKjH,WAAYiH,EAAKjL,OAAQiL,EAAKmG,eAI7D,SAAST,IACR,IAAI5U,EAAI5B,KAAKC,OAAO,EAAI6Q,EAAKlD,SAAStN,IAAMwQ,EAAKjL,OAAS,IAC1DtP,EAAIwR,OAAOmL,UAAUxT,MAAMsC,IAAOJ,GAAK,EAAIkP,EAAKvF,mBAAqBuF,EAAKtF,kBAAoBxL,KAAKkE,MAAM3N,EAAIO,IAAIke,iBAAmB,GAAM,KAI3I,SAASmC,IACR,OAAO5gB,EAAIwR,QAAUxR,EAAIwR,OAAOC,QAAU8I,EAgG3C,GAx1CKrY,IACJA,EAAO,IAGRtC,KAAKyX,SAAW,CACf/N,EAAG,IACHC,EAAG,IACHC,EAAG,IACH+D,EAAG,EACHE,EAAG,EACHJ,EAAG,IACHtD,EAAG,GAKJnK,KAAKmO,OAAS,OACdnO,KAAK0E,WAAQhD,EACb1B,KAAKihB,WAAQvf,EACb1B,KAAKkhB,cAAWxf,EAChB1B,KAAKmhB,aAAUzf,EACf1B,KAAKohB,kBAAe1f,EACpB1B,KAAKqhB,kBAAe3f,EACpB1B,KAAKshB,oBAAiB5f,EACtB1B,KAAKia,gBAAkB,OACvBja,KAAKuhB,YAAc,GACnBvhB,KAAKwhB,eAAiB,EACtBxhB,KAAKyhB,UAAW,EAChBzhB,KAAK0hB,MAAO,EACZ1hB,KAAK2hB,WAAY,EACjB3hB,KAAK4hB,YAAa,EAIlB5hB,KAAKyP,MAAQ,IACbzP,KAAK0P,OAAS,IACd1P,KAAKuV,KAAO,MACZvV,KAAKka,aAAe,OACpBla,KAAKuR,SAAW,SAChBvR,KAAK2S,eAAgB,EACrB3S,KAAKyW,aAAc,EACnBzW,KAAK6hB,aAAc,EACnB7hB,KAAKyU,QAAU,GACfzU,KAAKgV,YAAc,GACnBhV,KAAKkY,iBAAmB,OACxBlY,KAAKmV,cAAgB,GACrBnV,KAAKkV,eAAiB,EACtBlV,KAAKqY,oBAAqB,EAC1BrY,KAAK0T,WAAa,GAClB1T,KAAK2d,UAAY,EACjB3d,KAAKgU,aAAc,EACnBhU,KAAKkgB,UAAY,QACjBlgB,KAAK4f,YAAc,gBACnB5f,KAAKiU,aAAe,GACpBjU,KAAK+T,QAAU,GACf/T,KAAKme,gBAAkB,sBACvBne,KAAKwU,YAAc,EACnBxU,KAAKke,YAAc,sBACnBle,KAAK6d,aAAe,EACpB7d,KAAKuT,mBAAqB,EAC1BvT,KAAKqe,mBAAqB,sBAC1Bre,KAAKoT,QAAS,EACdpT,KAAKiT,WAAa,GAClBjT,KAAKqT,YAAc,kBACnBrT,KAAK0e,aAAe,mBACpB1e,KAAKoV,mBAAqB,EAC1BpV,KAAKye,mBAAqB,sBAC1Bze,KAAKqV,iBAAmB,EACxBrV,KAAKge,OAAS,IACdhe,KAAKugB,eAAY7e,EAIjB1B,KAAK8hB,KAAO,EACZ9hB,KAAK+hB,KAAO,IACZ/hB,KAAKgiB,KAAO,EACZhiB,KAAKiiB,KAAO,IACZjiB,KAAKkiB,KAAO,EACZliB,KAAKmiB,KAAO,EAOZniB,KAAK6a,OAAS,WACb,IAAKxV,UAAU9D,OACd,MAAM,IAAIzB,MAAM,uBAGjB,GAAyB,IAArBuF,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAE/D,IACC,OAAO4V,EAAU5V,UAAU,IAC1B,MAAO5C,GACRN,QAAQC,KAAKK,GAEd,OAAO,EAED,GAAI4C,UAAU9D,QAAU,GAA6B,iBAAjB8D,UAAU,GAAiB,CAErE,IACC,IAAKuV,EAAUvV,UAAU,GAAIA,UAAU,IACtC,OAAO,EAEP,MAAO5C,GAER,OADAN,QAAQC,KAAKK,IACN,EAIR,OAFAzC,KAAKoiB,SACLpiB,KAAKqiB,eACE,EAED,GAAyB,IAArBhd,UAAU9D,QAAwC,iBAAjB8D,UAAU,GAAiB,CAEtE,IAAI/C,EAAO+C,UAAU,GACjBid,GAAU,EACd,IAAK,IAAIC,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,GACvB,IACM3H,EAAU2H,EAAKjgB,EAAKigB,MACxBD,GAAU,GAEV,MAAO7f,GACRN,QAAQC,KAAKK,GACb6f,GAAU,EAMb,OAFAtiB,KAAKoiB,SACLpiB,KAAKqiB,cACEC,EAGR,MAAM,IAAIxiB,MAAM,sBAOjBE,KAAKwiB,QAAU,SAAU3c,EAAMnB,GAC9B,GAAoB,iBAATmB,EACV,MAAM,IAAI/F,MAAM,mCAAqC+F,GAGtD,QAAcnE,IAAVgD,EAEH,OAAK1E,KAAKyX,SAASlS,eAAeM,EAAKjE,eAIhC5B,KAAKyX,SAAS5R,EAAKjE,gBAHzBO,QAAQC,KAAK,4BAA8ByD,IACpC,GAMR,IAAI4c,GAAM,EACV,OAAQ5c,EAAKjE,eACZ,IAAK,IAAK6gB,EAAMziB,KAAKoY,SAAS1T,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM1T,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAKoY,SAAS,KAAM,KAAM1T,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAShT,EAAO,KAAM,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAMhT,EAAO,KAAM,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAMhT,EAAO,MAAO,MACxD,IAAK,IAAK+d,EAAMziB,KAAK0X,SAAS,KAAM,KAAM,KAAMhT,GAAQ,MACxD,QAEC,OADAvC,QAAQC,KAAK,4BAA8ByD,IACpC,EAET,QAAI4c,IACHziB,KAAKoiB,UACE,IAcVpiB,KAAK6V,QAAU,SAAUD,GAExB,IADA,IAAI8M,EAAMtiB,EAAI6H,QAAQ2N,GACbtU,EAAI,EAAGA,EAAIohB,EAAInhB,OAAQD,GAAK,EAAG,CACvC,IAAI8F,EAAKsb,EAAIphB,GAAGM,cAGZ+gB,EAAe,KACnB,OAAQvb,GACP,IAAK,QAASub,EAAe,UAAW,MACxC,IAAK,SAAUA,EAAe,WAE3BA,GACHviB,EAAIoV,gBAAgBxV,KAAM2iB,GAI3BviB,EAAIqH,kBAAkBzH,KAAKohB,aAAcha,GAAI,GAAM,KAUrDpH,KAAK0X,SAAW,SAAU/J,EAAGE,EAAGJ,EAAGtD,EAAGyP,GAMrC,QALUlY,IAANiM,IAAmBA,EAAI,WACjBjM,IAANmM,IAAmBA,EAAI,WACjBnM,IAAN+L,IAAmBA,EAAI,WACjB/L,IAANyI,IAAmBA,EAAI,MAEjB,OAANwD,EAAY,CACf,GAAIiV,MAAMjV,GAAM,OAAO,EACvB3N,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKG,IAE7C,GAAU,OAANE,EAAY,CACf,GAAI+U,MAAM/U,GAAM,OAAO,EACvB7N,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMlU,GAAI7N,KAAK8hB,MAEjE,GAAU,OAANrU,EAAY,CACf,GAAImV,MAAMnV,GAAM,OAAO,EACvBzN,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMxU,GAAIzN,KAAKgiB,MAEjE,GAAU,OAAN7X,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIrB,EAAMzgB,EAAIwN,QACb5N,KAAKyX,SAAS9J,EACd3N,KAAKyX,SAAS5J,EACd7N,KAAKyX,SAAShK,GAOf,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GASR5Z,KAAKoY,SAAW,SAAU1O,EAAGC,EAAGC,EAAGO,EAAGyP,GAMrC,QALUlY,IAANgI,IAAmBA,EAAI,WACjBhI,IAANiI,IAAmBA,EAAI,WACjBjI,IAANkI,IAAmBA,EAAI,WACjBlI,IAANyI,IAAmBA,EAAI,MAEjB,OAANT,EAAY,CACf,GAAIkZ,MAAMlZ,GAAM,OAAO,EACvBA,EAAIG,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK9D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIiZ,MAAMjZ,GAAM,OAAO,EACvBA,EAAIE,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK7D,IAE/B,GAAU,OAANC,EAAY,CACf,GAAIgZ,MAAMhZ,GAAM,OAAO,EACvBA,EAAIC,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAK5D,IAE/B,GAAU,OAANO,EAAY,CACf,GAAIyY,MAAMzY,GAAM,OAAO,EACvBnK,KAAKyX,SAAStN,EAAInK,KAAK4T,kBACtB/J,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,EAAGxN,KAAKmiB,KAAMhY,GAAInK,KAAKkiB,MAC5C,EAGF,IAAIW,EAAMziB,EAAImN,QACT,OAAJ7D,EAAW1J,KAAKyX,SAAS/N,EAAIA,EACzB,OAAJC,EAAW3J,KAAKyX,SAAS9N,EAAIA,EACzB,OAAJC,EAAW5J,KAAKyX,SAAS7N,EAAIA,GAEf,OAAXiZ,EAAI,KACP7iB,KAAKyX,SAAS9J,EAAI9D,KAAK6D,IAAI,EAAG7D,KAAK2D,IAAI,IAAKqV,EAAI,MAElC,IAAXA,EAAI,KACP7iB,KAAKyX,SAAS5J,EAAIhE,KAAK6D,IAAI,EAAG1N,KAAK8hB,KAAMjY,KAAK2D,IAAI,IAAKxN,KAAK+hB,KAAMc,EAAI,MAEvE7iB,KAAKyX,SAAShK,EAAI5D,KAAK6D,IAAI,EAAG1N,KAAKgiB,KAAMnY,KAAK2D,IAAI,IAAKxN,KAAKiiB,KAAMY,EAAI,KAGtE,IAAIhC,EAAMzgB,EAAIwN,QAAQ5N,KAAKyX,SAAS9J,EAAG3N,KAAKyX,SAAS5J,EAAG7N,KAAKyX,SAAShK,GAMtE,OALAzN,KAAKyX,SAAS/N,EAAImX,EAAI,GACtB7gB,KAAKyX,SAAS9N,EAAIkX,EAAI,GACtB7gB,KAAKyX,SAAS7N,EAAIiX,EAAI,GAEtB7gB,KAAKqiB,YAAYzI,IACV,GAMR5Z,KAAK8iB,QAAU,SAAUnV,EAAGE,EAAGJ,EAAGmM,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAK0X,SAAS/J,EAAGE,EAAGJ,EAAG,KAAMmM,IAMrC5Z,KAAK+iB,QAAU,SAAUrZ,EAAGC,EAAGC,EAAGgQ,GAEjC,OADAzX,QAAQC,KAAK,4DAA8DhC,EAAIiC,SACxErC,KAAKoY,SAAS1O,EAAGC,EAAGC,EAAG,KAAMgQ,IAIrC5Z,KAAKgjB,WAAa,SAAUtgB,EAAKkX,GAChC,IAAK5Z,KAAKyhB,UAA2B,KAAf/e,EAAIH,OAIzB,OAFAvC,KAAKijB,oBAAoB,MACzBjjB,KAAKkjB,qBAAqB,KACnB,EAGR,IAAIhU,EAAQ9O,EAAI4N,iBAAiBtL,GACjC,QAAKwM,IAG6B,QAA9BlP,KAAKmO,OAAOvM,gBACf5B,KAAKgY,WAAW9I,EAAMf,QACjB/N,EAAIgP,cAAcpP,KAAKiY,eAC3B/I,EAAMhB,KAAK,GAAK,IAGlBlO,KAAKoY,SACJlJ,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACXgB,EAAMhB,KAAK,GACX0L,IAEM,IAIR5Z,KAAK+J,SAAW,SAAUoE,GAIzB,YAHezM,IAAXyM,IACHA,EAASnO,KAAKiY,aAEP9J,EAAOvM,eACd,IAAK,MAAO,OAAO5B,KAAK8gB,cACxB,IAAK,OAAQ,OAAO9gB,KAAKmjB,eACzB,IAAK,MAAO,OAAOnjB,KAAKojB,cACxB,IAAK,OAAQ,OAAOpjB,KAAKqjB,eAE1B,OAAO,GAIRrjB,KAAK8gB,YAAc,WAClB,OAAO1gB,EAAIqJ,SACVzJ,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKmjB,aAAe,WACnB,OAAO/iB,EAAI8J,UACVlK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKojB,YAAc,WAClB,OAAOhjB,EAAIgK,SACVpK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,IAKhB5J,KAAKqjB,aAAe,WACnB,OAAOjjB,EAAIiK,UACVrK,KAAKyX,SAAS/N,EACd1J,KAAKyX,SAAS9N,EACd3J,KAAKyX,SAAS7N,EACd5J,KAAKyX,SAAStN,IAKhBnK,KAAKsjB,YAAc,WAClB,MACC,KAAQtjB,KAAKyX,SAAS/N,EACtB,KAAQ1J,KAAKyX,SAAS9N,EACtB,KAAQ3J,KAAKyX,SAAS7N,GAKxB5J,KAAKujB,SAAW,WACf,OAAOnjB,EAAIyP,sBAAsB7P,KAAKqjB,gBAAgB/T,QAIvDtP,KAAKsf,UAAY,WAChB,OAAOtf,KAAKujB,WAAWjE,aAIxBtf,KAAKwjB,aAAe,WACnB,OAAOpjB,EAAIO,IAAIiK,WAAW5K,KAAKqjB,iBAIhCrjB,KAAKyjB,QAAU,WACd,OAAOzjB,KAAKsjB,cAAgB,OAI7BtjB,KAAKsY,KAAO,WACP0I,MAmVJ5gB,EAAIsI,YAAYiS,EAAKxX,cAAe/C,EAAIO,IAAI2f,iBAC5ClgB,EAAIwR,OAAOsB,KAAKuN,WAAWrc,YAAYhE,EAAIwR,OAAOsB,aAC3C9S,EAAIwR,OAAOC,QA/UnB7R,KAAK2W,KAAO,WACXwE,KAIDnb,KAAKoiB,OAAS,WACTpB,KACH7F,KAKFnb,KAAKiY,UAAY,WAChB,OAAOjY,KAAK0jB,gBAIb1jB,KAAKgY,WAAa,SAAU7J,GAC3BnO,KAAK0jB,eAAiBvV,EAAOvM,eAI9B5B,KAAK4T,gBAAkB,WACtB,MAA0B,SAAtB5T,KAAKka,aAEuB,QAA9Bla,KAAKmO,OAAOvM,eACZxB,EAAIgP,cAAcpP,KAAKiY,mBACRvW,IAAf1B,KAAKihB,YACiBvf,IAAtB1B,KAAKqhB,aAIArhB,KAAKka,cAIbla,KAAK2jB,kBAAoB,SAAUjhB,GAC7B1C,KAAKgjB,WAAWtgB,IAEpB1C,KAAKqiB,eAKPriB,KAAK4jB,kBAAoB,SAAUlhB,GAC7B1C,KAAK0X,SAAS,KAAM,KAAM,KAAM9I,WAAWlM,KAE/C1C,KAAKqiB,eAKPriB,KAAKqiB,YAAc,SAAUzI,GAC5B,IAAIiK,EAAW7jB,KAAK+J,WAChB6O,EAAM5Y,KAAKiY,YAaf,GAVA7X,EAAI4F,YAAYhG,KAAKmD,cAAe,gBAAiB0gB,GAE/CjK,EAAQxZ,EAAIwZ,MAAMC,aAAe7Z,KAAKohB,eAC/B,QAARxI,GAAyB,SAARA,IACf5Y,KAAK2hB,YAAakC,EAAWA,EAASjiB,eACtC5B,KAAK0hB,OAAQmC,EAAWA,EAAS3b,QAAQ,KAAM,MAErDlI,KAAKkjB,qBAAqBW,MAGrBjK,EAAQxZ,EAAIwZ,MAAME,aAAe9Z,KAAKqhB,aAAc,CACzD,IAAIyC,EAAWja,KAAKC,MAAwB,IAAlB9J,KAAKyX,SAAStN,GAAW,IACnDnK,KAAK+jB,qBAAqBD,GAGrBlK,EAAQxZ,EAAIwZ,MAAMG,eAAiB/Z,KAAKshB,kBAI5ClhB,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,kBAEjDthB,KAAKia,gBAGnBja,KAAKijB,oBAAoBjjB,KAAKqjB,iBAG3BrC,MACHb,IACAC,IACAC,MAKFrgB,KAAKijB,oBAAsB,SAAU/T,GACpC,GAAKlP,KAAKshB,eAAV,CAIA,IAAI/P,EAAW,KACX9B,EAAQ,MAEXrP,EAAIiE,YAAYrE,KAAKshB,iBACpBlhB,EAAIkE,SAAStE,KAAKshB,kBAAoBlhB,EAAIqE,cAAczE,KAAKshB,mBAE9D/P,EAAWvR,KAAKia,gBAChBxK,EAAQzP,KAAKuhB,aAGd,IAAIyC,EAAc,GAElB,GAAK9U,EASE,CAEN8U,EAAY5gB,KAAK,CAChB6gB,MAAO7jB,EAAIkR,wBACVpC,EACAqC,EACA9B,EAAQA,EAAQrP,EAAIO,IAAIuP,iBAAiB3O,OAAS,MAEnDgQ,SAAU,WACV2S,KAAM,OACNC,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,gBAIT,IAAIC,EAAUjkB,EAAIyP,sBACjB,gBACA0B,EAAW,CAAC3F,KAAO,QAAS6F,MAAQ,QAAQF,GAAY,KACxD9B,GACA,GAEDuU,EAAY5gB,KAAK,CAChB6gB,MAAO,QAAWI,EAAQ/U,OAAOgQ,YAAc,KAC/C/N,UAAWA,GAAY,QAAU,OACjC2S,KAAMG,EAAQ5U,MAAQ,MAAQ4U,EAAQ3U,OAAS,KAC/CyU,OAAQ5S,EAAW,WAAa,SAChC6S,OAAQ,qBAjCTJ,EAAY5gB,KAAK,CAChB6gB,MAAO,OACP1S,SAAU,WACV2S,KAAM,OACNC,OAAQ,YACRC,OAAQ,gBAuCV,IAPA,IAAIE,EAAK,CACRL,MAAO,GACP1S,SAAU,GACV2S,KAAM,GACNC,OAAQ,GACRC,OAAQ,IAEA9iB,EAAI,EAAGA,EAAI0iB,EAAYziB,OAAQD,GAAK,EAC5CgjB,EAAGL,MAAM7gB,KAAK4gB,EAAY1iB,GAAG2iB,OAC7BK,EAAG/S,SAASnO,KAAK4gB,EAAY1iB,GAAGiQ,UAChC+S,EAAGJ,KAAK9gB,KAAK4gB,EAAY1iB,GAAG4iB,MAC5BI,EAAGH,OAAO/gB,KAAK4gB,EAAY1iB,GAAG6iB,QAC9BG,EAAGF,OAAOhhB,KAAK4gB,EAAY1iB,GAAG8iB,QAI/B,IAAIG,EAAM,CACTC,mBAAoBF,EAAGL,MAAMjZ,KAAK,MAClCyZ,sBAAuBH,EAAG/S,SAASvG,KAAK,MACxC0Z,kBAAmBJ,EAAGJ,KAAKlZ,KAAK,MAChC2Z,oBAAqBL,EAAGH,OAAOnZ,KAAK,MACpC4Z,oBAAqBN,EAAGF,OAAOpZ,KAAK,OAErC5K,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAI5C,IAAI7N,EAAU,CACbnI,KAAM,KACN6F,MAAO,MAEJF,IACHwC,EAAQxC,GAAavR,KAAKuhB,YAAcvhB,KAAKwhB,eAAkB,MAG5D+C,EAAM,CACTM,eAAgB9Q,EAAQnI,KACxBkZ,gBAAiB/Q,EAAQtC,OAE1BrR,EAAI4I,SAAShJ,KAAKshB,eAAgBiD,EAAKvkB,KAAK4hB,YAAY,KAIzD5hB,KAAKkjB,qBAAuB,SAAUxgB,GACjC1C,KAAKohB,eACgC,UAApChhB,EAAI6D,SAASjE,KAAKohB,cACrBphB,KAAKohB,aAAa1c,MAAQhC,EAE1B1C,KAAKohB,aAAatC,UAAYpc,IAMjC1C,KAAK+jB,qBAAuB,SAAUrhB,GACjC1C,KAAKqhB,eACgC,UAApCjhB,EAAI6D,SAASjE,KAAKqhB,cACrBrhB,KAAKqhB,aAAa3c,MAAQhC,EAE1B1C,KAAKqhB,aAAavC,UAAYpc,IAMjC1C,KAAKob,4BAA8B,WAClC,IAAIpb,KAAK+kB,yBAAT,CACA/kB,KAAK+kB,0BAA2B,EAEhC,IAAI5kB,EAAMH,KAAKmD,cACf,EAAG,CAGF,IAAI6hB,EAAY5kB,EAAIyI,aAAa1I,GAC7B6kB,EAAUzT,UAAiD,UAArCyT,EAAUzT,SAAS3P,gBAC5C5B,KAAKiS,OAAQ,GAGV9R,IAAQH,KAAKmD,gBAMX/C,EAAIuF,QAAQxF,EAAK,uBACrBA,EAAIO,iBAAiB,SAAUN,EAAImW,gBAAgB,GACnDnW,EAAIqD,QAAQtD,EAAK,qBAAqB,YAG/BA,EAAMA,EAAIsgB,aAAqC,SAAtBrgB,EAAI6D,SAAS9D,MAIjDH,KAAKoW,QAAU,WACVpW,KAAK6hB,aACR7hB,KAAKsY,QAKPtY,KAAKilB,aAAe,SAAUnhB,GAC7B9D,KAAKyU,QAAU3Q,EACf9D,KAAK+U,SAAW3U,EAAIyO,kBAAkB/K,GACtC9D,KAAKmY,wBAA0B/X,EAAI+O,wBAAwBnP,KAAK+U,WAuqB7D3U,EAAIO,IAAIukB,QAEX,IAAK,IAAI3C,KAAOniB,EAAIO,IAAIukB,QACvB,GAAI9kB,EAAIO,IAAIukB,QAAQ3f,eAAegd,GAClC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAIukB,QAAQ3C,IAC9B,MAAO9f,GACRN,QAAQC,KAAKK,GASjB,IAAI0iB,EAAa,GAEb7iB,EAAK8iB,SACmB,iBAAhB9iB,EAAK8iB,OACfD,EAAa7iB,EAAK8iB,OAAOjd,MAAM,OACrB2C,MAAMkE,QAAQ1M,EAAK8iB,QAC7BD,EAAa7iB,EAAK8iB,OAAOC,QAEzBljB,QAAQC,KAAK,+BAKwB,IAAnC+iB,EAAW3gB,QAAQ,YACtB2gB,EAAW/hB,KAAK,WAKjB,IAAK,IAAI9B,EAAI6jB,EAAW5jB,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAIgkB,EAAOH,EAAW7jB,GACtB,GAAKgkB,EAGL,GAAKllB,EAAIO,IAAI4kB,QAAQhgB,eAAe+f,IAIpC,IAAK,IAAI/C,KAAOniB,EAAIO,IAAI4kB,QAAQD,GAC/B,GAAIllB,EAAIO,IAAI4kB,QAAQD,GAAM/f,eAAegd,GACxC,IACC3H,EAAU2H,EAAKniB,EAAIO,IAAI4kB,QAAQD,GAAM/C,IACpC,MAAO9f,GACRN,QAAQC,KAAKK,SARfN,QAAQC,KAAK,qBAAsBkjB,GAgBrC,IAAIE,EAAgB,CAEnB,UAED,IAAK,IAAIjD,KAAOjgB,EACf,GAAIA,EAAKiD,eAAegd,KACa,IAAhCiD,EAAchhB,QAAQ+d,GACzB,IACC3H,EAAU2H,EAAKjgB,EAAKigB,IACnB,MAAO9f,GACRN,QAAQC,KAAKK,GAoBjB,QAPuBf,IAAnB1B,KAAKugB,UACRvgB,KAAKugB,UAAYxgB,EAAOH,SAAS4gB,KAGjCxgB,KAAKugB,UAAYngB,EAAIY,KAAKhB,KAAKugB,YAG3BvgB,KAAKugB,UACT,MAAM,IAAIzgB,MAAM,+DAOjB,GAFAE,KAAKmD,cAAgB/C,EAAIY,KAAKmC,IAEzBnD,KAAKmD,cAAe,CAExB,GAA6B,iBAAlBA,GAA8B,qBAAqBsiB,KAAKtiB,GAGlE,MAAM,IAAIrD,MAAM,OADCqD,EACsB,2CADtBA,EACkF,gCAGpG,MAAM,IAAIrD,MAAM,4DAGjB,GAAIE,KAAKmD,cAAc9C,SAAWL,KAAKmD,cAAc9C,mBAAmBD,EAAIO,IAC3E,MAAM,IAAIb,MAAM,kDAajB,GARAE,KAAKmD,cAAc9C,QAAUL,KAC7BI,EAAImI,SAASvI,KAAKmD,cAAe/C,EAAIO,IAAIoB,WAGzC3B,EAAIG,UAAU6C,KAAKpD,MAIfI,EAAIkE,SAAStE,KAAKmD,iBAEyB,WAA1CnD,KAAKmD,cAAcxB,KAAKC,gBAG3B5B,KAAKmD,cAAcxB,KAAO,UAGvBvB,EAAIqE,cAAczE,KAAKmD,gBAAgB,CAK1C/C,EAAI8D,eAAelE,KAAKmD,eAGxBnD,KAAKmD,cAAc+Z,YAAYnd,EAAOH,SAASqgB,eAAe,MAG9D,IAAI+E,EAAY5kB,EAAIyI,aAAa7I,KAAKmD,gBACnByL,WAAWoW,EAAU,eAAiB,GACtChlB,KAAKuhB,aACvBnhB,EAAI4I,SAAShJ,KAAKmD,cAAe,CAChCuiB,YAAa1lB,KAAKuhB,YAAc,MAC9BvhB,KAAK4hB,YAsCX,QAhC0BlgB,IAAtB1B,KAAKohB,aACJhhB,EAAIiE,YAAYrE,KAAKmD,iBAExBnD,KAAKohB,aAAephB,KAAKmD,eAKM,OAAtBnD,KAAKohB,eAIfphB,KAAKohB,aAAehhB,EAAIY,KAAKhB,KAAKohB,eAI/BphB,KAAKqhB,eACRrhB,KAAKqhB,aAAejhB,EAAIY,KAAKhB,KAAKqhB,oBAIP3f,IAAxB1B,KAAKshB,eACRthB,KAAKshB,eAAiBthB,KAAKmD,cAEO,OAAxBnD,KAAKshB,iBAIfthB,KAAKshB,eAAiBlhB,EAAIY,KAAKhB,KAAKshB,iBAIjCthB,KAAKohB,cAAgBhhB,EAAIiE,YAAYrE,KAAKohB,cAAe,CAI5D,IAAIuE,EAAyB,CAC5BxE,QAASnhB,KAAKohB,aAAawE,SAE5B5lB,KAAKohB,aAAawE,QAAU,KAE5B5lB,KAAKohB,aAAa1gB,iBAAiB,WA3RpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAKyG,cACRzG,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAE1CiW,EAAKvE,cAsRwD,GAC9DpW,KAAKohB,aAAa1gB,iBAAiB,UAxQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAKyG,aAAa1c,MAE/BiW,EAAKgJ,kBAAkBhJ,EAAKyG,aAAa1c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAEtBA,EAAKyG,aAAa1c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,OA2PE,GAC5DphB,KAAKohB,aAAa1gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAKyG,cACRzG,EAAKqI,WAAWrI,EAAKyG,aAAa1c,MAAOtE,EAAIwZ,MAAMC,YAGpDzZ,EAAIoV,gBAAgBmF,EAAM,eAyNgC,GAEtDgL,EAAuBxE,SAC1BnhB,KAAKohB,aAAa1gB,iBAAiB,QAASilB,EAAuBxE,SAAS,GAG7EnhB,KAAKohB,aAAalc,aAAa,eAAgB,OAC/ClF,KAAKohB,aAAalc,aAAa,cAAe,OAC9ClF,KAAKohB,aAAalc,aAAa,iBAAkB,OACjDlF,KAAKohB,aAAalc,aAAa,cAAc,GAI1ClF,KAAKqhB,cAAgBjhB,EAAIiE,YAAYrE,KAAKqhB,gBAC7CrhB,KAAKqhB,aAAa3gB,iBAAiB,WAjSpC,SAAyB0G,GACC,UAArBhH,EAAIsH,SAASN,KACZuT,EAAK0G,cACR1G,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAE1CiW,EAAKvE,cA4RwD,GAC9DpW,KAAKqhB,aAAa3gB,iBAAiB,UAtQpC,SAAwB0G,GACvB,IAAIhH,EAAIuF,QAAQyB,EAAI,YAApB,CAIA,IAAIye,EAASlL,EAAK0G,aAAa3c,MAE/BiW,EAAKiJ,kBAAkBjJ,EAAK0G,aAAa3c,OAEzCtE,EAAIoV,gBAAgBmF,EAAM,YAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,UAAU,GAAM,GAErDzG,EAAK0G,aAAa3c,QAAUmhB,GAE/BzlB,EAAIqH,kBAAkBkT,EAAK0G,aAAc,UAAU,GAAM,OAsPE,GAC5DrhB,KAAKqhB,aAAa3gB,iBAAiB,SAlOpC,SAAuB0G,GAClBhH,EAAIuF,QAAQyB,EAAI,cAIhBuT,EAAK0G,cACR1G,EAAKjD,SAAS,KAAM,KAAM,KAAM9I,WAAW+L,EAAK0G,aAAa3c,OAAQtE,EAAIwZ,MAAME,YAGhF1Z,EAAIoV,gBAAgBmF,EAAM,WAG1Bva,EAAIqH,kBAAkBkT,EAAKyG,aAAc,SAAS,GAAM,OAsNE,GAE1DphB,KAAKqhB,aAAanc,aAAa,eAAgB,OAC/ClF,KAAKqhB,aAAanc,aAAa,cAAe,OAC9ClF,KAAKqhB,aAAanc,aAAa,iBAAkB,OACjDlF,KAAKqhB,aAAanc,aAAa,cAAc,IAK9C,IAAI4gB,EAAY,cAEGpkB,IAAf1B,KAAK0E,MACRohB,EAAY9lB,KAAK0E,MACP1E,KAAKohB,mBAA4C1f,IAA5B1B,KAAKohB,aAAa1c,QACjDohB,EAAY9lB,KAAKohB,aAAa1c,OAK/B,IAAIqhB,OAAYrkB,EAYhB,QAVmBA,IAAf1B,KAAKihB,MACR8E,EAAa,GAAG/lB,KAAKihB,MACXjhB,KAAKqhB,mBAA4C3f,IAA5B1B,KAAKqhB,aAAa3c,QACjDqhB,EAAY/lB,KAAKqhB,aAAa3c,OAK/B1E,KAAK0jB,eAAiB,KAElB,CAAC,OAAQ,OAAOlf,QAAQxE,KAAKmO,OAAOvM,gBAAkB,EAAG,CAE5D,IAAIsN,EAAQ9O,EAAI4N,iBAAiB8X,GACjC9lB,KAAK0jB,eAAiBxU,EAAQA,EAAMf,OAAS,WAG7CnO,KAAK0jB,eAAiB1jB,KAAKmO,OAAOvM,cAKnC5B,KAAK2jB,kBAAkBmC,QAOLpkB,IAAdqkB,GACH/lB,KAAK4jB,kBAAkBmC,MAkBtBplB,IAAIoB,UAAY,UAIpB3B,EAAIO,IAAI2f,gBAAkB,iBAK1BlgB,EAAIO,IAAImC,WAAY,EAIpB1C,EAAIO,IAAI4kB,QAAU,GAGlBnlB,EAAIO,IAAI4kB,QAAiB,QAAI,GAE7BnlB,EAAIO,IAAI4kB,QAAe,MAAI,CAC1BpH,gBAAiB,sBACjBE,mBAAoB,sBACpBuB,YAAa,iBAEdxf,EAAIO,IAAI4kB,QAAc,KAAI,CACzBpH,gBAAiB,mBACjBE,mBAAoB,sBACpBuB,YAAa,uBAGdxf,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,GAC3F5U,EAAIO,IAAI4kB,QAAgB,OAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAC5F5U,EAAIO,IAAI4kB,QAAe,MAAI,CAAE9V,MAAM,IAAKC,OAAO,IAAKqE,QAAQ,GAAIL,WAAW,GAAIsB,YAAY,IAE3F5U,EAAIO,IAAI4kB,QAAc,KAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GACpFhV,EAAIO,IAAI4kB,QAAe,MAAI,CAAE/Q,YAAY,EAAGjB,mBAAmB,EAAG6B,mBAAmB,GAIrFhV,EAAIO,IAAIke,iBAAmB,EAG3Bze,EAAIO,IAAIyP,eAAiB,EACzBhQ,EAAIO,IAAI2P,iBAAmB,UAC3BlQ,EAAIO,IAAI6P,iBAAmB,UAG3BpQ,EAAIO,IAAIuP,iBAAmB,CAAC,wBAAyB,yBAIrD9P,EAAIO,IAAIC,KAAO,WACd,IAAIR,EAAIE,YAgBR,IAXAP,EAAOH,SAASc,iBAAiB,YAAaN,EAAIoW,qBAAqB,GACvEzW,EAAOH,SAASc,iBAAiB,QAASN,EAAI+V,iBAAiB,GAC/DpW,EAAOW,iBAAiB,SAAUN,EAAIiW,gBAAgB,GACtDtW,EAAOW,iBAAiB,SAAUN,EAAIkW,gBAAgB,GAGtDlW,EAAIO,IAAIqlB,UAER5lB,EAAIE,aAAc,EAGXF,EAAII,WAAWe,QACVnB,EAAII,WAAWylB,OAC1B5f,IAMFjG,EAAIO,IAAIqlB,QAAU,SAAUjlB,GAC3B,IAAIuhB,GAAU,EAEd,IACCliB,EAAIS,kBAAkB,iBAAkBE,GACvC,MAAO0B,GACR6f,GAAU,EACVngB,QAAQC,KAAKK,GAId,GAAIrC,EAAIO,IAAIU,YACX,IACCjB,EAAIS,kBAEF,SAAWT,EAAIO,IAAIU,YAAnB,YACYjB,EAAIO,IAAIU,YAErBN,GAEA,MAAO0B,IAGV,OAAO6f,GAMRliB,EAAIO,IAAIulB,MAAQ,SAAU7f,GACzB,MAAoB,mBAATA,GACVlE,QAAQC,KAAK,mCACN,IAGJhC,EAAIE,YACP+F,IAEAjG,EAAII,WAAW4C,KAAKiD,IAEd,IASRjG,EAAIO,IAAIkV,QAAU,SAAUD,GAC3B,IAAIuQ,EAAa,WAChB/lB,EAAIuV,cAAcC,IAGfxV,EAAIE,YACP6lB,IAEA/lB,EAAIO,IAAIulB,MAAMC,IAMhB/lB,EAAIO,IAAI2X,KAAO,WACVlY,EAAIwR,QAAUxR,EAAIwR,OAAOC,OAC5BzR,EAAIwR,OAAOC,MAAMyG,QAMnBlY,EAAIO,IAAIoe,WAAa,SAAU7P,GAK9B,OAJKA,IACJA,EAAQ,iBAEK9O,EAAIyP,sBAAsBX,GACzBI,OAAOgQ,aAKvBlf,EAAIO,IAAIiK,WAAa,SAAUsE,GAC9B,IAAI8U,EAAc,GAGlBA,EAAY5gB,KAAKhD,EAAIkR,wBAAwBpC,IAG7C,IAAImV,EAAUjkB,EAAIyP,wBAOlB,OANAmU,EAAY5gB,KAAK,CAChB,QAAWihB,EAAQ/U,OAAOgQ,YAAc,KACxC,WACA,UACCtU,KAAK,MAEAgZ,EAAYhZ,KAAK,OAYzB5K,EAAIO,IAAIukB,QAAU,GAUlB9kB,EAAIO,IAAIU,YAAc,UAMtBjB,EAAIO,IAAIylB,mBAAqB,WAE5B,OADAjkB,QAAQuT,MAAM,qGAAuGtV,EAAIiC,UAClH,GAIRjC,EAAIK,WAGGL,EAAIO,KAaX,YAP8B,IAAnBZ,EAAOM,UACjBN,EAAOM,QAAUN,EAAOsmB,QAAUhmB,GAM5BA,OAUOimB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB9kB,IAAjB+kB,EACH,OAAOA,EAAa9mB,QAGrB,IAAIH,EAAS8mB,EAAyBE,GAAY,CAGjD7mB,QAAS,IAOV,OAHAL,EAAoBknB,GAAUvb,KAAKzL,EAAOG,QAASH,EAAQA,EAAOG,QAAS4mB,GAGpE/mB,EAAOG,QAOd4mB,EAAoBhiB,EAAK/E,IACxB,IAAI0b,EAAS1b,GAAUA,EAAOknB,WAC7B,IAAOlnB,EAAiB,QACxB,IAAM,EAEP,OADA+mB,EAAoBI,EAAEzL,EAAQ,CAAE/Q,EAAG+Q,IAC5BA,GAORqL,EAAoBI,EAAI,CAAChnB,EAASinB,KACjC,IAAI,IAAIC,KAAOD,EACXL,EAAoBO,EAAEF,EAAYC,KAASN,EAAoBO,EAAEnnB,EAASknB,IAC5E/hB,OAAOC,eAAepF,EAASknB,EAAK,CAAEE,YAAY,EAAM/hB,IAAK4hB,EAAWC,MAQ3EN,EAAoBO,EAAI,CAAC1hB,EAAKI,IAAUV,OAAOiG,UAAUxF,eAAe0F,KAAK7F,EAAKI,GAM7F,MACA,aAgDA,IAAIwhB,EAAY,GAChB,MAMMC,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACjB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIIC,EAAwB,CAC5B,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OAMF,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EA1BAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAqBtB,MAAMC,EAAe,SACfC,EAAe,SAMfC,EAAY,OACZC,EAAa,QACbC,EAAc,SACdC,EAAc,SACdC,EAAW,MACXC,EAAc,SACdC,EAAY,OACZC,EAAY,OACZC,EAAa,QACbC,EAAS,CACbH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUIE,EAAc,CAClB,CAAC,6BAA8B,oCAAqC,SACpE,CACE,2CACA,6EACA,SAEF,CACE,6BACA,qPACA,SAEF,CACE,8BACA,kEACA,SAEF,CACE,kCACA,2PACA,SAEF,CACE,0BACA,gLA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","file":"./CookieMonster.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 36b395a3..f9095fd6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cookiemonster-mod", - "version": "2.031.5", + "version": "2.031.6", "description": "Cookie Monster is an add-on that you can load into Cookie Clicker which offers a wide range of tools and statistics to enhance the game. It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want. This is a helper and everything is an option.", "main": "CookieMonster.js", "keywords": [ diff --git a/src/Data/Moddata.js b/src/Data/Moddata.js index f03a734c..1badb86a 100644 --- a/src/Data/Moddata.js +++ b/src/Data/Moddata.js @@ -1,7 +1,7 @@ /** Data related directly to Cookie Monster */ export const VersionMajor = '2.031'; -export const VersionMinor = '5'; +export const VersionMinor = '6'; /** Information about Cookie Monster to be displayed in the info section */ export const ModDescription = `
@@ -15,15 +15,27 @@ export const ModDescription = `
/** Latest releasenotes of Cookie Monster to be displayed in the info section */ export const LatestReleaseNotes = `
-The latest update (v 2.031.5) sees a total rehaul of the backend of the mod. It does not introduce any new functions, this is planned for the next release.
-We believe we have fixed all bugs related to this new code, but if you find any bugs, please report them on the GitHub!
+The latest update (v 2.031.6) has revamped the way PP is colourcoded. In the previous versions this was not always correct and we had some settings that made it even more incorrect. With this update Cookie Monster compares the PP of a building to all other possibilities (also buying 10 or 100) of a building and colors the PP accordingly.
+This means that if it is better to buy 10 of a building immediately rather than to buy in increments of 1 Cookie Monster will now show this! In this case the buy 1 option will be yellow, while the buy 10 option will be green.
+This also means that you will see some more diverse colors. Rather than coloring according to arbitrary "middle values" Cookie Monster now uses a top 10, 20 and 30. While this might take some getting used to we believe the new system is much better in conveying useful information to the user while also being more correct!

-Besides, this update fixes the following bugs:
-- Fixed some upgrade tooltips which did not display the full effect of buying the upgrades
-- Fixed not always being able to sell when "blocking bulk buy"
-- Fixed heavenly chips per second display
-- Fixed small display bug when pressing shift and hovering over garden plots
-- Fixed some bugs with the display of numbers and formatting of them
+This update also implements the following functions:
+- Added a tooltip displaying the reward to the extra pop wrinkler buttons
+- Added tooltips to the Gods in the Pantheon
+- The tooltip for Elder Pledge now displays correctly, although it takes some time to load after Cookie Monster has been loaded
+- You can now test the volume and sound of notifications in the settings screen
+- The bottom bar will now flicker less and each column has received a bit of padding
+- Introduced new colour scheme for PP, see the explanation of colors in the Readme or the settings
+- Added option to show buttons that can hide the upgrade and building section
+- Added option to display PP as a time unit, note that these are only approximations. PP does not translate directly into time (the name is deceptive, we know...)
+- Statistics page now shows chance for random drops when they have not been achieved
+
+This update fixes the following bugs:
+- Incorrect amount for "required for max plant reward" in statistics page
+- Fixed the tooltips of the '?' buttons in the statistics page not showing
+- Fixed some unclear settings descriptions
+
+Please submit any bug reports or feature requests to the GitHub page!
`;