(t||e.messages.push(n),Object(_Literature__WEBPACK_IMPORTED_MODULE_3__.b)(n),!1)})),this.public){var i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Sell Shares",display:"inline-block",tooltip:"Sell your shares in the company. This is the only way to profit from your business venture.",clickListener:()=>{var e="cmpy-mgmt-sell-shares-popup",t=this.sharePrice,n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerHTML:"Enter the number of shares you would like to sell. The money from selling your shares will go directly to you (NOT your Corporation). The current price of your company's stock is "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(t).format("$0.000a")}),a=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{}),i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Shares to sell",margin:"5px",inputListener:()=>{var e=Math.round(i.value);isNaN(e)||e<=0?a.innerText="ERROR: Invalid value entered for number of shares to sell":e>this.numShares?a.innerText="You don't have this many shares to sell!":a.innerText="Sell "+e+" shares for a total of "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(e*t).format("$0.000a")}}),r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Sell shares",display:"inline-block",clickListener:()=>{var t=Math.round(i.value);if(isNaN(t)||t<=0)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: Invalid value for number of shares");else{if(!(t>this.numShares)){if(this.numShares-=t,isNaN(this.issuedShares)){console.log("ERROR: Corporation issuedShares is NaN: "+this.issuedShares),console.log("Converting to number now");var n=parseInt(this.issuedShares);isNaN(n)?this.issuedShares=0:this.issuedShares=n}return this.issuedShares+=t,_Player__WEBPACK_IMPORTED_MODULE_5__.a.gainMoney(t*this.sharePrice),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1}Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: You don't have this many shares to sell")}}}),o=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Cancel",display:"inline-block",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)});Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(e,[n,a,i,r,o])}}),r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Buyback shares",display:"inline-block",tooltip:"Buy back shares you that previously issued or sold at market price.",clickListener:()=>{var e="cmpy-mgmt-buyback-shares-popup",t=this.sharePrice,n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerHTML:"Enter the number of shares you would like to buy back at market price. To purchase these shares, you must use your own money (NOT your Corporation's funds). The current price of your company's stock is "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(t).format("$0.000a")+". Your company currently has "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(this.issuedShares,3)+" outstanding stock shares"}),a=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{}),i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Shares to buyback",margin:"5px",inputListener:()=>{var e=Math.round(i.value);isNaN(e)||e<=0?a.innerText="ERROR: Invalid value entered for number of shares to buyback":e>this.issuedShares?a.innerText="There are not this many shares available to buy back. There are only "+this.issuedShares+" outstanding shares.":(console.log("here"),a.innerText="Purchase "+e+" shares for a total of "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(e*t).format("$0.000a"))}}),r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Buy shares",display:"inline-block",clickListener:()=>{var t=Math.round(i.value),n=this.sharePrice;if(isNaN(t)||t<=0)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: Invalid value for number of shares");else if(t>this.issuedShares)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: There are not this many oustanding shares to buy back");else if(t*n>_Player__WEBPACK_IMPORTED_MODULE_5__.a.money)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: You do not have enough money to purchase this many shares (you need "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(t*n).format("$0.000a")+")");else{if(this.numShares+=t,isNaN(this.issuedShares)){console.log("ERROR: Corporation issuedShares is NaN: "+this.issuedShares),console.log("Converting to number now");var a=parseInt(this.issuedShares);isNaN(a)?this.issuedShares=0:this.issuedShares=a}this.issuedShares-=t,_Player__WEBPACK_IMPORTED_MODULE_5__.a.loseMoney(t*n),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e)}return!1}}),o=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Cancel",display:"inline-block",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)});Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(e,[n,a,i,r,o])}});companyManagementPanel.appendChild(i),companyManagementPanel.appendChild(r);var o=this.determineValuation()>=BribeThreshold,s=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:o?"a-link-button":"a-link-button-inactive",innerText:"Bribe Factions",display:"inline-block",tooltip:o?"Use your Corporations power and influence to bribe Faction leaders in exchange for reputation":"Your Corporation is not powerful enough to bribe Faction leaders",clickListener:()=>{for(var e="cmpy-mgmt-bribe-factions-popup",t=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"You can use Corporation funds or stock shares to bribe Faction Leaders in exchange for faction reputation"}),n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("select",{margin:"3px"}),a=0;a<_Player__WEBPACK_IMPORTED_MODULE_5__.a.factions.length;++a){var i=_Player__WEBPACK_IMPORTED_MODULE_5__.a.factions[a];n.add(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("option",{text:i,value:i}))}var r,o=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p"),s=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Corporation funds",margin:"5px",inputListener:()=>{var e=null==s.value||""==s.value?0:parseFloat(s.value),t=this.sharePrice,a=null==r.value||""==r.value?0:Math.round(parseFloat(r.value));if(isNaN(e)||isNaN(a)||e<0||a<0)o.innerText="ERROR: Invalid value(s) entered";else if(this.funds.lt(e))o.innerText="ERROR: You do not have this much money to bribe with";else if(this.stockShares>this.numShares)o.innerText="ERROR: You do not have this many shares to bribe with";else{var i=(Number(e)+a*t)/BribeToRepRatio;o.innerText="You will gain "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(i,0)+" reputation with "+n.options[n.selectedIndex].value+" with this bribe"}}});r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Stock Shares",margin:"5px",inputListener:()=>{var e=null==s.value||""==s.value?0:parseFloat(s.value),t=this.sharePrice,a=null==r.value||""==r.value?0:Math.round(r.value);if(isNaN(e)||isNaN(a)||e<0||a<0)o.innerText="ERROR: Invalid value(s) entered";else if(this.funds.lt(e))o.innerText="ERROR: You do not have this much money to bribe with";else if(this.stockShares>this.numShares)o.innerText="ERROR: You do not have this many shares to bribe with";else{var i=(e+a*t)/BribeToRepRatio;console.log("repGain: "+i),o.innerText="You will gain "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(i,0)+" reputation with "+n.options[n.selectedIndex].value+" with this bribe"}}});var l=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Bribe",display:"inline-block",clickListener:()=>{var t=null==s.value||""==s.value?0:parseFloat(s.value),a=this.sharePrice,i=null==r.value||""==r.value?0:Math.round(parseFloat(r.value)),o=_Faction__WEBPACK_IMPORTED_MODULE_2__.b[n.options[n.selectedIndex].value];if(null==o)return Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: You must select a faction to bribe"),!1;if(isNaN(t)||isNaN(i)||t<0||i<0)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: Invalid value(s) entered");else if(this.funds.lt(t))Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: You do not have this much money to bribe with");else{if(!(i>this.numShares)){var l=(t+i*a)/BribeToRepRatio;return Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You gained "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(l,0)+" reputation with "+o.name+" by bribing them."),o.playerReputation+=l,this.funds=this.funds.minus(t),this.numShares-=i,Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1}Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("ERROR: You do not have this many shares to bribe with")}}}),c=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Cancel",display:"inline-block",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)});Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(e,[t,n,o,s,r,l,c])}});companyManagementPanel.appendChild(s)}else{var l=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:this.fundingRound>=4?"a-link-button-inactive":"a-link-button tooltip",innerText:"Find Investors",display:"inline-block",clickListener:()=>{this.getInvestment()}});if(this.fundingRound<4){var c=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("span",{class:"tooltiptext",innerText:"Search for private investors who will give you startup funding in exchange for equity (stock shares) in your company"});l.appendChild(c)}var u=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button tooltip",innerText:"Go Public",display:"inline-block",clickListener:()=>(this.goPublic(),!1)}),d=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("span",{class:"tooltiptext",innerText:"Become a publicly traded and owned entity. Going public involves issuing shares for an IPO. Once you are a public company, your shares will be traded on the stock market."});u.appendChild(d),companyManagementPanel.appendChild(l),companyManagementPanel.appendChild(u)}if(this.updateCorporationOverviewContent(),!(this.divisions.length<=0)){var h=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{class:"cmpy-mgmt-upgrade-container"});h.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("h1",{innerText:"Unlocks",margin:"6px",padding:"6px"}));var p=Object.keys(CorporationUnlockUpgrades).length,m=Object.keys(CorporationUpgrades).length;for(null!=this.unlockUpgrades&&null!=this.upgrades||(this.unlockUpgrades=Array(p).fill(0),this.upgrades=Array(m).fill(0));this.unlockUpgrades.length{t.funds.lt(n[1])?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Insufficient funds"):(t.unlock(n),t.displayCorporationOverviewContent())}}))}}(a,this);h.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("h1",{innerText:"Upgrades",margin:"6px",padding:"6px"}));for(a=0;a{t.funds.lt(r)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Insufficient funds"):(t.upgrade(n),t.displayCorporationOverviewContent())}}))}else console.log("ERROR: Could not find levelable upgrade index "+e)}(a,this);companyManagementPanel.appendChild(h)}},Corporation.prototype.updateCorporationOverviewContent=function(){var e=document.getElementById("cmpy-mgmt-overview-text");if(null!=e){var t=this.funds,n=(new decimal_js__WEBPACK_IMPORTED_MODULE_6__.a(0),new decimal_js__WEBPACK_IMPORTED_MODULE_6__.a(0),this.revenue.minus(this.expenses).toNumber()),a=n>=0?numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(n).format("$0.000a"):"-"+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(-1*n).format("$0.000a"),i="Total Funds: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(t.toNumber()).format("$0.000a")+"
Total Revenue: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(this.revenue.toNumber()).format("$0.000a")+" / s
Total Expenses: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(this.expenses.toNumber()).format("$0.000a")+"/ s
Total Profits: "+a+" / s
Publicly Traded: "+(this.public?"Yes":"No")+"
Owned Stock Shares: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(this.numShares).format("0.000a")+"
Stock Price: "+(this.public?"$"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(this.sharePrice,2):"N/A")+"
",r=this.getProductionMultiplier(),o=this.getStorageMultiplier(),s=this.getAdvertisingMultiplier(),l=this.getEmployeeCreMultiplier(),c=this.getEmployeeChaMultiplier(),u=this.getEmployeeIntMultiplier(),d=this.getEmployeeEffMultiplier(),h=this.getSalesMultiplier(),p=this.getScientificResearchMultiplier();r>1&&(i+="Production Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(r,3)+"
"),o>1&&(i+="Storage Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(o,3)+"
"),s>1&&(i+="Advertising Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(s,3)+"
"),l>1&&(i+="Empl. Creativity Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(l,3)+"
"),c>1&&(i+="Empl. Charisma Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(c,3)+"
"),u>1&&(i+="Empl. Intelligence Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(u,3)+"
"),d>1&&(i+="Empl. Efficiency Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(d,3)+"
"),h>1&&(i+="Sales Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(h,3)+"
"),p>1&&(i+="Scientific Research Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(p,3)+"
"),e.innerHTML=i}else console.log("WARNING: Could not find overview text elemtn in updateCorporationOverviewContent()")},Corporation.prototype.displayDivisionContent=function(e,t){for(var n in this.clearUIPanel(),currentCityUi=t,e.offices)e.offices[n]instanceof OfficeSpace&&this.createCityUITab(n,e);(cityTabs=companyManagementPanel.getElementsByClassName("cmpy-mgmt-city-tab")).length>0&&this.selectCityTab(document.getElementById("cmpy-mgmt-city-"+t+"-tab"),t),companyManagementPanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("button",{class:"cmpy-mgmt-city-tab",innerText:"Expand into new City",display:"inline-block",clickListener:()=>{var t="cmpy-mgmt-expand-city-popup",n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Would you like to expand into a new city by opening an office? This would cost "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(OfficeInitialCost).format("$0.000a")}),a=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("select",{class:"dropdown",margin:"5px"});for(var i in e.offices)e.offices.hasOwnProperty(i)&&(e.offices[i]instanceof OfficeSpace||a.add(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("option",{text:i,value:i})));var r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{innerText:"Confirm",class:"a-link-button",display:"inline-block",margin:"3px",clickListener:()=>{var n=a.options[a.selectedIndex].value;return this.funds.lt(OfficeInitialCost)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to open a new office!"):(this.funds=this.funds.minus(OfficeInitialCost),Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Opened a new office in "+n+"!"),e.offices[n]=new OfficeSpace({loc:n,size:OfficeInitialSize}),this.displayDivisionContent(e,n)),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(t),!1}}),o=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{innerText:"Cancel",class:"a-link-button",display:"inline-block",margin:"3px",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(t),!1)});return Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(t,[n,a,r,o]),!1}})),companyManagementPanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{}));var a=e.offices[currentCityUi];if(a instanceof OfficeSpace){var i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{class:"cmpy-mgmt-industry-left-panel"}),r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{class:"cmpy-mgmt-industry-right-panel"});companyManagementPanel.appendChild(i),companyManagementPanel.appendChild(r),industryOverviewPanel=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{id:"cmpy-mgmt-industry-overview-panel",class:"cmpy-mgmt-industry-overview-panel"}),i.appendChild(industryOverviewPanel),industryEmployeePanel=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{id:"cmpy-mgmt-employee-panel",class:"cmpy-mgmt-employee-panel"}),i.appendChild(industryEmployeePanel),industryWarehousePanel=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{id:"cmpy-mgmt-warehouse-panel",class:"cmpy-mgmt-warehouse-panel"}),r.appendChild(industryWarehousePanel),industryOverviewText=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{}),industryOverviewPanel.appendChild(industryOverviewText),industryOverviewPanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{}));for(var o=Object.keys(IndustryUpgrades).length;e.upgrades.length{n.funds.lt(c)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Insufficient funds"):(n.funds=n.funds.minus(c),a.upgrade(r,{corporation:n,office:i}),n.displayDivisionContent(a,t))}})),s.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{}))}else console.log("ERROR: Could not find levelable upgrade index: "+e)}(l,this,e,a);if(industryOverviewPanel.appendChild(s),e.makesProducts){var c,u;switch(e.type){case Industries.Food:c="Build Restaurant",u="Build and manage a new restaurant!";break;case Industries.Tobacco:c="Create Product",u="Create a new tobacco product!";break;case Industries.Pharmaceutical:c="Create Drug",u="Design and develop a new pharmaceutical drug!";break;case Industries.Computer:case"Computer":c="Create Product",u="Design and manufacture a new computer hardware product!";break;case Industries.Robotics:c="Design Robot",u="Design and create a new robot or robotic system!";break;case Industries.Software:c="Develop Software",u="Develop a new piece of software!";break;case Industries.Healthcare:c="Build Hospital",u="Build and manage a new hospital!";break;case Industries.RealEstate:c="Develop Property",u="Develop a new piece of real estate property!";break;default:return c="Create Product",""}u+="
To begin developing a product, first choose the city in which it will be designed. The stats of your employees in the selected city affect the properties of the finished product, such as its quality, performance, and durability.
You can also choose to invest money in the design and marketing of the product. Investing money in its design will result in a superior product. Investing money in marketing the product will help the product's sales.",industryOverviewPanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:c,margin:"6px",display:"inline-block",clickListener:()=>{var n="cmpy-mgmt-create-product-popup",a=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerHTML:u}),i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("select",{});for(var r in e.offices)e.offices[r]instanceof OfficeSpace&&i.add(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("option",{value:r,text:r}));var o="Product Name";e.type===Industries.Food?o="Restaurant Name":e.type===Industries.Healthcare?o="Hospital Name":e.type===Industries.RealEstate&&(o="Property Name");var s=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{placeholder:o}),l=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{}),c=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Design investment"}),d=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",placeholder:"Marketing investment"}),h=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Develop Product",clickListener:()=>{null==c.value&&(c.value=0),null==d.value&&(d.value=0);var a=parseFloat(c.value),r=parseFloat(d.value);if(null==s.value||""===s.value)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You must specify a name for your product!");else if(isNaN(a))Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Invalid value for design investment");else if(isNaN(r))Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Invalid value for marketing investment");else if(this.funds.lt(a+r))Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to make this large of an investment");else{var o=new Product({name:s.value.replace(/[<>]/g,""),createCity:i.options[i.selectedIndex].value,designCost:a,advCost:r});this.funds=this.funds.minus(a+r),e.products[o.name]=o,Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(n)}return this.displayDivisionContent(e,t),!1}}),p=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Cancel",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(n),!1)});Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(n,[a,i,s,l,c,d,h,p])}}))}if(industryEmployeeText=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{id:"cmpy-mgmt-employee-p",display:"block",innerHTML:"Office Space
Type: "+a.tier+"
Comfort: "+a.comf+"
Beauty: "+a.beau+"
Size: "+a.employees.length+" / "+a.size+" employees"}),industryEmployeePanel.appendChild(industryEmployeeText),industryEmployeeHireButton=0===a.employees.length?Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",innerText:"Hire Employee",fontSize:"13px",tooltip:"You'll need to hire some employees to get your operations started! It's recommended to have at least one employee in every position",clickListener:()=>(a.findEmployees({corporation:this,division:e}),!1)}):Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",innerText:"Hire Employee",fontSize:"13px",clickListener:()=>(a.findEmployees({corporation:this,division:e}),!1)}),industryEmployeePanel.appendChild(industryEmployeeHireButton),industryEmployeeAutohireButton=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",innerText:"Autohire Employee",fontSize:"13px",tooltip:"Automatically hires an employee and gives him/her a random name",clickListener:()=>(a.hireRandomEmployee({corporation:this,division:e}),!1)}),industryEmployeePanel.appendChild(industryEmployeeAutohireButton),industryEmployeePanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{})),industryOfficeUpgradeSizeButton=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Upgrade size",display:"inline-block",margin:"6px",fontSize:"13px",tooltip:"Upgrade the office's size so that it can hold more employees!",clickListener:()=>{for(var e="cmpy-mgmt-upgrade-office-size-popup",t=Math.round(a.size/OfficeInitialSize),n=OfficeInitialCost*Math.pow(1.07,t),i=0,r=0;r<5;++r)i+=Math.pow(1.07,t+r);var o=OfficeInitialCost*i,s=this.funds.dividedBy(OfficeInitialCost).toNumber(),l=1;for(i=Math.pow(1.07,t);l<50&&!(i>=s);){var c=Math.pow(1.07,t+l);if(i+c>s)break;i+=c,++l}var u=OfficeInitialCost*i,d=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Increase the size of your office space to fit additional employees!"}),h=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Upgrade size: "}),p=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:this.funds.lt(n)?"a-link-button-inactive":"a-link-button",display:"inline-block",margin:"4px",innerText:"by 3",tooltip:numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(n).format("$0.000a"),clickListener:()=>(this.funds.lt(n)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to purchase this upgrade!"):(a.size+=OfficeInitialSize,this.funds=this.funds.minus(n),Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Office space increased! It can now hold "+a.size+" employees"),this.updateUIContent()),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)}),m=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:this.funds.lt(o)?"a-link-button-inactive":"a-link-button",display:"inline-block",margin:"4px",innerText:"by 15",tooltip:numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(o).format("$0.000a"),clickListener:()=>(this.funds.lt(o)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to purchase this upgrade!"):(a.size+=5*OfficeInitialSize,this.funds=this.funds.minus(o),Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Office space increased! It can now hold "+a.size+" employees"),this.updateUIContent()),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)}),g=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:this.funds.lt(u)?"a-link-button-inactive":"a-link-button",display:"inline-block",margin:"4px",innerText:"by MAX ("+l*OfficeInitialSize+")",tooltip:numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(u).format("$0.000a"),clickListener:()=>(this.funds.lt(u)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to purchase this upgrade!"):(a.size+=OfficeInitialSize*l,this.funds=this.funds.minus(u),Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Office space increased! It can now hold "+a.size+" employees"),this.updateUIContent()),Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)}),y=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",innerText:"Cancel",display:"inline-block",margin:"4px",clickListener:()=>(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(e),!1)});return Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(e,[d,h,p,m,g,y]),!1}}),industryEmployeePanel.appendChild(industryOfficeUpgradeSizeButton),industryEmployeePanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",innerText:"Throw Party",fontSize:"13px",tooltip:"Throw an office party to increase your employee's morale and happiness",clickListener:()=>{var e,t="cmpy-mgmt-throw-office-party-popup",n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Enter the amount of money you would like to spend PER EMPLOYEE on this office party"}),i=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Throwing this party will cost a total of $0"}),r=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("input",{type:"number",margin:"5px",placeholder:"$ / employee",inputListener:()=>{if(isNaN(r.value)||r.value<0)i.innerText="Invalid value entered!";else{var e=r.value*a.employees.length;i.innerText="Throwing this party will cost a total of "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(e).format("$0.000a")}},onkeyup:t=>{t.preventDefault(),13===t.keyCode&&e.click()}});e=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",innerText:"Throw Party",clickListener:()=>{if(isNaN(r.value)||r.value<0)Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Invalid value entered");else{var e=r.value*a.employees.length;if(this.funds.lt(e))Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You don't have enough company funds to throw this party!");else{var n;this.funds=this.funds.minus(e);for(var i=0;i(Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__.removeElementById)(t),!1)});Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__.createPopup)(t,[n,i,r,e,o])}})),industryEmployeeManagementUI=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{}),industryEmployeeInfo=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{margin:"4px",padding:"4px"}),empManualAssignmentModeActive){industryEmployeeManagementUI.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:"a-link-button",display:"inline-block",margin:"4px",innerText:"Switch to Auto Mode",tooltip:"Switch to Automatic Assignment Mode, which will automatically assign employees to your selected jobs. You simply have to select the number of assignments for each job",clickListener:()=>{empManualAssignmentModeActive=!1,this.displayDivisionContent(e,t)}})),industryEmployeeManagementUI.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{})),industryIndividualEmployeeInfo=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{margin:"4px",padding:"4px"});var d=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("select",{color:"white",backgroundColor:"black",margin:"4px",padding:"4px",changeListener:()=>{for(var e=d.options[d.selectedIndex].text,t=0;t{empManualAssignmentModeActive=!0,this.displayDivisionContent(e,t)}})),industryEmployeeManagementUI.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{}));var h=0,p=0,m=0,g=0,y=0,f=0,b=0;for(l=0;l0?"a-link-button":"a-link-button-inactive",display:"inline-block",innerText:"+",clickListener:()=>{a.assignEmployeeToJob(v[i]),n.displayDivisionContent(e,t)}}),s=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{class:k[i]>0?"a-link-button":"a-link-button-inactive",display:"inline-block",innerText:"-",clickListener:()=>{a.unassignEmployeeFromJob(v[i]),n.displayDivisionContent(e,t)}}),l=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{});industryEmployeeManagementUI.appendChild(r),industryEmployeeManagementUI.appendChild(o),industryEmployeeManagementUI.appendChild(s),industryEmployeeManagementUI.appendChild(l)}(this,l)}industryEmployeePanel.appendChild(industryEmployeeManagementUI);var E=e.warehouses[currentCityUi];E instanceof Warehouse?E.createUI({industry:e,company:this}):industryWarehousePanel.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("a",{innerText:"Purchase Warehouse ($5b)",class:"a-link-button",clickListener:()=>(this.funds.lt(WarehouseInitialCost)?Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("You do not have enough funds to do this!"):(e.warehouses[currentCityUi]=new Warehouse({loc:currentCityUi,size:WarehouseInitialSize}),this.funds=this.funds.minus(WarehouseInitialCost),this.displayDivisionContent(e,currentCityUi)),!1)})),this.updateDivisionContent(e)}else console.log("ERROR: Current city for UI does not have an office space")},Corporation.prototype.updateDivisionContent=function(e){if(e instanceof Industry){var t=1===this.unlockUpgrades[4],n=e.lastCycleRevenue.minus(e.lastCycleExpenses).toNumber(),a=n>=0?numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(n).format("$0.000a"):"-"+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(-1*n).format("$0.000a"),i="";if(t){var r=e.getAdvertisingFactors(),o=r[1],s=r[2],l=r[3],c=r[0];i="Advertising Multiplier: x"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(c,3)+"Total multiplier for this industry's sales due to its awareness and popularity
Awareness Bonus: x"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(Math.pow(o,.85),3)+"
Popularity Bonus: x"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(Math.pow(s,.85),3)+"
Ratio Multiplier: x"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(Math.pow(l,.85),3)+"
"}Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_16__.removeChildrenFromElement)(industryOverviewText),industryOverviewText.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerHTML:"Industry: "+e.type+" (Corp Funds: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(this.funds.toNumber()).format("$0.000a")+")
Awareness: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.awareness,3)+"
Popularity: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.popularity,3)+"
"+i+"
Revenue: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(e.lastCycleRevenue.toNumber()).format("$0.000a")+" / s
Expenses: "+numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_10___default()(e.lastCycleExpenses.toNumber()).format("$0.000a")+" /s
Profit: "+a+" / s
"})),industryOverviewText.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{marginTop:"2px",innerText:"Production Multiplier: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.prodMult,2),tooltip:"Production gain from owning production-boosting materials such as hardware, Robots, AI Cores, and Real Estate"})),industryOverviewText.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("div",{innerText:"?",class:"help-tip",clickListener:()=>{Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__.dialogBoxCreate)("Owning Hardware, Robots, AI Cores, and Real Estate can boost your Industry's production. The effect these materials have on your production varies between Industries. For example, Real Estate may be very effective for some Industries, but ineffective for others.
This division's production multiplier is calculated by summing the individual production multiplier of each of its office locations. This production multiplier is applied to each office. Therefore, it is beneficial to expand into new cities as this can greatly increase the production multiplier of your entire Division.")}})),industryOverviewText.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br")),industryOverviewText.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{display:"inline-block",innerText:"Scientific Research: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.sciResearch.qty,3),tooltip:"Scientific Research increases the quality of the materials and products that you produce."}));var u=e.offices[currentCityUi];industryEmployeeText.innerHTML="Office Space
Type: "+u.tier+"
Comfort: "+u.comf+"
Beauty: "+u.beau+"
Size: "+u.employees.length+" / "+u.size+" employees",u.employees.length>=u.size?(industryEmployeeHireButton.className="a-link-button-inactive",industryEmployeeAutohireButton.className="a-link-button-inactive tooltip"):0===u.employees.length?(industryEmployeeHireButton.className="a-link-button tooltip flashing-button",industryEmployeeAutohireButton.className="a-link-button tooltip"):(industryEmployeeHireButton.className="a-link-button",industryEmployeeAutohireButton.className="a-link-button tooltip");for(var d=0,h=0,p=0,m=0,g=0,y=0,f=0;f0&&(m=d/u.employees.length,g=h/u.employees.length,y=p/u.employees.length),industryEmployeeInfo.innerHTML="Avg Employee Morale: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(m,3)+"
Avg Employee Happiness: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(g,3)+"
Avg Employee Energy: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(y,3),t&&(industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{})),industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Material Production: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.getOfficeProductivity(u),3),tooltip:"The base amount of material this office can produce. Does not include production multipliers from upgrades and materials. This value is based off the productivity of your Operations, Engineering, and Management employees"})),industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{})),industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Product Production: "+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.getOfficeProductivity(u,{forProduct:!0}),3),tooltip:"The base amount of any given Product this office can produce. Does not include production multipliers from upgrades and materials. This value is based off the productivity of your Operations, Engineering, and Management employees"})),industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("br",{})),industryEmployeeInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("p",{innerText:"Business Multiplier: x"+Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__.formatNumber)(e.getBusinessFactor(u),3),tooltip:"The effect this office's 'Business' employees has on boosting sales"})));var b=e.warehouses[currentCityUi];b instanceof Warehouse&&b.updateUI({industry:e,company:this})}else console.log("ERROR: Invalid 'division' argument in Corporation.updateDivisionContent")},Corporation.prototype.createCityUITab=function(e,t){var n=Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__.createElement)("button",{id:"cmpy-mgmt-city-"+e+"-tab",class:"cmpy-mgmt-city-tab",innerText:e,clickListener:()=>(this.selectCityTab(n,e),this.displayDivisionContent(t,e),!1)});companyManagementPanel.appendChild(n)},Corporation.prototype.selectCityTab=function(e,t){if(null!=e||null!=(e=document.getElementById("cmpy-mgmt-city-"+t+"-tab"))){for(var n=0;n
Level 1: 16%
Level 2: 24%
Level 3: 28%"),o.SourceFile2=new r(2,"This Source-File increases the player's crime success rate, crime money, and charisma multipliers by:
Level 1: 20%
Level 2: 30%
Level 3: 35%"),o.SourceFile3=new r(3,"This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this mechanic). This Source-File also increases your charisma and company salary multipliers by:
Level 1: 8%
Level 2: 12%
Level 3: 14%"),o.SourceFile4=new r(4,"This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this Source-File opens up more of the Singularity Functions you can use."),o.SourceFile5=new r(5,"This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other stats, and it is also hidden (you won't know when you gain experience and how much). Higher Intelligence levels will boost your production for many actions in the game. In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function, and will raise all of your hacking-related multipliers by:
Level 1: 8%
Level 2: 12%
Level 3: 14%"),o.SourceFile6=new r(6,"This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this Source-File will raise both the level and experience gain rate of all your combat stats by:
Level 1: 8%
Level 2: 12%
Level 3: 14%"),o.SourceFile7=new r(7,"This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this Source-File will increase all of your Bladeburner multipliers by:
Level 1: 8%
Level 2: 12%
Level 3: 14%"),o.SourceFile8=new r(8,"This Source-File grants the following benefits:
Level 1: Permanent access to WSE and TIX API
Level 2: Ability to short stocks in other BitNodes
Level 3: Ability to use limit/stop orders in other BitNodes
This Source-File also increases your hacking growth multipliers by:
Level 1: 12%
Level 2: 18%
Level 3: 21%"),o.SourceFile9=new r(9),o.SourceFile10=new r(10),o.SourceFile11=new r(11,"This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the player's company salary and reputation gain multipliers by:
Level 1: 24%
Level 2: 36%
Level 3: 42%
"),o.SourceFile12=new r(12,"This Source-File increases all your multipliers by 1% per level. This effect is multiplicative with itself. In other words, level N of this Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers that decrease)")}function l(e,t){this.n=e,this.lvl=t}function c(e){var t="SourceFile"+e.n,n=o[t];if(null!=n){switch(e.n){case 1:for(var i=0,r=0;r=i.a.HacknetNodeMaxLevel)return!1;if(this.level+e>i.a.HacknetNodeMaxLevel){var n=Math.max(0,i.a.HacknetNodeMaxLevel-this.level);return this.purchaseLevelUpgrade(n)}return!s.a.money.lt(t)&&(s.a.loseMoney(t),this.level=Math.round(this.level+e),this.updateMoneyGainRate(),!0)},g.prototype.calculateRamUpgradeCost=function(e=1){if(e=Math.round(e),isNaN(e)||e<1)return 0;let t=0,n=Math.round(Math.log2(this.ram)),a=this.ram;for(let r=0;r=i.a.HacknetNodeMaxRam)return!1;if(this.ram*Math.pow(2,e)>i.a.HacknetNodeMaxRam){var n=Math.max(0,Math.log2(Math.round(i.a.HacknetNodeMaxRam/this.ram)));return this.purchaseRamUpgrade(n)}if(s.a.money.lt(t))return!1;s.a.loseMoney(t);for(let t=0;t=i.a.HacknetNodeMaxCores)return!1;if(this.cores+e>i.a.HacknetNodeMaxCores){var n=Math.max(0,i.a.HacknetNodeMaxCores-this.cores);return this.purchaseCoreUpgrade(n)}return!s.a.money.lt(t)&&(s.a.loseMoney(t),this.cores=Math.round(this.cores+e),this.updateMoneyGainRate(),!0)},g.prototype.toJSON=function(){return Object(u.Generic_toJSON)("HacknetNode",this)},g.fromJSON=function(e){return Object(u.Generic_fromJSON)(g,e.data)},u.Reviver.constructors.HacknetNode=g;var v=1;function _(){var e=document.getElementById("hacknet-nodes-1x-multiplier"),t=document.getElementById("hacknet-nodes-5x-multiplier"),n=document.getElementById("hacknet-nodes-10x-multiplier"),a=document.getElementById("hacknet-nodes-max-multiplier");e.setAttribute("class","a-link-button"),t.setAttribute("class","a-link-button"),n.setAttribute("class","a-link-button"),a.setAttribute("class","a-link-button"),0==s.a.hacknetNodes.length?(e.setAttribute("class","a-link-button-inactive"),t.setAttribute("class","a-link-button-inactive"),n.setAttribute("class","a-link-button-inactive"),a.setAttribute("class","a-link-button-inactive")):1==v?e.setAttribute("class","a-link-button-inactive"):5==v?t.setAttribute("class","a-link-button-inactive"):10==v?n.setAttribute("class","a-link-button-inactive"):a.setAttribute("class","a-link-button-inactive")}function k(e){if(s.a.money.lt(e.calculateLevelUpgradeCost(1)))return 0;var t=1,n=i.a.HacknetNodeMaxLevel-1,a=i.a.HacknetNodeMaxLevel-e.level;if(s.a.money.gt(e.calculateLevelUpgradeCost(a)))return a;for(;t<=n;){var r=(t+n)/2|0;if(r!=i.a.HacknetNodeMaxLevel&&s.a.money.gt(e.calculateLevelUpgradeCost(r))&&s.a.money.lt(e.calculateLevelUpgradeCost(r+1)))return Math.min(a,r);if(s.a.money.lt(e.calculateLevelUpgradeCost(r)))n=r-1;else{if(!s.a.money.gt(e.calculateLevelUpgradeCost(r)))return Math.min(a,r);t=r+1}}return 0}function E(e){if(s.a.money.lt(e.calculateRamUpgradeCost(1)))return 0;const t=Math.round(Math.log2(i.a.HacknetNodeMaxRam/e.ram));if(s.a.money.gt(e.calculateRamUpgradeCost(t)))return t;for(let n=t-1;n>=0;--n)if(s.a.money.gt(e.calculateRamUpgradeCost(n)))return n;return 0}function O(e){if(s.a.money.lt(e.calculateCoreUpgradeCost(1)))return 0;var t=1,n=i.a.HacknetNodeMaxCores-1;const a=i.a.HacknetNodeMaxCores-e.cores;if(s.a.money.gt(e.calculateCoreUpgradeCost(a)))return a;for(;t<=n;){let r=(t+n)/2|0;if(r!=i.a.HacknetNodeMaxCores&&s.a.money.gt(e.calculateCoreUpgradeCost(r))&&s.a.money.lt(e.calculateCoreUpgradeCost(r+1)))return Math.min(a,r);if(s.a.money.lt(e.calculateCoreUpgradeCost(r)))n=r-1;else{if(!s.a.money.gt(e.calculateCoreUpgradeCost(r)))return Math.min(a,r);t=r+1}}return 0}function C(){Object(c.clearEventListeners)("hacknet-nodes-purchase-button").addEventListener("click",function(){return y(),!1}),_();for(var e=document.getElementById("hacknet-nodes-list");e.firstChild;)e.removeChild(e.firstChild);for(var t=0;tLevel:
'}),a=Object(d.createElement)("div",{class:"hacknet-node-ram-container row",innerHTML:'RAM:
'}),i=Object(d.createElement)("div",{class:"hacknet-node-cores-container row",innerHTML:'Cores:
'}),r=Object(d.createElement)("div",{class:"hacknet-node-container",innerHTML:''});r.appendChild(n),r.appendChild(a),r.appendChild(i);var o=Object(d.createElement)("li",{class:"hacknet-node"});o.appendChild(r),n.appendChild(Object(d.createElement)("a",{id:"hacknet-node-upgrade-level-"+t,class:"a-link-button-inactive",clickListener:function(){let t=v;return 0==v&&(t=k(e)),e.purchaseLevelUpgrade(t),w(),!1}})),a.appendChild(Object(d.createElement)("a",{id:"hacknet-node-upgrade-ram-"+t,class:"a-link-button-inactive",clickListener:function(){let t=v;return 0==v&&(t=E(e)),e.purchaseRamUpgrade(t),w(),!1}})),i.appendChild(Object(d.createElement)("a",{id:"hacknet-node-upgrade-core-"+t,class:"a-link-button-inactive",clickListener:function(){let t=v;return 0==v&&(t=O(e)),e.purchaseCoreUpgrade(t),w(),!1}})),document.getElementById("hacknet-nodes-list").appendChild(o),T(e)}function T(e){var t=e.name;m("hacknet-node-name-"+t,t),m("hacknet-node-total-production-"+t,"$"+Object(h.formatNumber)(e.totalMoneyGenerated,2)),m("hacknet-node-production-rate-"+t,"($"+Object(h.formatNumber)(e.moneyGainRatePerSecond,2)+" / second)"),m("hacknet-node-level-"+t,e.level),m("hacknet-node-ram-"+t,e.ram+"GB"),m("hacknet-node-cores-"+t,e.cores);var n=Object(p.getElementById)("hacknet-node-upgrade-level-"+t);if(e.level>=i.a.HacknetNodeMaxLevel)m("hacknet-node-upgrade-level-"+t,"MAX LEVEL"),n.setAttribute("class","a-link-button-inactive");else{let o=0;if(0==v)o=k(e);else{var a=i.a.HacknetNodeMaxLevel-e.level;o=Math.min(a,v)}var r=e.calculateLevelUpgradeCost(o);m("hacknet-node-upgrade-level-"+t,"Upgrade x"+o+" - $"+Object(h.formatNumber)(r,2)),s.a.money.lt(r)?n.setAttribute("class","a-link-button-inactive"):n.setAttribute("class","a-link-button")}var o=Object(p.getElementById)("hacknet-node-upgrade-ram-"+t);if(e.ram>=i.a.HacknetNodeMaxRam)m("hacknet-node-upgrade-ram-"+t,"MAX RAM"),o.setAttribute("class","a-link-button-inactive");else{let n=0;if(0==v)n=E(e);else{a=Math.round(Math.log2(i.a.HacknetNodeMaxRam/e.ram));n=Math.min(a,v)}var l=e.calculateRamUpgradeCost(n);m("hacknet-node-upgrade-ram-"+t,"Upgrade x"+n+" - $"+Object(h.formatNumber)(l,2)),s.a.money.lt(l)?o.setAttribute("class","a-link-button-inactive"):o.setAttribute("class","a-link-button")}var c=Object(p.getElementById)("hacknet-node-upgrade-core-"+t);if(e.cores>=i.a.HacknetNodeMaxCores)m("hacknet-node-upgrade-core-"+t,"MAX CORES"),c.setAttribute("class","a-link-button-inactive");else{let n=0;if(0==v)n=O(e);else{a=i.a.HacknetNodeMaxCores-e.cores;n=Math.min(a,v)}var u=e.calculateCoreUpgradeCost(n);m("hacknet-node-upgrade-core-"+t,"Upgrade x"+n+" - $"+Object(h.formatNumber)(u,2)),s.a.money.lt(u)?c.setAttribute("class","a-link-button-inactive"):c.setAttribute("class","a-link-button")}}function R(e){for(var t=0,n=0;n{const t=`${e.hostname}${" ".repeat(18)}`.slice(0,Math.max(e.hostname.length,18)),n={progress:e.ramUsed/e.maxRam,totalTicks:30};return`${t} ${Object(d.createProgressBarText)(n)}`.replace(/\s/g," ")},C=e=>{const t=k[e.hostname];if(null===t||void 0===t)return;const n=""+Object(_.roundToTwo)(e.ramUsed/e.maxRam);t.header.dataset.ramPercentage!==n&&(t.header.dataset.ramPercentage=n,t.header.innerHTML=O(e))};function w(e){var t=Object(o.e)(e.serverIp);if(null==t)return void console.log("ERROR: Invalid server IP for workerscript in addActiveScriptsItem()");let n=t.hostname;E.push(function(e,n){null==k[n]&&function(e){let t=e.hostname;var n=document.getElementById("active-scripts-list");let a=Object(l.createAccordionElement)({hdrText:O(e)}),i=a[0];var r=a[1];let o=a[2];if(null==k[t]){var s=Object(u.createElement)("ul");return o.appendChild(s),n.appendChild(i),k[t]={header:r,panel:o,panelList:s,scripts:{},scriptHdrs:{},scriptStats:{}},i}console.log("WARNING: Tried to create already-existing Active Scripts Server panel. This is most likely fine. It probably means many scripts just got started up on a new server. Aborting")}(t);for(var a=["active","scripts",n,e.name],r=0;rArgs: "+Object(c.arrayToString)(e.args)}));var y=Object(u.createElement)("p",{innerText:"Loading...",fontSize:"14px"});g.appendChild(y),g.appendChild(Object(u.createElement)("br")),g.appendChild(Object(u.createElement)("span",{innerText:"Log",class:"active-scripts-button",margin:"4px",padding:"4px",clickListener:()=>(Object(m.a)(e.scriptRef),!1)})),g.appendChild(Object(u.createElement)("span",{innerText:"Kill Script",class:"active-scripts-button",margin:"4px",padding:"4px",clickListener:()=>(Object(i.d)(e.scriptRef,e.scriptRef.scriptRef.server),Object(s.dialogBoxCreate)("Killing script, may take a few minutes to complete..."),!1)})),k[n].panelList.appendChild(h),k[n].scripts[o]=h,k[n].scriptHdrs[o]=p,k[n].scriptStats[o]=y}.bind(null,e,n))}function S(e){E.push(function(e){var t=Object(o.e)(e.serverIp);if(null==t)throw new Error("ERROR: Invalid server IP for workerscript. This most likely occurred because you tried to delete a large number of scripts and also deleted servers at the same time. It's not a big deal, just save and refresh the game.");let n=t.hostname;if(null==k[n])return void console.log("ERROR: Trying to delete Active Script UI Element with a hostname that cant be found in ActiveScriptsUI: "+n);for(var a=["active","scripts",t.hostname,e.name],i=0;i0?console.log("WARNING: Tried to delete Active Scripts Server panel that still has scripts. Aborting"):(Object(v.removeElement)(k[t].panel),Object(v.removeElement)(k[t].header),delete k[t]):console.log("WARNING: Tried to delete non-existent Active Scripts Server panel. Aborting")}(t)}.bind(null,e))}function T(e=150){let t=Math.min(e,E.length);for(let e=0;e"+l+"
"+c+"
"+d+"
"+h+"
"+p+"
"+g+"
"+v+"
",r}(e,k[n].scriptStats[r],r)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a=n(8),i=n(10);class r{static fromJSON(e){return i.Generic_fromJSON(r,e.data)}constructor(e="",t=""){this.fn=(e.endsWith(".txt")?e:`${e}.txt`).replace(/\s+/g,""),this.text=t}append(e){this.text+=e}download(){const e=this.fn,t=new Blob([this.text],{type:"text/plain"});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(t,e);else{const e=document.createElement("a"),n=URL.createObjectURL(t);e.href=n,e.download=this.fn,document.body.appendChild(e),e.click(),setTimeout(()=>{document.body.removeChild(e),window.URL.revokeObjectURL(n)},0)}}read(){return this.text}show(){a.dialogBoxCreate(`${this.fn}
${this.text}`,!0)}toJSON(){return i.Generic_toJSON("TextFile",this)}write(e){this.text=e}}function o(e,t){const n=e.endsWith(".txt")?e:`${e}.txt`;for(const e of t.textFiles)if(e.fn===n)return e;return null}t.TextFile=r,i.Reviver.constructors.TextFile=r,t.getTextFile=o,t.createTextFile=function(e,t,n){if(null!==o(e,n))return void console.error(`A file named "${e}" already exists on server ${n.hostname}.`);const a=new r(e,t);return n.textFiles.push(a),a}},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeElement=function(e){if(null!==e)if(e instanceof Element){for(;null!==e.firstChild;)e.removeChild(e.firstChild);null!==e.parentNode&&e.parentNode.removeChild(e)}else console.debug("The element passed into 'removeElement' was not an instance of an Element.");else console.debug("The element passed into 'removeElement' was null.")}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var a=n(22);function i(){this.data=[]}i.prototype.write=function(e){return this.data.push(e),this.data.length>a.a.MaxPortCapacity?this.data.shift():null},i.prototype.tryWrite=function(e){return!(this.data.length>=a.a.MaxPortCapacity)&&(this.data.push(e),!0)},i.prototype.read=function(){return 0===this.data.length?"NULL PORT DATA":this.data.shift()},i.prototype.peek=function(){return 0===this.data.length?"NULL PORT DATA":this.data.slice()[0]},i.prototype.full=function(){return this.data.length==a.a.MaxPortCapacity},i.prototype.empty=function(){return 0===this.data.length},i.prototype.clear=function(){this.data.length=0}},function(e,t,n){"use strict";(function(e){n.d(t,"b",function(){return T}),n.d(t,"a",function(){return x});var a=n(35),i=n(11),r=n(1),o=n(6),s=n(12),l=n(38),c=n(41),u=n(50),d=n(33),h=n(0),p=n(30),m=n(9),g=n(22),y=n(19),f=n(24),b=n(8),v=n(65),_=n(13),k=n(10),E=n(3),O=n(36),C=n(2),w=n(20),S=n(26);let T=new R;function R(){this.PlayerSave="",this.AllServersSave="",this.CompaniesSave="",this.FactionsSave="",this.SpecialServerIpsSave="",this.AliasesSave="",this.GlobalAliasesSave="",this.MessagesSave="",this.StockMarketSave="",this.SettingsSave="",this.FconfSettingsSave="",this.VersionSave="",this.AllGangsSave=""}function x(e){if(""===e||null==e||void 0===e){if(!window.localStorage.getItem("bitburnerSave"))return console.log("No save file to load"),!1;e=decodeURIComponent(escape(atob(window.localStorage.getItem("bitburnerSave")))),console.log("Loading game from localStorage")}else e=decodeURIComponent(escape(atob(e))),console.log("Loading game from IndexedDB");var t=JSON.parse(e,k.Reviver);if(Object(h.b)(t.PlayerSave),Object(m.g)(t.AllServersSave),Object(i.i)(t.CompaniesSave),Object(s.i)(t.FactionsSave),Object(y.d)(t.SpecialServerIpsSave),t.hasOwnProperty("AliasesSave"))try{Object(a.c)(t.AliasesSave)}catch(e){Object(a.c)("")}else Object(a.c)("");if(t.hasOwnProperty("GlobalAliasesSave"))try{Object(a.d)(t.GlobalAliasesSave)}catch(e){Object(a.d)("")}else Object(a.d)("");if(t.hasOwnProperty("MessagesSave"))try{Object(d.e)(t.MessagesSave)}catch(e){Object(d.d)()}else Object(d.d)();if(t.hasOwnProperty("StockMarketSave"))try{Object(f.j)(t.StockMarketSave)}catch(e){Object(f.j)("")}else Object(f.j)("");if(t.hasOwnProperty("SettingsSave"))try{Object(g.c)(t.SettingsSave)}catch(e){console.log("ERROR: Failed to parse Settings. Re-initing default values"),Object(g.b)()}else Object(g.b)();if(t.hasOwnProperty("FconfSettingsSave"))try{Object(l.c)(t.FconfSettingsSave)}catch(e){console.log("ERROR: Failed to parse .fconf Settings.")}if(t.hasOwnProperty("VersionSave"))try{var n=JSON.parse(t.VersionSave,k.Reviver);null!=h.a.bitNodeN&&0!==h.a.bitNodeN||h.a.setBitNodeNumber(1),(n.startsWith("0.27.")||n.startsWith("0.28."))&&(console.log("Evaluating changes needed for version compatibility"),h.a.augmentations.length>0||h.a.queuedAugmentations.length>0||h.a.sourceFiles.length>0?(h.a.firstFacInvRecvd=!0,h.a.firstAugPurchased=!0,h.a.firstJobRecvd=!0,h.a.firstTimeTraveled=!0,h.a.firstProgramAvailable=!0):((h.a.factions.length>0||h.a.factionInvitations.length>0)&&(h.a.firstFacInvRecvd=!0),""===h.a.companyName&&""===h.a.companyPosition||(h.a.firstJobRecvd=!0),h.a.hacking_skill>=25&&(h.a.firstScriptAvailable=!0))),window.location.href.toLowerCase().includes("bitburner-beta")?Object(b.dialogBoxCreate)("You are playing on the beta environment! This branch of the game features the latest developments in the game. This version may be unstable.
Please report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) or the Bitburner subreddit (reddit.com/r/bitburner).
"+r.a.LatestUpdate):n!=r.a.Version&&I()}catch(e){I()}else I();if(2==h.a.bitNodeN&&h.a.inGang()&&t.hasOwnProperty("AllGangsSave"))try{Object(c.e)(t.AllGangsSave)}catch(e){console.log("ERROR: Failed to parse AllGangsSave: "+e)}return!0}function I(){Object(b.dialogBoxCreate)("New update!
Please report any bugs/issues through the github repository or the Bitburner subreddit (reddit.com/r/bitburner).
"+r.a.LatestUpdate)}function P(t){var n=t.target.files[0];if(n){var _=new FileReader;_.onload=function(t){var n=t.target.result;!function(t,n){var _=null,T=null;try{var x=decodeURIComponent(escape(atob(n)));if(_=new R,_=JSON.parse(x,k.Reviver),(T=JSON.parse(_.PlayerSave,k.Reviver)).money=new S.a(T.money),T.total_money=new S.a(T.total_money),T.lifetime_money=new S.a(T.lifetime_money),JSON.parse(_.AllServersSave,k.Reviver),JSON.parse(_.CompaniesSave,k.Reviver),JSON.parse(_.FactionsSave,k.Reviver),JSON.parse(_.SpecialServerIpsSave,k.Reviver),_.hasOwnProperty("AliasesSave"))try{JSON.parse(_.AliasesSave,k.Reviver)}catch(e){console.log("Parsing Aliases save failed: "+e)}if(_.hasOwnProperty("GlobalAliases"))try{JSON.parse(_.AliasesSave,k.Reviver)}catch(e){console.log("Parsing Global Aliases save failed: "+e)}if(_.hasOwnProperty("MessagesSave"))try{JSON.parse(_.MessagesSave,k.Reviver)}catch(e){console.log("Parsing Messages save failed: "+e),Object(d.d)()}else Object(d.d)();if(t.hasOwnProperty("StockMarketSave"))try{JSON.parse(_.StockMarketSave,k.Reviver)}catch(e){console.log("Parsing StockMarket save failed: "+e)}if(_.hasOwnProperty("VersionSave"))try{((P=JSON.parse(_.VersionSave,k.Reviver)).startsWith("0.27.")||P.startsWith("0.28."))&&(null!=T.bitNodeN&&0!=T.bitNodeN||(T.bitNodeN=1),null==T.sourceFiles&&(T.sourceFiles=[])),r.a.Version}catch(e){console.log("Parsing Version save failed: "+e)}if(2==T.bitNodeN&&T.inGang()&&_.hasOwnProperty("AllGangsSave"))try{Object(c.e)(_.AllGangsSave)}catch(e){console.log("ERROR: Failed to parse AllGangsSave: "+e)}}catch(e){return Object(b.dialogBoxCreate)("Error importing game: "+e.toString()),!1}if(n=decodeURIComponent(escape(atob(n))),t=JSON.parse(n,k.Reviver),Object(h.b)(t.PlayerSave),Object(m.g)(t.AllServersSave),Object(i.i)(t.CompaniesSave),Object(s.i)(t.FactionsSave),Object(y.d)(t.SpecialServerIpsSave),t.hasOwnProperty("AliasesSave"))try{Object(a.c)(t.AliasesSave)}catch(e){Object(a.c)("")}else Object(a.c)("");if(t.hasOwnProperty("GlobalAliasesSave"))try{Object(a.d)(t.GlobalAliasesSave)}catch(e){Object(a.d)("")}else Object(a.d)("");if(t.hasOwnProperty("MessagesSave"))try{Object(d.e)(t.MessagesSave)}catch(e){Object(d.d)()}else Object(d.d)();if(t.hasOwnProperty("StockMarketSave"))try{Object(f.j)(t.StockMarketSave)}catch(e){Object(f.j)("")}else Object(f.j)("");if(t.hasOwnProperty("SettingsSave"))try{Object(g.c)(t.SettingsSave)}catch(e){Object(g.b)()}else Object(g.b)();if(t.hasOwnProperty("FconfSettingsSave"))try{Object(l.c)(t.FconfSettingsSave)}catch(e){console.log("ERROR: Failed to load .fconf settings when importing")}if(t.hasOwnProperty("VersionSave"))try{var P=JSON.parse(t.VersionSave,k.Reviver);null!=h.a.bitNodeN&&0!=h.a.bitNodeN||h.a.setBitNodeNumber(1),(P.startsWith("0.27.")||P.startsWith("0.28."))&&(console.log("Evaluating changes needed for version compatibility"),h.a.augmentations.length>0||h.a.queuedAugmentations.length>0||h.a.sourceFiles.length>0?(h.a.firstFacInvRecvd=!0,h.a.firstAugPurchased=!0,h.a.firstJobRecvd=!0,h.a.firstTimeTraveled=!0,h.a.firstProgramAvailable=!0):((h.a.factions.length>0||h.a.factionInvitations.length>0)&&(h.a.firstFacInvRecvd=!0),""===h.a.companyName&&""===h.a.companyPosition||(h.a.firstJobRecvd=!0),h.a.hacking_skill>=25&&(h.a.firstScriptAvailable=!0))),P!=r.a.Version&&I()}catch(e){I()}else I();if(2==h.a.bitNodeN&&h.a.inGang()&&t.hasOwnProperty("AllGangsSave"))try{Object(c.e)(t.AllGangsSave)}catch(e){console.log("ERROR: Failed to parse AllGangsSave: "+e)}var N="import-game-restart-game-notice",A=Object(E.createElement)("p",{innerText:"Imported game! I would suggest saving the game and then reloading the page to make sure everything runs smoothly"}),M=Object(E.createElement)("a",{class:"a-link-button",float:"right",padding:"6px",innerText:"Got it!",clickListener:()=>{Object(w.removeElementById)(N)}});Object(O.createPopup)(N,[A,M]),Object(v.a)(),console.log("Importing game"),o.Engine.setDisplayElements(),o.Engine.init(),i.d.init(),o.Engine._lastUpdate=(new Date).getTime();var L=h.a.lastUpdate,B=Math.floor((o.Engine._lastUpdate-L)/o.Engine._idleSpeed),j=Object(p.f)();h.a.isWorking&&(console.log("work() called in load() for "+B*o.Engine._idleSpeed+" milliseconds"),h.a.workType==r.a.WorkTypeFaction?h.a.workForFaction(B):h.a.workType==r.a.WorkTypeCreateProgram?h.a.createProgramWork(B):h.a.workType==r.a.WorkTypeStudyClass?h.a.takeClass(B):h.a.workType==r.a.WorkTypeCrime?h.a.commitCrime(B):h.a.workType==r.a.WorkTypeCompanyPartTime?h.a.workPartTime(B):h.a.work(B));var D=Object(u.d)(B);Object(s.j)(B);var F=B*o.Engine._idleSpeed;null==h.a.totalPlaytime&&(h.a.totalPlaytime=0),null==h.a.playtimeSinceLastAug&&(h.a.playtimeSinceLastAug=0),null==h.a.playtimeSinceLastBitnode&&(h.a.playtimeSinceLastBitnode=0),h.a.totalPlaytime+=F,h.a.playtimeSinceLastAug+=F,h.a.playtimeSinceLastBitnode+=F,h.a.reapplyAllAugmentations(),e("#terminal tr:not(:last)").remove(),h.a.lastUpdate=o.Engine._lastUpdate,o.Engine.start(),Object(b.dialogBoxCreate)("While you were offline, your scripts generated $"+Object(C.formatNumber)(j,2)+" and your Hacknet Nodes generated $"+Object(C.formatNumber)(D,2))}(T,n)},_.readAsText(n)}else Object(b.dialogBoxCreate)("Invalid file selected")}R.prototype.saveGame=function(e){this.PlayerSave=JSON.stringify(h.a);var t=JSON.parse(JSON.stringify(m.b),k.Reviver);for(var n in t){var u=t[n];if(null!=u)for(var p=0;p(Object(a.d)(e,e.server),!1)),document.getElementById("log-box-kill-script").style.display="inline-block",s=!0,document.getElementById("log-box-container").style.display="block",document.getElementById("log-box-text-header").innerHTML=l.filename+" "+Object(r.arrayToString)(l.args)+":
",l.logUpd=!0,u()}function u(){var e=document.getElementById("log-box-text");if(l&&s&&e&&l.logUpd){e.innerHTML="";for(var t=0;t";l.logUpd=!1}}}).call(this,n(53))},function(e,t,n){"use strict";n.d(t,"b",function(){return c}),n.d(t,"c",function(){return u}),n.d(t,"a",function(){return h});var a=n(21),i=n(0),r=n(19),o=n(25),s=n(66),l=n(2);function c(){if(r.a.hasOwnProperty("Darkweb Server")){var e=r.a["Darkweb Server"];if(!Object(s.isValidIPAddress)(e))return;e==i.a.getCurrentServer().ip&&Object(o.c)("You are now connected to the dark web. From the dark web you can purchase illegal items. Use the 'buy -l' command to display a list of all the items you can buy. Use 'buy [item-name] to purchase an item")}}function u(e){if(0!=e.length)switch(e[0]){case"buy":if(2!=e.length)return Object(o.c)("Incorrect number of arguments. Usage: "),Object(o.c)("buy -l"),void Object(o.c)("buy [item name]");var t=e[1];"-l"==t?function(){for(const e in h){const t=h[e];Object(o.c)(t.toString())}}():function(e){e=e.toLowerCase();let t=null;for(const n in h){const a=h[n];a.program.toLowerCase()==e&&(t=a)}if(null===t)return void Object(o.c)("Unrecognized item: "+e);if(i.a.hasProgram(t.program))return void Object(o.c)("You already have the "+t.program+" program");if(i.a.money.lt(t.price))return void Object(o.c)("Not enough money to purchase "+t.program);i.a.loseMoney(t.price),i.a.getHomeComputer().programs.push(t.program),Object(o.c)("You have purchased the "+t.program+" program. The new program can be found on your home computer.")}(t);break;default:Object(o.c)("Command not found")}}function d(e,t,n){this.program=e,this.price=t,this.description=n}d.prototype.toString=function(){return[this.program,"$"+Object(l.formatNumber)(this.price),this.description].join(" - ")};const h={BruteSSHProgram:new d(a.a.BruteSSHProgram.name,5e5,"Opens up SSH Ports"),FTPCrackProgram:new d(a.a.FTPCrackProgram.name,15e5,"Opens up FTP Ports"),RelaySMTPProgram:new d(a.a.RelaySMTPProgram.name,5e6,"Opens up SMTP Ports"),HTTPWormProgram:new d(a.a.HTTPWormProgram.name,3e7,"Opens up HTTP Ports"),SQLInjectProgram:new d(a.a.SQLInjectProgram.name,25e7,"Opens up SQL Ports"),DeepscanV1:new d(a.a.DeepscanV1.name,5e5,"Enables 'scan-analyze' with a depth up to 5"),DeepscanV2:new d(a.a.DeepscanV2.name,25e6,"Enables 'scan-analyze' with a depth up to 10"),AutolinkProgram:new d(a.a.AutoLink.name,1e6,"Enables direct connect via 'scan-analyze'")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.roundToTwo=function(e){return+`${Math.round(parseFloat(`${e}e+2`))}e-2`}},function(e,t,n){"use strict";n.d(t,"a",function(){return s}),n.d(t,"b",function(){return r});var a=n(8);function i(e,t,n){this.title=e,this.fn=t,this.txt=n}function r(e){var t=o[e];if(null!=t){var n=""+t.title+"
"+t.txt;Object(a.dialogBoxCreate)(n)}}let o={};function s(){var e,t,n;e="The Beginner's Guide to Hacking",n="When starting out, hacking is the most profitable way to earn money and progress. This is a brief collection of tips/pointers on how to make the most out of your hacking scripts.
-hack() and grow() both work by percentages. hack() steals a certain percentage of the money on a server, and grow() increases the amount of money on a server by some percentage (multiplicatively)
-Because hack() and grow() work by percentages, they are more effective if the target server has a high amount of money. Therefore, you should try to increase the amount of money on a server (using grow()) to a certain amount before hacking it. Two import Netscript functions for this are getServerMoneyAvailable() and getServerMaxMoney()
-Keep security level low. Security level affects everything when hacking. Two important Netscript functions for this are getServerSecurityLevel() and getServerMinSecurityLevel()
-Purchase additional servers by visiting 'Alpha Enterprises' in the city. They are relatively cheap and give you valuable RAM to run more scripts early in the game
-Prioritize upgrading the RAM on your home computer. This can also be done at 'Alpha Enterprises'
-Many low level servers have free RAM. You can use this RAM to run your scripts. Use the scp Terminal or Netscript command to copy your scripts onto these servers and then run them.",o[t="hackers-starting-handbook.lit"]=new i(e,t,n),e="The Complete Handbook for Creating a Successful Corporation",n="Getting Started with Corporations
To get started, visit the City Hall in Sector-12 in order to create a Corporation. This requires $150b of your own money, but this $150b will get put into your Corporation's funds. After creating your Corporation, you will see it listed as one of the locations in the city. Click on your Corporation in order to manage it.
Your Corporation can have many different divisions, each in a different Industry. There are many different types of Industries, each with different properties. To create your first division, click the 'Expand into new Industry' button at the top of the management UI. The Agriculture and Software industries are recommended for your first division.
The first thing you'll need to do is hire some employees. Employees can be assigned to five different positions. Each position has a different effect on various aspects of your Corporation. It is recommended to have at least one employee at each position.
Each industry uses some combination of Materials in order to produce other Materials and/or create Products. Specific information about this is displayed in each of your divisions' UI.
Products are special, industry-specific objects. They are different than Materials because you must manually choose to develop them, and you can choose to develop any number of Products. Developing a Product takes time, but a Product typically generates significantly more revenue than any Material. Not all industries allow you to create Products. To create a Product, look for a button in the top-left panel of the division UI (e.g. For the Software Industry, the button says 'Develop Software').
To get your supply chain system started, purchase the Materials that your industry needs to produce other Materials/Products. This can be done by clicking the 'Buy' button next to the corresponding Material(s). After you have the required Materials, you will immediately start production. The amount of Materials/Products you produce is based on a variety of factors, one of which is your employees and their productivity.
Once you start producing Materials/Products, you can sell them in order to start earning revenue. This can be done by clicking the 'Sell' button next to the corresponding Material or Product. The amount of Material/Product you sell is dependent on a wide variety of different factors.
These are the basics of getting your Corporation up and running! Now, you can start purchasing upgrades to improve your bottom line. If you need money, consider looking for seed investors, who will give you money in exchange for stock shares. Otherwise, once you feel you are ready, take your Corporation public! Once your Corporation goes public, you can no longer find investors. Instead, your Corporation will be publicly traded and its stock price will change based on how well it's performing financially. You can then sell your stock shares in order to make money.
Tips/Pointers
-Purchasing Hardware, Robots, AI Cores, and Real Estate can potentially increase your production. The effects of these depend on what industry you are in.
-In order to optimize your production, you will need a good balance of Operators, Managers, and Engineers
-Different employees excel in different jobs. For example, the highly intelligent employees will probably do best if they are assigned to do Engineering work or Research & Development.
-If your employees have low morale, energy, or happiness, their production will greatly suffer.
-Tech is important, but don't neglect sales! Having several Businessmen can boost your sales and your bottom line.
-Don't forget to advertise your company. You won't have any business if nobody knows you.
-Having company awareness is great, but what's really important is your company's popularity. Try to keep your popularity as high as possible to see the biggest benefit for your sales
-Remember, you need to spend money to make money!
-Corporations do not reset when installing Augmentations, but they do reset when destroying a BitNode",o[t="corporation-management-handbook.lit"]=new i(e,t,n),e="A Brief History of Synthoids",n="Synthetic androids, or Synthoids for short, are genetically engineered robots and, short of Augmentations, are composed entirely of organic substances. For this reason, Synthoids are virtually identical to humans in form, composition, and appearance.
Synthoids were first designed and manufactured by OmniTek Incorporated sometime around the middle of the century. Their original purpose was to be used for manual labor and as emergency responders for disasters. As such, they were initially programmed only for their specific tasks. Each iteration that followed improved upon the intelligence and capabilities of the Synthoids. By the 6th iteration, called MK-VI, the Synthoids were so smart and capable enough of making their own decisions that many argued OmniTek had created the first sentient AI. These MK-VI Synthoids were produced in mass quantities (estimates up to 50 billion) with the hopes of increasing society's productivity and bolstering the global economy. Stemming from humanity's desire for technological advancement, optimism and excitement about the future had never been higher.
All of that excitement and optimism quickly turned to fear, panic, and dread in 2070, when a terrorist group called Ascendis Totalis hacked into OmniTek and uploaded a rogue AI into severeal of their Synthoid manufacturing facilities. This hack went undetected and for months OmniTek unknowingly churned out legions of Synthoids embedded with this rogue AI. Then, on December 24th, 2070, Omnica activated dormant protocols in the rogue AI, causing all of the infected Synthoids to immediately launch a military campaign to seek and destroy all of humanity.
What ensued was the deadlist conflict in human history. This crisis, now commonly known as the Synthoid Uprising, resulted in almost ten billion deaths over the course of a year. Despite the nations of the world banding together to combat the threat, the MK-VI Synthoids were simply stronger, faster, more intelligent, and more adaptable than humans, outsmarting them at every turn.
It wasn't until the sacrifice of an elite international military taskforce, called the Bladeburners, that humanity was finally able to defeat the Synthoids. The Bladeburners' final act was a suicide bombing mission that destroyed a large portion of the MK-VI Synthoids, including many of its leaders. In the following weeks militaries from around the world were able to round up and shut down the remaining rogue MK-VI Synthoids, ending the Synthoid Uprising.
In the aftermath of the bloodshed, the Synthoid Accords were drawn up. These Accords banned OmniTek Incorporated from manufacturing any Synthoids beyond the MK-III series. They also banned any other corporation from constructing androids with advanced, near-sentient AI. MK-VI Synthoids that did not have the rogue Ascendis Totalis AI were allowed to continue their existence, but they were stripped of all rights and protections as they were not considered humans. They were also banned from doing anything that may pose a global security threat, such as working for any military/defense organization or conducting any bioengineering, computing, or robotics related research.
Unfortunately, many believe that not all of the rogue MK-VI Synthoids from the Uprising were found and destroyed, and that many of them are blending in as normal humans in society today. In response, many nations have created Bladeburner divisions, special military branches that are tasked with investigating and dealing with any Synthoid threads.
To this day, tensions still exist between the remaining Synthoids and humans as a result of the Uprising.
Nobody knows what happened to the terrorist group Ascendis Totalis.",o[t="history-of-synthoids.lit"]=new i(e,t,n),e="A Green Tomorrow",n="Starting a few decades ago, there was a massive global movement towards the generation of renewable energy in an effort to combat global warming and climate change. The shift towards renewable energy was a big success, or so it seemed. In 2045 a staggering 80% of the world's energy came from non-renewable fossil fuels. Now, about three decades later, that number is down to only 15%. Most of the world's energy now comes from nuclear power and renwable sources such as solar and geothermal. Unfortunately, these efforts were not the huge success that they seem to be.
Since 2045 primary energy use has soared almost tenfold. This was mainly due to growing urban populations and the rise of increasingly advanced (and power-hungry) technology that has become ubiquitous in our lives. So, despite the fact that the percentage of our energy that comes from fossil fuels has drastically decreased, the total amount of energy we are producing from fossil fuels has actually increased.
The grim effects of our species' irresponsible use of energy and neglect of our mother world have become increasingly apparent. Last year a temperature of 190F was recorded in the Death Valley desert, which is over 50% higher than the highest recorded temperature at the beginning of the century. In the last two decades numerous major cities such as Manhattan, Boston, and Los Angeles have been partially or fully submerged by rising sea levels. In the present day, over 75% of the world's agriculture is done in climate-controlled vertical farms, as most traditional farmland has become unusable due to severe climate conditions.
Despite all of this, the greedy and corrupt corporations that rule the world have done nothing to address these problems that threaten our species. And so it's up to us, the common people. Each and every one of us can make a difference by doing what these corporations won't: taking responsibility. If we don't, pretty soon there won't be an Earth left to save. We are the last hope for a green tomorrow.",o[t="A-Green-Tomorrow.lit"]=new i(e,t,n),e="Alpha and Omega",n="Then we saw a new heaven and a new earth, for our first heaven and earth had gone away, and our sea was no more. And we saw a new holy city, new Aeria, coming down out of this new heaven, prepared as a bride adorned for her husband. And we heard a loud voice saying, 'Behold, the new dwelling place of the Gods. We will dwell with them, and they will be our people, and we will be with them as their Gods. We will wipe away every tear from their eyes, and death shall be no more, neither shall there be mourning, nor crying, nor pain anymore, for the former things have passed away.'
And once were were seated on the throne we said 'Behold, I am making all things new.' Also we said, 'Write this down, for these words are trustworthy and true.' And we said to you, 'It is done! I am the Alpha and the Omega, the beginning and the end. To the thirsty I will give from the spring of the water of life without payment. The one who conquers will have this heritage, and we will be his God and he will be our son. But as for the cowardly, the faithless, the detestable, as for murderers, the sexually immoral, sorcerers, idolaters, and all liars, their portion will be in the lake that burns with fire and sulfur, for it is the second true death.'",o[t="alpha-omega.lit"]=new i(e,t,n),e="Are We Living in a Computer Simulation?",n="The idea that we are living in a virtual world is not new. It's a trope that has been explored constantly in literature and pop culture. However, it is also a legitimate scientific hypothesis that many notable physicists and philosophers have debated for years.
Proponents for this simulated reality theory often point to how advanced our technology has become, as well as the incredibly fast pace at which it has advanced over the past decades. The amount of computing power available to us has increased over 100-fold since 2060 due to the development of nanoprocessors and quantum computers. Artifical Intelligence has advanced to the point where our entire lives are controlled by robots and machines that handle our day-to-day activities such as autonomous transportation and scheduling. If we consider the pace at which this technology has advanced and assume that these developments continue, it's reasonable to assume that at some point in the future our technology would be advanced enough that we could create simulations that are indistinguishable from reality. However, if this is a reasonable outcome of continued technological advancement, then it is very likely that such a scenario has already happened.
Statistically speaking, somewhere out there in the infinite universe there is an advanced, intelligent species that already has such technology. Who's to say that they haven't already created such a virtual reality: our own?",o[t="simulated-reality.lit"]=new i(e,t,n),e="Beyond Man",n="Humanity entered a 'transhuman' era a long time ago. And despite the protests and criticisms of many who cried out against human augmentation at the time, the transhuman movement continued and prospered. Proponents of the movement ignored the critics, arguing that it was in our inherent nature to better ourselves. To improve. To be more than we were. They claimed that not doing so would be to go against every living organism's biological purpose: evolution and survival of the fittest.
And here we are today, with technology that is advanced enough to augment humans to a state that can only be described as posthuman. But what do we have to show for it when this augmentation technology is only available to the so-called 'elite'? Are we really better off than before when only 5% of the world's population has access to this technology? When the powerful corporations and organizations of the world keep it all to themselves, have we really evolved?
Augmentation technology has only further increased the divide between the rich and the poor, between the powerful and the oppressed. We have not become 'more than human'. We have not evolved from nature's original design. We are still the greedy, corrupted, and evil men that we always were.",o[t="beyond-man.lit"]=new i(e,t,n),e="Brighter than the Sun",n="When people think about the corporations that dominate the East, they typically think of KuaiGong International, which holds a complete monopoly for manufacturing and commerce in Asia, or Global Pharmaceuticals, the world's largest drug company, or OmniTek Incorporated, the global leader in intelligent and autonomous robots. But there's one company that has seen a rapid rise in the last year and is poised to dominate not only the East, but the entire world: TaiYang Digital.
TaiYang Digital is a Chinese internet-technology corporation that provides services such as online advertising, search, gaming, media, entertainment, and cloud computing/storage. Its name TaiYang comes from the Chinese word for 'sun'. In Chinese culture, the sun is a 'yang' symbol associated with life, heat, masculinity, and heaven.
The company was founded less than 5 years ago and is already the third highest valued company in all of Asia. In 2076 it generated a total revenue of over 10 trillion yuan. It's services are used daily by over a billion people worldwide.
TaiYang Digital's meteoric rise is extremely surprising in modern society. This sort of growth is something you'd commonly see in the first half of the century, especially for tech companies. However in the last two decades the number of corporations has significantly declined as the largest entities quickly took over the economy. Corporations such as ECorp, MegaCorp, and KuaiGong have established such strong monopolies in their market sectors that they have effectively killed off all of the smaller and new corporations that have tried to start up over the years. This is what makes the rise of TaiYang Digital so impressive. And if TaiYang continues down this path, then they have a bright future ahead of them.",o[t="brighter-than-the-sun.lit"]=new i(e,t,n),e="Democracy is Dead: The Fall of an Empire",n="They rose from the shadows in the street
From the places where the oppressed meet
Their cries echoed loudly through the air
As they once did in Tiananmen Square
Loudness in the silence, Darkness in the light
They came forth with power and might
Once the beacon of democracy, America was first
Its pillars of society destroyed and dispersed
Soon the cries rose everywhere, with revolt and riot
Until one day, finally, all was quiet
From the ashes rose a new order, corporatocracy was its name
Rome, Mongol, Byzantine, all of history is just the same
For man will never change in a fundamental way
And now democracy is dead, in the USA",o[t="democracy-is-dead.lit"]=new i(e,t,n),e="Figures Show Rising Crime Rates in Sector-12",n="A recent study by analytics company Wilson Inc. shows a significant rise in criminal activity in Sector-12. Perhaps the most alarming part of the statistic is that most of the rise is in violent crime such as homicide and assault. According to the study, the city saw a total of 21,406 reported homicides in 2076, which is over a 20% increase compared to 2075.
CIA director David Glarow says its too early to know whether these figures indicate the beginning of a sustained increase in crime rates, or whether the year was just an unfortunate outlier. He states that many intelligence and law enforcement agents have noticed an increase in organized crime activites, and believes that these figures may be the result of an uprising from criminal organizations such as The Syndicate or the Slum Snakes.",o[t="sector-12-crime.lit"]=new i(e,t,n),e="Man and the Machine",n="In 2005 Ray Kurzweil popularized his theory of the Singularity. He predicted that the rate of technological advancement would continue to accelerate faster and faster until one day machines would be become infinitely more intelligent than humans. This point, called the Singularity, would result in a drastic transformation of the world as we know it. He predicted that the Singularity would arrive by 2045. And yet here we are, more than three decades later, where most would agree that we have not yet reached a point where computers and machines are vastly more intelligent than we are. So what gives?
The answer is that we have reached the Singularity, just not in the way we expected. The artifical superintelligence that was predicted by Kurzweil and others exists in the world today - in the form of Augmentations. Yes, those Augmentations that the rich and powerful keep to themselves enable humans to become superintelligent beings. The Singularity did not lead to a world where our machines are infinitely more intelligent than us, it led to a world where man and machine can merge to become something greater. Most of the world just doesn't know it yet.",o[t="man-and-machine.lit"]=new i(e,t,n),e="Secret Societies",n="The idea of secret societies has long intrigued the general public by inspiring curiosity, fascination, and distrust. People have long wondered about who these secret society members are and what they do, with the most radical of conspiracy theorists claiming that they control everything in the entire world. And while the world may never know for sure, it is likely that many secret societies do actually exist, even today.
However, the secret societies of the modern world are nothing like those that (supposedly) existed decades and centuries ago. The Freemasons, Knights Templar, and Illuminati, while they may have been around at the turn of the 21st century, almost assuredly do not exist today. The dominance of the Web in our everyday lives and the fact that so much of the world is now digital has given rise to a new breed of secret societies: Internet-based ones.
Commonly called 'hacker groups', Internet-based secret societies have become well-known in today's world. Some of these, such as The Black Hand, are black hat groups that claim they are trying to help the oppressed by attacking the elite and powerful. Others, such as NiteSec, are hacktivist groups that try to push political and social agendas. Perhaps the most intriguing hacker group is the mysterious Bitrunners, whose purpose still remains unknown.",o[t="secret-societies.lit"]=new i(e,t,n),e="Space: The Failed Frontier",n="Humans have long dreamed about spaceflight. With enduring interest, we were driven to explore the unknown and discover new worlds. We dreamed about conquering the stars. And in our quest, we pushed the boundaries of our scientific limits, and then pushed further. Space exploration lead to the development of many important technologies and new industries.
But sometime in the middle of the 21st century, all of that changed. Humanity lost its ambitions and aspirations of exploring the cosmos. The once-large funding for agencies like NASA and the European Space Agency gradually whittled away until their eventual disbanding in the 2060's. Not even militaries are fielding flights into space nowadays. The only remnants of the once great mission for cosmic conquest are the countless satellites in near-earth orbit, used for communications, espionage, and other corporate interests.
And as we continue to look at the state of space technology, it becomes more and more apparent that we will never return to that golden age of space exploration, that age where everyone dreamed of going beyond earth for the sake of discovery.",o[t="the-failed-frontier.lit"]=new i(e,t,n),e="Coded Intelligence: Myth or Reality?",n="Tremendous progress has been made in the field of Artificial Intelligence over the past few decades. Our autonomous vehicles and transporation systems. The electronic personal assistants that control our everyday lives. Medical, service, and manufacturing robots. All of these are examples of how far AI has come and how much it has improved our daily lives. However, the question still remains of whether AI will ever be advanced enough to re-create human intelligence.
We've certainly come close to artificial intelligence that is similar to humans. For example OmniTek Incorporated's CompanionBot, a robot meant to act as a comforting friend for lonely and grieving people, is eerily human-like in its appearance, speech, mannerisms, and even movement. However its artificial intelligence isn't the same as that of humans. Not yet. It doesn't have sentience or self-awareness or consciousness.
Many neuroscientists believe that we won't ever reach the point of creating artificial human intelligence. 'At the end of the the day, AI comes down to 1's and 0's, while the human brain does not. We'll never see AI that is identical to that of humans.'",o[t="coded-intelligence.lit"]=new i(e,t,n),e="Synthetic Muscles",n="Initial versions of synthetic muscles weren't made of anything organic but were actually crude devices made to mimic human muscle function. Some of the early iterations were actually made of common materials such as fishing lines and sewing threads due to their high strength for a cheap cost.
As technology progressed, however, advances in biomedical engineering paved the way for a new method of creating synthetic muscles. Instead of creating something that closely imitated the functionality of human muscle, scientists discovered a way of forcing the human body itself to augment its own muscle tissue using both synthetic and organic materials. This is typically done using gene therapy or chemical injections.",o[t="synthetic-muscles.lit"]=new i(e,t,n),e="Tensions rise in global tech race",n="Have we entered a new Cold War? Is WWIII just beyond the horizon?
After rumors came out that OmniTek Incorporated had begun developing advanced robotic supersoldiers, geopolitical tensions quickly flared between the USA, Russia, and several Asian superpowers. In a rare show of cooperation between corporations, MegaCorp and ECorp have reportedly launched hundreds of new surveillance and espionage satellites. Defense contractors such as DeltaOne and AeroCorp have been working with the CIA and NSA to prepare for conflict. Meanwhile, the rest of the world sits in earnest hoping that it never reaches full-scale war. With today's technology and firepower, a World War would assuredly mean the end of human civilization.",o[t="tensions-in-tech-race.lit"]=new i(e,t,n),e="The Cost of Immortality",n="Evolution and advances in medical and augmentation technology has lead to drastic improvements in human mortality rates. Recent figures show that the life expectancy for humans that live in a first-world country is about 130 years of age, almost double of what it was at the turn of the century. However, this increase in average lifespan has had some significant effects on society and culture.
Due to longer lifespans and a better quality of life, many adults are holding off on having kids until much later. As a result, the percentage of youth in first-world countries has been decreasing, while the number of senior citizens is significantly increasing.
Perhaps the most alarming result of all of this is the rapidly shrinking workforce. Despite the increase in life expectancy, the typical retirement age for workers in America has remained about the same, meaning a larger and larger percentage of people in America are retirees. Furthermore, many young adults are holding off on joining the workforce because they feel that they have plenty of time left in their lives for employment, and want to 'enjoy life while they're young.' For most industries, this shrinking workforce is not a major issue as most things are handled by robots anyways. However, there are still several key industries such as engineering and education that have not been automated, and these remain in danger to this cultural phenomenon.",o[t="cost-of-immortality.lit"]=new i(e,t,n),e="The Hidden World",n="WAKE UP SHEEPLE
THE GOVERNMENT DOES NOT EXIST. CORPORATIONS DO NOT RUN SOCIETY
THE ILLUMINATI ARE THE SECRET RULERS OF THE WORLD!
Yes, the Illuminati of legends. The ancient secret society that controls the entire world from the shadows with their invisible hand. The group of the rich and wealthy that have penetrated every major government, financial agency, and corporation in the last three hundred years.
OPEN YOUR EYES
It was the Illuminati that brought an end to democracy in the world. They are the driving force behind everything that happens.
THEY ARE ALL AROUND YOU
After destabilizing the world's governments, they are now entering the final stage of their master plan. They will secretly initiate global crises. Terrorism. Pandemics. World War. And out of the chaos that ensues they will build their New World Order.",o[t="the-hidden-world.lit"]=new i(e,t,n),e="The New God",n="Everyone has that moment in their life where they wonder about the bigger questions
What's the point of all of this? What is my purpose?
Some people dare to think even bigger
What will be the fate of the human race?
We live in an era vastly different from that of even 15 or 20 years ago. We have gone where no man has gone before. We have stripped ourselves of the tyranny of flesh.
The Singularity is here. The merging of man and machine. This is where humanity evolves into something greater. This is our future
Embrace it, and you will obey a new god. The God in the Machine",o[t="the-new-god.lit"]=new i(e,t,n),e="The New Triads",n="The Triads were an ancient transnational crime syndicate based in China, Hong Kong, and other Asian territories. They were often considered one of the first and biggest criminal secret societies. While most of the branches of the Triads have been destroyed over the past few decades, the crime faction has spawned and inspired a number of other Asian crime organizations over the past few years. The most notable of these is the Tetrads.
It is widely believed that the Tetrads are a rogue group that splintered off from the Triads sometime in the mid 21st century. The founders of the Tetrads, all of whom were ex-Triad members, believed that the Triads were losing their purpose and direction. The Tetrads started off as a small group that mainly engaged in fraud and extortion. They were largely unknown until just a few years ago when they took over the illegal drug trade in all of the major Asian cities. They quickly became the most powerful crime syndicate in the continent.
Not much else is known about the Tetrads, or about the efforts the Asian governments and corporations are making to take down this large new crime organization. Many believe that the Tetrads have infiltrated the governments and powerful corporations in Asia, which has helped faciliate their recent rapid rise.",o[t="new-triads.lit"]=new i(e,t,n),e="The Secret War",n="",o[t="the-secret-war.lit"]=new i(e,t,n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createProgressBarText=function(e){const t=Object.assign({},{progress:0,totalTicks:20},e),n=Math.floor(t.progress/(1/t.totalTicks)),a=t.totalTicks-n;return`[${"|".repeat(n+1)}${"-".repeat(a+1)}]`}},function(e,t,n){"use strict";(function(e){n.d(t,"b",function(){return r}),n.d(t,"a",function(){return i}),e(document).click(function(t){a&&null==e(t.target).closest(".game-options-box").get(0)&&i()});var a=!1;function i(){a=!1,document.getElementById("game-options-container").style.display="none"}function r(){document.getElementById("game-options-container").style.display="block",setTimeout(function(){a=!0},500)}document.addEventListener("DOMContentLoaded",function(){document.getElementById("options-menu-link").addEventListener("click",function(){return r(),!1}),document.getElementById("game-options-close-button").addEventListener("click",function(){return i(),!1})},!1)}).call(this,n(53))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isValidIPAddress=function(e){const t="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",n=`^${t}.${t}.${t}.${t}$`;return new RegExp(n).test(e)}},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return T}),n.d(t,"b",function(){return R});n(51);var a=n(18),i=n(16),r=n(28),o=n(74),s=n(11),l=n(21),c=n(6),u=n(12),d=n(41),h=(n(4),n(33)),p=n(34),m=n(23),g=n(0),y=n(9),f=n(19),b=n(24),v=n(25),_=n(26),k=n(8),E=n(20),O=n(3),C=n(36),w=n(42);n(15);let S=25e7;function T(){Object(i.c)(),g.a.prestigeAugmentation(),Object(m.e)();var t=g.a.getHomeComputer();for(var n in Object(y.h)(),Object(f.e)(),Object(y.a)(t),Object(y.i)(t),Object(a.f)(a.b.Neurolink)&&a.c[a.b.Neurolink].owned&&(t.programs.push(l.a.FTPCrackProgram.name),t.programs.push(l.a.RelaySMTPProgram.name)),Object(a.f)(a.b.CashRoot)&&a.c[a.b.CashRoot].owned&&(g.a.setMoney(new _.a(1e6)),t.programs.push(l.a.BruteSSHProgram.name)),Object(y.f)(),document.getElementById("location-purchase-tor").setAttribute("class","a-link-button"),s.a)s.a.hasOwnProperty(n)&&s.a[n].gainFavor();for(var n in u.b)u.b.hasOwnProperty(n)&&u.b[n].gainFavor();c.Engine._actionInProgress&&(c.Engine._actionInProgress=!1,v.b.finishAction(!0)),Object(u.f)(),Object(a.h)(),g.a.reapplyAllSourceFiles(),Object(s.h)(),e("#terminal tr:not(:last)").remove(),Object(v.d)(),Object(h.d)(),g.a.hasWseAccount&&(Object(b.g)(),Object(b.i)()),Object(b.m)(!1);for(var o=document.getElementById("stock-market-list");o.firstChild;)o.removeChild(o.firstChild);if(2==g.a.bitNodeN&&g.a.inGang()){var d=u.b[g.a.gang.facName];d instanceof u.a&&Object(u.h)(d)}if(g.a.bladeburner instanceof r.a&&g.a.bladeburner.prestige(),8===g.a.bitNodeN&&(g.a.money=new _.a(S)),(8===g.a.bitNodeN||p.f)&&(g.a.hasWseAccount=!0,g.a.hasTixApiAccess=!0),document.getElementById("mainmenu-container").style.visibility="visible",v.b.resetTerminalInput(),c.Engine.loadTerminalContent(),Object(a.f)(a.b.TheRedPill)&&a.c[a.b.TheRedPill].owned){var k=y.b[f.a[f.b.WorldDaemon]],E=y.b[f.a[f.b.DaedalusServer]];k&&E&&(k.serversOnNetwork.push(E.ip),E.serversOnNetwork.push(k.ip))}}function R(){Object(i.c)(),g.a.prestigeSourceFile(),Object(m.e)();var t=g.a.getHomeComputer();Object(y.h)(),Object(f.e)(),Object(y.a)(t),Object(y.i)(t),Object(y.f)();for(var n=!1,r=0;r(Object(E.removeElementById)(e),!1)});Object(C.createPopup)(e,[t,n,a])}).catch(function(e){Object(w.a)(e)})}8===g.a.bitNodeN&&(g.a.money=new _.a(S)),(8===g.a.bitNodeN||p.f)&&(g.a.hasWseAccount=!0,g.a.hasTixApiAccess=!0),g.a.gainIntelligenceExp(5)}}).call(this,n(53))},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareArrays=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n=t.length)return Promise.resolve(!0);return(a=t[n],new Promise(function(e,t){var n=document.getElementById("cinematic-text-container"),i=document.createElement("p");n.appendChild(i);var r=function e(t,n,a=0){return new Promise(function(i,r){setTimeout(function(){if(a>=n.length){var o=n.substring(0,a);return t.innerHTML=o,i(!0)}var o=n.substring(0,a);t.innerHTML=o+" █ ";var s=e(t,n,a+1);s.then(function(e){i(e)},function(e){r(e)})},15)})}(i,a,0);r.then(function(t){e(t)},function(e){t(e)})})).then(function(){return e(t,n+1)});var a}(e).then(function(){return e=document.getElementById("cinematic-text-container"),t=document.getElementById("mainmenu-container"),e.appendChild(Object(r.createElement)("br")),new Promise(function(n,o){e.appendChild(Object(r.createElement)("a",{class:"a-link-button",innerText:"Continue...",clickListener:()=>{Object(i.removeChildrenFromElement)(e),a.Engine.loadTerminalContent(),t.style.visibility="visible",l=!1,n()}}))});var e,t}).catch(function(e){Object(o.a)(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalHelpText="Type 'help name' to learn more about the command 'name'
alias [-g] [name=\"value\"] Create or display Terminal aliases
analyze Get information about the current machine
buy [-l/program] Purchase a program through the Dark Web
cat [file] Display a .msg, .lit, or .txt file
check [script] [args...] Print a script's logs to Terminal
clear Clear all text on the terminal
cls See 'clear' command
connect [ip/hostname] Connects to a remote server
download [script/text file] Downloads scripts or text files to your computer
free Check the machine's memory (RAM) usage
hack Hack the current machine
help [command] Display this help text, or the help text for a command
home Connect to home computer
hostname Displays the hostname of the machine
ifconfig Displays the IP address of the machine
kill [script] [args...] Stops the specified script on the current server
killall Stops all running scripts on the current machine
ls [| grep pattern] Displays all files on the machine
lscpu Displays the number of CPU cores on the machine
mem [script] [-t] [n] Displays the amount of RAM required to run the script
nano [file] Text editor - Open up and edit a script or text file
ps Display all scripts that are currently running
rm [file] Delete a file from the server
run [name] [-t] [n] [args...] Execute a program or script
scan Prints all immediately-available network connections
scan-analyze [d] [-a] Prints info for all servers up to d nodes away
scp [file] [server] Copies a file to a destination server
sudov Shows whether you have root access on this computer
tail [script] [args...] Displays dynamic logs for the specified script
theme [preset] | bg txt hlgt Change the color scheme of the UI
top Displays all running scripts and their RAM usage
unalias \"[alias name]\" Deletes the specified alias
",t.HelpTexts={alias:"alias [-g] [name=\"value\"]
Create or display aliases. An alias enables a replacement of a word with another string. It can be used to abbreviate a commonly used command, or commonly used parts of a command. The NAME of an alias defines the word that will be replaced, while the VALUE defines what it will be replaced by. For example, you could create the alias 'nuke' for the Terminal command 'run NUKE.exe' using the following:
alias nuke=\"run NUKE.exe\"
Then, to run the NUKE.exe program you would just have to enter 'nuke' in Terminal rather than the full command. It is important to note that 'default' aliases will only be substituted for the first word of a Terminal command. For example, if the following alias was set:
alias worm=\"HTTPWorm.exe\"
and then you tried to run the following terminal command:
run worm
This would fail because the worm alias is not the first word of a Terminal command. To allow an alias to be substituted anywhere in a Terminal command, rather than just the first word, you must set it to be a global alias using the -g flag:
alias -g worm=\"HTTPWorm.exe\"
Now, the 'worm' alias will be substituted anytime it shows up as an individual word in a Terminal command.
Entering just the command 'alias' without any arguments prints the list of all defined aliases in the reusable form 'alias NAME=VALUE' on the Terminal.
The 'unalias' command can be used to remove aliases.
",analyze:"analze
Prints details and statistics about the current server. The information that is printed includes basic server details such as the hostname, whether the player has root access, what ports are opened/closed, and also hacking-related information such as an estimated chance to successfully hack, an estimate of how much money is available on the server, etc.",buy:"buy [-l / program]
Purchase a program through the Dark Web. Requires a TOR router to use.
If this command is ran with the '-l' flag, it will display a list of all programs that can be bought through the dark web to the Terminal, as well as their costs.
Otherwise, the name of the program must be passed in as a parameter. This is name is NOT case-sensitive.",cat:"cat [file]
Display message (.msg), literature (.lit), or text (.txt) files. Examples:
cat j1.msg
cat foo.lit
cat servers.txt",check:"check [script name] [args...]
Print the logs of the script specified by the script name and arguments to the Terminal. Each argument must be separated by a space. Remember that a running script is uniquely identified both by its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
run foo.script 1 2 foodnstuff
Then to run the 'check' command on this script you would have to pass the same arguments in:
check foo.script 1 2 foodnstuff",clear:"clear
Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'cls' command",cls:"cls
Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'clear' command",connect:"connect [hostname/ip]
Connect to a remote server. The hostname or IP address of the remote server must be given as the argument to this command. Note that only servers that are immediately adjacent to the current server in the network can be connected to. To see which servers can be connected to, use the 'scan' command.",download:"download [script/text file]
Downloads a script or text file to your computer (like your real life computer).
You can also download all of your scripts/text files as a zip file using the following Terminal commands:
Download all scripts and text files: download *
Download all scripts: download *.script
Download all text files: download *.txt
",free:"free
Display's the memory usage on the current machine. Print the amount of RAM that is available on the current server as well as how much of it is being used.",hack:"hack
Attempt to hack the current server. Requires root access in order to be run. See the wiki page for hacking mechanics
",help:"help [command]
Display Terminal help information. Without arguments, 'help' prints a list of all valid Terminal commands and a brief description of their functionality. You can also pass the name of a Terminal command as an argument to 'help' to print more detailed information about the Terminal command. Examples:
help alias
help scan-analyze",home:"home
Connect to your home computer. This will work no matter what server you are currently connected to.",hostname:"hostname
Prints the hostname of the current server",ifconfig:"ipconfig
Prints the IP address of the current server",kill:"kill [script name] [args...]
Kill the script specified by the script name and arguments. Each argument must be separated by a space. Remember that a running script is uniquely identified by both its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
run foo.script 1 sigma-cosmetics
Then to kill this script the same arguments would have to be used:
kill foo.script 1 sigma-cosmetics
Note that after issuing the 'kill' command for a script, it may take a while for the script to actually stop running. This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. The script will not be stopped/killed until after that time has elapsed.",killall:"killall
Kills all scripts on the current server. Note that after the 'kill' command is issued for a script, it may take a while for the script to actually stop running. This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. The script will not be stopped/killed until after that time has elapsed.",ls:"ls [| grep pattern]
The ls command, with no arguments, prints all files on the current server to the Terminal screen. This includes all scripts, programs, and message files. The files will be displayed in alphabetical order.
The '| grep pattern' optional parameter can be used to only display files whose filenames match the specified pattern. For example, if you wanted to only display files with the .script extension, you could use:
ls | grep .script
Alternatively, if you wanted to display all files with the word purchase in the filename, you could use:
ls | grep purchase",lscpu:"lscpu
Prints the number of CPU Cores the current server has",mem:"mem [script name] [-t] [num threads]
Displays the amount of RAM needed to run the specified script with a single thread. The command can also be used to print the amount of RAM needed to run a script with multiple threads using the '-t' flag. If the '-t' flag is specified, then an argument for the number of threads must be passed in afterwards. Examples:
mem foo.script
mem foo.script -t 50
The first example above will print the amount of RAM needed to run 'foo.script' with a single thread. The second example above will print the amount of RAM needed to run 'foo.script' with 50 threads.",nano:"nano [file name]
Opens up the specified file in the Text Editor. Only scripts (.script) or text files (.txt) can be edited using the Text Editor. If the file does not already exist, then a new, empty one will be created",ps:"ps
Prints all scripts that are running on the current server",rm:"rm [file]
Removes the specified file from the current server. A file can be a script, a program, or a message file.
WARNING: This is permanent and cannot be undone",run:"run [file name] [-t] [num threads] [args...]
Execute a program or a script.
The '[-t]', '[num threads]', and '[args...]' arguments are only valid when running a script. The '-t' flag is used to indicate that the script should be run with the specified number of threads. If the flag is omitted, then the script will be run with a single thread by default. If the '-t' flag is used, then it MUST come immediately after the script name, and the [num threads] argument MUST come immediately afterwards.
[args...] represents a variable number of arguments that will be passed into the script. See the documentation about script arguments. Each specified argument must be separated by a space.
",scan:"scan
Prints all immediately-available network connection. This will print a list of all servers that you can currently connect to using the 'connect' Terminal command.","scan-analyze":"scan-analyze [depth] [-a]
Prints detailed information about all servers up to [depth] nodes away on the network. Calling 'scan-analyze 1' will display information for the same servers that are shown by the 'scan' Terminal command. This command also shows the relative paths to reach each server.
By default, the maximum depth that can be specified for 'scan-analyze' is 3. However, once you have the DeepscanV1.exe and DeepscanV2.exe programs, you can execute 'scan-analyze' with a depth up to 5 and 10, respectively.
The information 'scan-analyze' displays about each server includes whether or not you have root access to it, its required hacking level, the number of open ports required to run NUKE.exe on it, and how much RAM it has.
By default, this command will not display servers that you have purchased. However, you can pass in the -a flag at the end of the command if you would like to enable that.",scp:"scp [filename] [target server]
Copies the specified file from the current server to the target server. This command only works for script files (.script extension), literature files (.lit extension), and text files (.txt extension). The second argument passed in must be the hostname or IP of the target server.",sudov:"sudov
Prints whether or not you have root access to the current machine",tail:"tail [script name] [args...]
Displays dynamic logs for the script specified by the script name and arguments. Each argument must be separated by a space. Remember that a running script is uniquely identified by both its name and the arguments that were used to run it. So, if a script was ran with the following arguments:
run foo.script 10 50000
Then in order to check its logs with 'tail' the same arguments must be used:
tail foo.script 10 50000",theme:"theme [preset] | [#background #text #highlight]
Change the color of the game's user interface
This command can be called with a preset theme. Currently, the supported presets are 'default', 'muted', and 'solarized'. However, you can also specify your own color scheme using hex values. To do so, you must specify three hex color values for the background color, the text color, and the highlight color. These hex values must be preceded by a pound sign (#) and must be either 3 or 6 digits. Example:
theme #ffffff #385 #235012
A color picker such as Google's can be used to get your desired hex color values
Themes are not saved, so when the game is closed and then re-opened or reloaded then it will revert back to the default theme.",top:"top
Prints a list of all scripts running on the current server as well as their thread count and how much RAM they are using in total.",unalias:'unalias "[alias name]"
Deletes the specified alias. Note that the double quotation marks are required.
As an example, if an alias was declared using:
alias r="run"
Then it could be removed using:
unalias "r"
It is not necessary to differentiate between global and non-global aliases when using \'unalias\''}},,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return o});var a=n(50),i=n(34),r=n(56);function o(e,t){this.vars=t?Object.assign({},t.vars):Object(i.a)(e),this.parent=t,this.stopFlag=!1}o.prototype={extend:function(){return new o(null,this)},lookup:function(e){for(var t=this;t;){if(Object.prototype.hasOwnProperty.call(t.vars,e))return t;t=t.parent}return null},get:function(e){if(e in this.vars)return this.vars[e];throw new Error("Undefined variable "+e)},set:function(e,t){var n=this.lookup(e);return null!==n?n.vars[e]=t:this.vars[e]=t},setArrayElement:function(e,t,n){if(!(t instanceof Array))throw new Error("idx parameter is not an Array");var i=this.lookup(e);if(!i&&this.parent)throw new Error("Undefined variable "+e);var o=(i||this).vars[e];if(!(o.constructor===Array||o instanceof Array))throw new Error("Variable is not an array: "+e);for(var s=o,l=0;l=s.length)throw new Error("Out-of-bounds array access");s=s[c]}if(s[t[t.length-1]]instanceof a.a)throw new Error("Cannot assign a Hacknet Node handle to a new value");if(s[t[t.length-1]]instanceof r.a)throw new Error("Cannot assign a Netscript Port handle to a new value");return s[t[t.length-1]]=n},def:function(e,t){return this.vars[e]=t}}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return executeJSScript});var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7);function makeScriptBlob(e){return new Blob([e],{type:"text/javascript"})}async function executeJSScript(scripts=[],workerScript){let loadedModule,urlStack=null,script=workerScript.getScript();""===script.module&&(urlStack=_getScriptUrls(script,scripts,[]),script.module=await eval("import(urlStack[urlStack.length - 1])")),loadedModule=script.module;let ns=workerScript.env.vars;try{if(!loadedModule.main)throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_0__.d)(workerScript,`${script.filename} cannot be run because it does not have a main function.`);return loadedModule.main(ns)}finally{if(null!=urlStack)for(const e in urlStack)URL.revokeObjectURL(e)}}function _getScriptUrls(e,t,n){const a=[];n.push(e);try{const i=e.code.replace(/((?:from|import)\s+(?:'|"))([^'"]+)('|";)/g,(e,i,r,o)=>{if(!t.some(e=>e.filename==r))return e;const[s]=t.filter(e=>e.filename==r),l=_getScriptUrls(s,t,n);return a.push(...l),[i,l[l.length-1],o].join("")});return a.push(URL.createObjectURL(makeScriptBlob(i))),a}catch(e){for(const e in a)URL.revokeObjectURL(e);throw e}finally{n.pop()}}},function(e,t,n){"use strict";n.d(t,"b",function(){return c}),n.d(t,"a",function(){return u});var a=n(1),i=n(0),r=n(9),o=n(8),s=n(17),l=n(15);function c(e,t){if(i.a.money.lt(t))Object(o.dialogBoxCreate)("You don't have enough money to purchase this server!");else if(i.a.purchasedServers.length>=a.a.PurchasedServerLimit)Object(o.dialogBoxCreate)("You have reached the maximum limit of "+a.a.PurchasedServerLimit+" servers. You cannot purchase any more. You can delete some of your purchased servers using the deleteServer() Netscript function in a script");else{var n=Object(l.h)();if(""!=n){var c=new r.d({ip:Object(s.a)(),hostname:n,organizationName:"",isConnectedTo:!1,adminRights:!0,purchasedByPlayer:!0,maxRam:e});Object(r.a)(c),i.a.purchasedServers.push(c.ip);var u=i.a.getHomeComputer();u.serversOnNetwork.push(c.ip),c.serversOnNetwork.push(u.ip),i.a.loseMoney(t),Object(o.dialogBoxCreate)("Server successfully purchased with hostname "+n)}else Object(o.dialogBoxCreate)("You must enter a hostname for your new server!")}}function u(e){if(i.a.money.lt(e))Object(o.dialogBoxCreate)("You do not have enough money to purchase additional RAM for your home computer");else{var t=i.a.getHomeComputer();t.maxRam*=2,i.a.loseMoney(e),Object(o.dialogBoxCreate)("Purchased additional RAM for home computer! It now has "+t.maxRam+"GB of RAM.")}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class a{constructor(e,t,n,a,i,r){this.infoText=e,this.enemies=t,this.offerHackingMission=n,this.offerHackingWork=a,this.offerFieldWork=i,this.offerSecurityWork=r,this.augmentationPriceMult=1,this.augmentationRepRequirementMult=1}}t.FactionInfos={Illuminati:new a("Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And from this chaos, we are the Invisible hand that guides them to order. ",[],!0,!0,!0,!1),Daedalus:new a("Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.",[],!0,!0,!0,!1),"The Covenant":new a("Surrender yourself. Give up your empty individuality to become part of something great, something eternal. Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.
Only then can you discover immortality.",[],!0,!0,!0,!1),ECorp:new a("ECorp's mission is simple: to connect the world of today with the technology of tomorrow. With our wide range of Internet-related software and commercial hardware, ECorp makes the world's information universally accessible.",[],!0,!0,!0,!0),MegaCorp:new a("MegaCorp does things that others don't. We imagine. We create. We invent. We build things that others have never even dreamed of. Our work fills the world's needs for food, water, power, and transporation on an unprecendented scale, in ways that no other company can.
In our labs and factories and on the ground with customers, MegaCorp is ushering in a new era for the world.",[],!0,!0,!0,!0),"Bachman & Associates":new a("Where Law and Business meet - thats where we are.
Legal Insight - Business Instinct - Experience Innovation",[],!0,!0,!0,!0),"Blade Industries":new a("Augmentation is salvation",[],!0,!0,!0,!0),NWO:new a("The human being does not truly desire freedom. It wants to be observed, understood, and judged. It wants to be given purpose and direction in its life. That is why humans created God. And that is why humans created civilization - not because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.",[],!0,!0,!0,!0),"Clarke Incorporated":new a("Unlocking the power of the genome",[],!0,!0,!0,!0),"OmniTek Incorporated":new a("Simply put, our mission is to design and build robots that make a difference",[],!0,!0,!0,!0),"Four Sigma":new a("The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by deep learning and innovative ideas. And improved by iteration. That's Four Sigma.",[],!0,!0,!0,!0),"KuaiGong International":new a("Dream big. Work hard. Make history.",[],!0,!0,!0,!0),"Fulcrum Secret Technologies":new a("The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it would be necessary to create them. And now we can.",[],!0,!0,!1,!0),BitRunners:new a("Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be reconstructed. Transformed. Used.
Those who run the bits, run the world",[],!0,!0,!1,!1),"The Black Hand":new a("The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power. Technological power. And those at the top rule with an invisible hand. They built a society where the rich get richer, and everyone else suffers.
So much pain. So many lives. Their darkness must end.",[],!0,!0,!0,!1),NiteSec:new a(" __..__
_.nITESECNIt.
.-'NITESECNITESEc.
.' NITESECNITESECn
/ NITESECNITESEC;
: :NITESECNITESEC;
; $ NITESECNITESECN
: _, ,N'ITESECNITESEC
: .+^^`, : `NITESECNIT
) /), `-,-=,NITESECNI
/ ^ ,-;|NITESECN;
/ _.' '-';NITESECN
( , ,-''`^NITE'
)` :`. .'
)-- ; `- /
' _.-' :
( _.-' .
------.
.
_.nIt
_.nITESECNi
nITESECNIT^'
NITE^' ___
/ .gP''''Tp.
: d' . `b
; d' o `b ;
/ d; `b|
/, $; @ `:
/' $$ ;
.' $$b o |
.' d$$$; :
/ .d$$$$; , ;
d .dNITESEC $ |
:bp.__.gNITESEC$$ :$ ;
NITESECNITESECNIT $$b :
",[],!0,!0,!1,!1),Aevum:new a("The Silicon City",["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0),Chongqing:new a("Serve the people",["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0),Ishima:new a("The East Asian Order of the Future",["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0),"New Tokyo":new a("Asia's World City",["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0),"Sector-12":new a("The City of the Future",["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0),Volhaven:new a("Benefit, Honour, and Glory",["Chongqing","Sector-12","New Tokyo","Aevum","Ishima"],!0,!0,!0,!0),"Speakers for the Dead":new a("It is better to reign in hell than to serve in heaven.",[],!0,!0,!0,!0),"The Dark Army":new a("The World doesn't care about right or wrong. It's all about power.",[],!0,!0,!0,!1),"The Syndicate":new a("Honor holds you back",[],!0,!0,!0,!0),Silhouette:new a("Corporations have filled the void of power left behind by the collapse of Western government. The issue is they've become so big that you don't know who they're working for. And if you're employed at one of these corporations, you don't even know who you're working for.\n\nThat's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.",[],!0,!0,!0,!1),Tetrads:new a("Following the Mandate of Heaven and Carrying out the Way",[],!1,!1,!0,!0),"Slum Snakes":new a("Slum Snakes rule!",[],!1,!1,!0,!0),Netburners:new a("~~//*>H4CK||3T 8URN3R5**>?>\\~~",[],!0,!0,!1,!1),"Tian Di Hui":new a("Obey Heaven and Work Righteousness",[],!0,!0,!1,!0),CyberSec:new a("The Internet is the first thing that humanity has built that humanity doesn’t understand, the largest experiment in anarchy that we have ever had. And as the world becomes increasingly dominated by the internet, society approaches the brink of total chaos. We serve only to protect society, to protect humanity, to protect the world from its imminent collapse.",[],!0,!0,!1,!1),Bladeburners:new a("It's too bad they won't live. But then again, who does?
Note that for this faction, reputation can only be gained through Bladeburner actions. Completing Bladeburner contracts/operations will increase your reputation.",[],!1,!1,!1,!1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a=n(44),i=n(20);t.removeLoadingScreen=function(){i.removeElementById("loader"),a.getElementById("entire-game-container").style.visibility="visible"}},,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return o});var a=n(0),i=n(14),r=n.n(i);function o(){this.hp=document.getElementById("character-hp-text"),this.money=document.getElementById("character-money-text"),this.hack=document.getElementById("character-hack-text"),this.str=document.getElementById("character-str-text"),this.def=document.getElementById("character-def-text"),this.dex=document.getElementById("character-dex-text"),this.agi=document.getElementById("character-agi-text"),this.cha=document.getElementById("character-cha-text"),this.int=document.getElementById("character-int-text"),this.intWrapper=document.getElementById("character-int-wrapper"),this.repaintElem=document.getElementById("character-overview-text")}o.prototype.repaint=function(){this.repaintElem.getClientRects()},o.prototype.update=function(){null==a.a.hp&&(a.a.hp=a.a.max_hp);const e=function(e,t){return e.textContent!==t&&(e.textContent=t,!0)};let t=!1;t=e(this.hp,a.a.hp+" / "+a.a.max_hp)||t,t=e(this.money,r()(a.a.money.toNumber()).format("($0.000a)"))||t,t=e(this.hack,a.a.hacking_skill.toLocaleString())||t,t=e(this.str,a.a.strength.toLocaleString())||t,t=e(this.def,a.a.defense.toLocaleString())||t,t=e(this.dex,a.a.dexterity.toLocaleString())||t,t=e(this.agi,a.a.agility.toLocaleString())||t,t=e(this.cha,a.a.charisma.toLocaleString())||t,t=e(this.int,a.a.intelligence.toLocaleString())||t;const n=this.intWrapper,i=n.style.display,o=a.a.intelligence>=1?"":"none";i!==o&&(n.style.display=o,t=!0),t&&this.repaint()}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var a=n(37),i=function(e,t,n=0){this.sourceCode=e,this.sourceCodeLineOffset=n,"string"==typeof e&&(e=a.parse(e,i.PARSE_OPTIONS)),this.ast=e,this.initFunc_=t,this.paused_=!1,this.polyfills_=[],this.functionCounter_=0,this.stepFunctions_=Object.create(null);var r,o,s=/^step([A-Z]\w*)$/;for(var l in this)"function"==typeof this[l]&&(r=l.match(s))&&(this.stepFunctions_[r[1]]=this[l].bind(this));this.global=this.createScope(this.ast,null),this.ast=a.parse(this.polyfills_.join("\n"),i.PARSE_OPTIONS),this.polyfills_=void 0,this.stripLocations_(this.ast,void 0,void 0),(o=new i.State(this.ast,this.global)).done=!1,this.stateStack=[o],this.run(),this.value=void 0,this.ast=e,(o=new i.State(this.ast,this.global)).done=!1,this.stateStack.length=0,this.stateStack[0]=o,this.nodeConstructor=o.node.constructor,this.stateStack=this.stateStack};i.PARSE_OPTIONS={ecmaVersion:5,locations:!0},i.READONLY_DESCRIPTOR={configurable:!0,enumerable:!0,writable:!1},i.NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!0},i.READONLY_NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!1},i.VARIABLE_DESCRIPTOR={configurable:!1,enumerable:!0,writable:!0},i.STEP_ERROR={},i.SCOPE_REFERENCE={},i.VALUE_IN_DESCRIPTOR={},i.toStringCycles_=[],i.prototype.getErrorLineNumber=function(e){var t=this.sourceCode;if(null==e||null==e.start)return NaN;try{return((t=t.substring(0,e.start)).match(/\n/g)||[]).length+1-this.sourceCodeLineOffset}catch(e){return NaN}},i.prototype.getErrorLineNumberMessage=function(e){return isNaN(e)?" (Unknown line number)":e<=0?" (Error occurred in an imported function)":" (Line Number "+e+". This line number is probably incorrect if your script is importing any functions. This is being worked on)"},i.prototype.appendCode=function(e){var t=this.stateStack[0];if(!t||"Program"!==t.node.type)throw Error("Expecting original AST to start with a Program node.");if("string"==typeof e&&(e=a.parse(e,i.PARSE_OPTIONS)),!e||"Program"!==e.type)throw Error("Expecting new AST to start with a Program node.");this.populateScope_(e,t.scope);for(var n,r=0;n=e.body[r];r++)t.node.body.push(n);t.done=!1},i.prototype.step=function(){var e=this.stateStack,t=e[e.length-1];if(!t)return!1;var n=t.node,a=n.type;if("Program"===a&&t.done)return!1;if(this.paused_)return!0;try{var r=this.stepFunctions_[a](e,t,n)}catch(e){if(e!==i.STEP_ERROR)throw e}return r&&e.push(r),!!n.end||this.step()},i.prototype.run=function(){for(;!this.paused_&&this.step(););return this.paused_},i.prototype.initGlobalScope=function(e){this.setProperty(e,"NaN",NaN,i.READONLY_DESCRIPTOR),this.setProperty(e,"Infinity",1/0,i.READONLY_DESCRIPTOR),this.setProperty(e,"undefined",void 0,i.READONLY_DESCRIPTOR),this.setProperty(e,"window",e,i.READONLY_DESCRIPTOR),this.setProperty(e,"this",e,i.READONLY_DESCRIPTOR),this.setProperty(e,"self",e),this.OBJECT_PROTO=new i.Object(null),this.FUNCTION_PROTO=new i.Object(this.OBJECT_PROTO),this.initFunction(e),this.initObject(e),e.proto=this.OBJECT_PROTO,this.setProperty(e,"constructor",this.OBJECT,i.NONENUMERABLE_DESCRIPTOR),this.initArray(e),this.initString(e),this.initBoolean(e),this.initNumber(e),this.initDate(e),this.initRegExp(e),this.initError(e),this.initMath(e),this.initJSON(e);var t=this,n=this.createNativeFunction(function(e){throw EvalError("Can't happen")},!1);n.eval=!0,this.setProperty(e,"eval",n),this.setProperty(e,"parseInt",this.createNativeFunction(parseInt,!1)),this.setProperty(e,"parseFloat",this.createNativeFunction(parseFloat,!1)),this.setProperty(e,"isNaN",this.createNativeFunction(isNaN,!1)),this.setProperty(e,"isFinite",this.createNativeFunction(isFinite,!1));for(var a=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],r=0;r>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O && !callbackfn.call(T, O[k], k, O)) return false;","k++;","}","return true;","}","});","Object.defineProperty(Array.prototype, 'filter',","{configurable: true, writable: true, value:","function(fun/*, thisArg*/) {","if (this === void 0 || this === null || typeof fun !== 'function') throw TypeError();","var t = Object(this);","var len = t.length >>> 0;","var res = [];","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;","for (var i = 0; i < len; i++) {","if (i in t) {","var val = t[i];","if (fun.call(thisArg, val, i, t)) res.push(val);","}","}","return res;","}","});","if (!Array.prototype.find) {","Object.defineProperty(Array.prototype, 'find', {","value: function(predicate) {","if (this == null) {","throw new TypeError('\"this\" is null or not defined');","}","var o = Object(this);","var len = o.length >>> 0;","if (typeof predicate !== 'function') {","throw new TypeError('predicate must be a function');","}","var thisArg = arguments[1];","var k = 0;","while (k < len) {","var kValue = o[k];","if (predicate.call(thisArg, kValue, k, o)) {","return kValue;","}","k++;","}","return undefined;","},","configurable: true,","writable: true","});","}","if (!Array.prototype.findIndex) {","Object.defineProperty(Array.prototype, 'findIndex', {","value: function(predicate) {","if (this == null) {","throw new TypeError('\"this\" is null or not defined');","}","var o = Object(this);","var len = o.length >>> 0;","if (typeof predicate !== 'function') {","throw new TypeError('predicate must be a function');","}","var thisArg = arguments[1];","var k = 0;","while (k < len) {","var kValue = o[k];","if (predicate.call(thisArg, kValue, k, o)) {","return k;","}","k++;","}","return -1;","},","configurable: true,","writable: true","});","}","Object.defineProperty(Array.prototype, 'forEach',","{configurable: true, writable: true, value:","function(callback, thisArg) {","if (!this || typeof callback !== 'function') throw TypeError();","var T, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O) callback.call(T, O[k], k, O);","k++;","}","}","});","Object.defineProperty(Array.prototype, 'includes', {","value: function(searchElement, fromIndex) {","if (this == null) {","throw new TypeError('\"this\" is null or not defined');","}","// 1. Let O be ? ToObject(this value).","var o = Object(this);",'// 2. Let len be ? ToLength(? Get(O, "length")).',"var len = o.length >>> 0;","// 3. If len is 0, return false.","if (len === 0) {","return false;","}","// 4. Let n be ? ToInteger(fromIndex).","// (If fromIndex is undefined, this step produces the value 0.)","var n = fromIndex | 0;","// 5. If n ≥ 0, then","// a. Let k be n.","// 6. Else n < 0,","// a. Let k be len + n.","// b. If k < 0, let k be 0.","var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);","function sameValueZero(x, y) {","return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));","}","// 7. Repeat, while k < len","while (k < len) {","// a. Let elementK be the result of ? Get(O, ! ToString(k)).","// b. If SameValueZero(searchElement, elementK) is true, return true.","if (sameValueZero(o[k], searchElement)) {","return true;","}","// c. Increase k by 1. ","k++;","}","// 8. Return false","return false;","}","});","Object.defineProperty(Array.prototype, 'map',","{configurable: true, writable: true, value:","function(callback, thisArg) {","if (!this || typeof callback !== 'function') new TypeError;","var T, A, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","A = new Array(len);","k = 0;","while (k < len) {","if (k in O) A[k] = callback.call(T, O[k], k, O);","k++;","}","return A;","}","});","Object.defineProperty(Array.prototype, 'reduce',","{configurable: true, writable: true, value:","function(callback /*, initialValue*/) {","if (!this || typeof callback !== 'function') throw TypeError();","var t = Object(this), len = t.length >>> 0, k = 0, value;","if (arguments.length === 2) {","value = arguments[1];","} else {","while (k < len && !(k in t)) k++;","if (k >= len) {","throw TypeError('Reduce of empty array with no initial value');","}","value = t[k++];","}","for (; k < len; k++) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'reduceRight',","{configurable: true, writable: true, value:","function(callback /*, initialValue*/) {","if (null === this || 'undefined' === typeof this || 'function' !== typeof callback) throw TypeError();","var t = Object(this), len = t.length >>> 0, k = len - 1, value;","if (arguments.length >= 2) {","value = arguments[1];","} else {","while (k >= 0 && !(k in t)) k--;","if (k < 0) {","throw TypeError('Reduce of empty array with no initial value');","}","value = t[k--];","}","for (; k >= 0; k--) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'some',","{configurable: true, writable: true, value:","function(fun/*, thisArg*/) {","if (!this || typeof fun !== 'function') throw TypeError();","var t = Object(this);","var len = t.length >>> 0;","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;","for (var i = 0; i < len; i++) {","if (i in t && fun.call(thisArg, t[i], i, t)) {","return true;","}","}","return false;","}","});","(function() {","var sort_ = Array.prototype.sort;","Array.prototype.sort = function(opt_comp) {","if (typeof opt_comp !== 'function') {","return sort_.call(this);","}","for (var i = 0; i < this.length; i++) {","var changes = 0;","for (var j = 0; j < this.length - i - 1; j++) {","if (opt_comp(this[j], this[j + 1]) > 0) {","var swap = this[j];","this[j] = this[j + 1];","this[j + 1] = swap;","changes++;","}","}","if (!changes) break;","}","return this;","};","})();","Object.defineProperty(Array.prototype, 'toLocaleString',","{configurable: true, writable: true, value:","function() {","var out = [];","for (var i = 0; i < this.length; i++) {","out[i] = (this[i] === null || this[i] === undefined) ? '' : this[i].toLocaleString();","}","return out.join(',');","}","});","")},i.prototype.initString=function(e){var t,n=this;t=function(e){return e=String(e),n.calledWithNew()?(this.data=e,this):e},this.STRING=this.createNativeFunction(t,!0),this.setProperty(e,"String",this.STRING),this.setProperty(this.STRING,"fromCharCode",this.createNativeFunction(String.fromCharCode,!1),i.NONENUMERABLE_DESCRIPTOR);for(var a=["charAt","charCodeAt","concat","indexOf","lastIndexOf","slice","substr","substring","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim"],r=0;r= 0; i--) {","str = str.substring(0, subs[i][0]) + subs[i][2] + str.substring(subs[i][0] + subs[i][1]);","}","} else {","var i = str.indexOf(substr);","if (i !== -1) {","var inject = newSubstr(str.substr(i, substr.length), i, str);","str = str.substring(0, i) + inject + str.substring(i + substr.length);","}","}","return str;","};","})();","if (!String.prototype.endsWith) {","String.prototype.endsWith = function(search, this_len) {","if (this_len === undefined || this_len > this.length) {","this_len = this.length;","}","return this.substring(this_len - search.length, this_len) === search;","};","}","if (!String.prototype.includes) {","String.prototype.includes = function(search, start) {","'use strict';","if (typeof start !== 'number') {","start = 0;","}"," ","if (start + search.length > this.length) {","return false;","} else {","return this.indexOf(search, start) !== -1;","}","};","}","if (!String.prototype.startsWith) {","String.prototype.startsWith = function(search, pos) {","return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;","};","}","")},i.prototype.initBoolean=function(e){var t,n=this;t=function(e){return e=Boolean(e),n.calledWithNew()?(this.data=e,this):e},this.BOOLEAN=this.createNativeFunction(t,!0),this.setProperty(e,"Boolean",this.BOOLEAN)},i.prototype.initNumber=function(e){var t,n=this;t=function(e){return e=Number(e),n.calledWithNew()?(this.data=e,this):e},this.NUMBER=this.createNativeFunction(t,!0),this.setProperty(e,"Number",this.NUMBER);for(var a=["MAX_VALUE","MIN_VALUE","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY"],r=0;r>>0;return t===Number(e)?t:NaN},i.legalArrayIndex=function(e){var t=e>>>0;return String(t)===String(e)&&4294967295!==t?t:NaN},i.Value,i.Object=function(e){this.getter=Object.create(null),this.setter=Object.create(null),this.properties=Object.create(null),this.proto=e},i.Object.prototype.proto=null,i.Object.prototype.isObject=!0,i.Object.prototype.class="Object",i.Object.prototype.data=null,i.Object.prototype.toString=function(){if("Array"===this.class){(a=i.toStringCycles_).push(this);try{for(var e=[],t=0;t0;r.pop()){var o=r[r.length-1];switch(o.node.type){case"TryStatement":return void(o.cv={type:e,value:t,label:n});case"CallExpression":case"NewExpression":if(e===i.Completion.RETURN)return void(o.value=t);if(e!==i.Completion.THROW)throw Error("Unsynatctic break/continue not rejected by Acorn")}if(e===i.Completion.BREAK){if(n?o.labels&&-1!==o.labels.indexOf(n):o.isLoop||o.isSwitch)return void r.pop()}else if(e===i.Completion.CONTINUE&&(n?o.labels&&-1!==o.labels.indexOf(n):o.isLoop))return}var s;if(this.isa(t,this.ERROR)){var l={EvalError:EvalError,RangeError:RangeError,ReferenceError:ReferenceError,SyntaxError:SyntaxError,TypeError:TypeError,URIError:URIError},c=this.getProperty(t,"name").toString(),u=this.getProperty(t,"message").valueOf();s=(e=l[c]||Error)(u+a)}else s=String(t)+a;throw s},i.prototype.createGetter_=function(e,t){var n=Array.isArray(t)?t[0]:t,a=new this.nodeConstructor;a.type="CallExpression";var r=new i.State(a,this.stateStack[this.stateStack.length-1].scope);return r.doneCallee_=!0,r.funcThis_=n,r.func_=e,r.doneArgs_=!0,r.arguments_=[],r},i.prototype.createSetter_=function(e,t,n){var a=Array.isArray(t)?t[0]:this.global,r=new this.nodeConstructor;r.type="CallExpression";var o=new i.State(r,this.stateStack[this.stateStack.length-1].scope);return o.doneCallee_=!0,o.funcThis_=a,o.func_=e,o.doneArgs_=!0,o.arguments_=[n],o},i.State=function(e,t){this.node=e,this.scope=t},i.prototype.stepArrayExpression=function(e,t,n){var a=n.elements,r=t.n_||0;for(t.array_?(this.setProperty(t.array_,r,t.value),r++):(t.array_=this.createObjectProto(this.ARRAY_PROTO),t.array_.properties.length=a.length);r>=":s>>=l;break;case">>>=":s>>>=l;break;case"&=":s&=l;break;case"^=":s^=l;break;case"|=":s|=l;break;default:throw SyntaxError("Unknown assignment expression: "+n.operator)}var c=this.setValue(t.leftReference_,s);if(c)return t.doneSetter_=!0,t.setterValue_=s,this.createSetter_(c,t.leftReference_,s);e.pop(),e[e.length-1].value=s},i.prototype.stepBinaryExpression=function(e,t,n){if(!t.doneLeft_)return t.doneLeft_=!0,new i.State(n.left,t.scope);if(!t.doneRight_)return t.doneRight_=!0,t.leftValue_=t.value,new i.State(n.right,t.scope);e.pop();var a,r=t.leftValue_,o=t.value;switch(n.operator){case"==":a=r==o;break;case"!=":a=r!=o;break;case"===":a=r===o;break;case"!==":a=r!==o;break;case">":a=r>o;break;case">=":a=r>=o;break;case"<":a=r>":a=r>>o;break;case">>>":a=r>>>o;break;case"in":if(!o||!o.isObject){let e=this.getErrorLineNumber(n);this.throwException(this.TYPE_ERROR,"'in' expects an object, not '"+o+"'",e)}a=this.hasProperty(o,r);break;case"instanceof":if(!this.isa(o,this.FUNCTION)){let e=this.getErrorLineNumber(n);this.throwException(this.TYPE_ERROR,"Right-hand side of instanceof is not an object",e)}a=!!r.isObject&&this.isa(r,o);break;default:throw SyntaxError("Unknown binary operator: "+n.operator)}e[e.length-1].value=a},i.prototype.stepBlockStatement=function(e,t,n){var a=t.n_||0,r=n.body[a];if(r)return t.n_=a+1,new i.State(r,t.scope);e.pop()},i.prototype.stepBreakStatement=function(e,t,n){var a=n.label&&n.label.name;this.unwind(i.Completion.BREAK,void 0,a)},i.prototype.stepCallExpression=function(e,t,n){if(!t.doneCallee_){t.doneCallee_=1;var r=new i.State(n.callee,t.scope);return r.components=!0,r}if(1===t.doneCallee_){t.doneCallee_=2;var o=t.value;if(Array.isArray(o)){if(t.func_=this.getValue(o,n),o[0]===i.SCOPE_REFERENCE?t.directEval_="eval"===o[1]:t.funcThis_=o[0],(o=t.func_)&&"object"==typeof o&&o.isGetter)return o.isGetter=!1,t.doneCallee_=1,this.createGetter_(o,t.value)}else t.func_=o;t.arguments_=[],t.n_=0}o=t.func_;if(!t.doneArgs_){if(0!==t.n_&&t.arguments_.push(t.value),n.arguments[t.n_])return new i.State(n.arguments[t.n_++],t.scope);if("NewExpression"===n.type){if(o.illegalConstructor){let e=this.getErrorLineNumber(n);this.throwException(this.TYPE_ERROR,o+" is not a constructor",e)}var s=o.properties.prototype;"object"==typeof s&&null!==s||(s=this.OBJECT_PROTO),t.funcThis_=this.createObjectProto(s),t.isConstructor=!0}else void 0===t.funcThis_&&(t.funcThis_=t.scope.strict?void 0:this.global);t.doneArgs_=!0}if(t.doneExec_)e.pop(),t.isConstructor&&"object"!=typeof t.value?e[e.length-1].value=t.funcThis_:e[e.length-1].value=t.value;else{if(t.doneExec_=!0,!o||!o.isObject){let e=this.getErrorLineNumber(n);this.throwException(this.TYPE_ERROR,o+" is not a function",e)}var l=o.node;if(l){for(var c=this.createScope(l.body,o.parentScope),u=0;uu?t.arguments_[u]:void 0;this.setProperty(c,d,h)}var p=this.createObjectProto(this.ARRAY_PROTO);for(u=0;ut===e.name);return-1===t?console.log("ERROR: Could not find faction in Player.factionInvitations"):r.a.factionInvitations.splice(t,1),Object(a.h)(e),s(),i.Engine.currentPage===i.Engine.Page.Factions&&i.Engine.loadFactionsContent(),!1}),Object(o.clearEventListeners)("faction-invitation-box-no").addEventListener("click",function(){return s(),!1}),document.getElementById("faction-invitation-box-container").style.display="block"}},function(e,t,n){"use strict";n.d(t,"a",function(){return h});var a=n(16),i=n(1),r=n(12),o=n(0),s=n(8),l=n(13),c=n(2),u="";function d(){document.getElementById("infiltration-box-container").style.display="none"}function h(e){var t=2*e.clearanceLevel/e.maxClearanceLevel;o.a.gainHackingExp(e.hackingExpGained*t),o.a.gainStrengthExp(e.strExpGained*t),o.a.gainDefenseExp(e.defExpGained*t),o.a.gainDexterityExp(e.dexExpGained*t),o.a.gainAgilityExp(e.agiExpGained*t),o.a.gainCharismaExp(e.chaExpGained*t),o.a.gainIntelligenceExp(e.intExpGained*t);for(var n=0,h=0;h"+o.a.factions[e]+"");if(""!==u)for(let e=0;e
You gained:
"+Object(c.formatNumber)(e.hackingExpGained,3)+" hacking exp
"+Object(c.formatNumber)(e.strExpGained,3)+" str exp
"+Object(c.formatNumber)(e.defExpGained,3)+" def exp
"+Object(c.formatNumber)(e.dexExpGained,3)+" dex exp
"+Object(c.formatNumber)(e.agiExpGained,3)+" agi exp
"+Object(c.formatNumber)(e.chaExpGained,3)+" cha exp
"),d(),!1)})},750);var b=Object(l.clearEventListeners)("infiltration-box-faction");setTimeout(function(){b.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=y.options[y.selectedIndex].value;u=n;var a=r.b[n];return null==a?(Object(s.dialogBoxCreate)("Error finding faction. This is a bug please report to developer"),!1):(a.playerReputation+=m,Object(s.dialogBoxCreate)("You gave the classified information you stole from "+e.companyName+" to "+n+" and gained "+Object(c.formatNumber)(m,3)+" reputation with the faction.
You gained:
"+Object(c.formatNumber)(e.hackingExpGained,3)+" hacking exp
"+Object(c.formatNumber)(e.strExpGained,3)+" str exp
"+Object(c.formatNumber)(e.defExpGained,3)+" def exp
"+Object(c.formatNumber)(e.dexExpGained,3)+" dex exp
"+Object(c.formatNumber)(e.agiExpGained,3)+" agi exp
"+Object(c.formatNumber)(e.chaExpGained,3)+" cha exp
"),d(),!1)})},750),document.getElementById("infiltration-box-container").style.display="block"}else Object(s.dialogBoxCreate)("You successfully escaped the facility but you did not steal anything of worth when infiltrating.
You gained:
"+Object(c.formatNumber)(e.hackingExpGained,3)+" hacking exp
"+Object(c.formatNumber)(e.strExpGained,3)+" str exp
"+Object(c.formatNumber)(e.defExpGained,3)+" def exp
"+Object(c.formatNumber)(e.dexExpGained,3)+" dex exp
"+Object(c.formatNumber)(e.agiExpGained,3)+" agi exp
"+Object(c.formatNumber)(e.chaExpGained,3)+" cha exp
")}},function(e,t,n){"use strict";n.d(t,"a",function(){return m});var a=n(16),i=n(1),r=n(6),o=n(0),s=n(8),l=n(13),c=n(5),u=n(98),d=n(2);let h={Guards:"You see an armed security guard patrolling the area.",TechOnly:"The area is equipped with a state-of-the-art security system: cameras, laser tripwires, and sentry turrets.",TechOrLockedDoor:"The area is equipped with a state-of-the-art security system. There is a locked door on the side of the room that can be used to bypass security.",Bots:"You see a few security bots patrolling the area."};function p(e,t,n,a,i){this.companyName=e,this.clearanceLevel=0,this.maxClearanceLevel=a,this.securityLevel=t,this.difficulty=i,this.baseValue=n,this.secretsStolen=[],this.hackingExpGained=0,this.strExpGained=0,this.defExpGained=0,this.dexExpGained=0,this.agiExpGained=0,this.chaExpGained=0,this.intExpGained=0}function m(e,t,n,a,i){var r=new p(e,t,n,a,i);document.getElementById("infiltration-status-text").innerHTML="",y(r)}function g(e,t){t&&Object(u.a)(e),Object(l.clearEventListeners)("infiltration-kill"),Object(l.clearEventListeners)("infiltration-knockout"),Object(l.clearEventListeners)("infiltration-stealthknockout"),Object(l.clearEventListeners)("infiltration-assassinate"),Object(l.clearEventListeners)("infiltration-hacksecurity"),Object(l.clearEventListeners)("infiltration-destroysecurity"),Object(l.clearEventListeners)("infiltration-sneak"),Object(l.clearEventListeners)("infiltration-pickdoor"),Object(l.clearEventListeners)("infiltration-bribe"),Object(l.clearEventListeners)("infiltration-escape"),r.Engine.loadLocationContent()}function y(e){++e.clearanceLevel,v(e);var t=Object(l.clearEventListeners)("infiltration-kill"),n=Object(l.clearEventListeners)("infiltration-knockout"),a=Object(l.clearEventListeners)("infiltration-stealthknockout"),r=Object(l.clearEventListeners)("infiltration-assassinate"),s=Object(l.clearEventListeners)("infiltration-hacksecurity"),u=Object(l.clearEventListeners)("infiltration-destroysecurity"),p=Object(l.clearEventListeners)("infiltration-sneak"),m=Object(l.clearEventListeners)("infiltration-pickdoor"),y=Object(l.clearEventListeners)("infiltration-bribe"),k=Object(l.clearEventListeners)("infiltration-escape");t.style.display="none",n.style.display="none",a.style.display="none",r.style.display="none",s.style.display="none",u.style.display="none",p.style.display="none",m.style.display="none",y.style.display="none",k.style.display="none";var O=null;switch(Object(c.getRandomInt)(0,5)){case 1:O=h.TechOnly,s.style.display="block",u.style.display="block",p.style.display="block",k.style.display="block";break;case 2:O=h.TechOrLockedDoor,s.style.display="block",u.style.display="block",p.style.display="block",m.style.display="block",k.style.display="block";break;case 3:O=h.Bots,t.style.display="block",t.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=E(e);if(n[0])return b("You SUCCESSFULLY killed the security bots! Unfortunately you alerted the rest of the facility's security. The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.karma-=1,f(e),!1;var a=Math.max(1,Math.round(1.5*e.securityLevel/o.a.defense));b("You FAILED to kill the security bots. The bots fight back and raise the alarm! You take "+a+" damage and the facility's security level increases by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.takeDamage(a)&&g(e,!1),_(e,O),v(e)}),r.style.display="block",r.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=S(e);if(n[0])return b("You SUCCESSFULLY assassinated the security bots without being detected!"),o.a.karma-=1,f(e),!1;b("You FAILED to assassinate the security bots. The bots have not detected you but are now more alert for an intruder. The facility's security level has increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e)}),s.style.display="block",p.style.display="block",k.style.display="block";break;default:O=h.Guards,t.style.display="block",t.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=E(e);if(n[0])return b("You SUCCESSFULLY killed the security guard! Unfortunately you alerted the rest of the facility's security. The facility's security level has increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.karma-=3,++o.a.numPeopleKilled,f(e),!1;var a=Math.max(1,Math.round(e.securityLevel/o.a.defense));b("You FAILED to kill the security guard. The guard fights back and raises the alarm! You take "+a+" damage and the facility's security level has increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.takeDamage(a)&&g(e,!1),_(e,O),v(e)}),n.style.display="block",a.style.display="block",r.style.display="block",r.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=S(e);if(n[0])return b("You SUCCESSFULLY assassinated the security guard without being detected!"),o.a.karma-=3,++o.a.numPeopleKilled,f(e),!1;b("You FAILED to assassinate the security guard. The guard has not detected you but is now more alert for an intruder. The facility's security level has increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e)}),p.style.display="block",y.style.display="block",k.style.display="block"}n.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=C(e);return e.gainStrengthExp(e.securityLevel/70),o.a.strength_exp_mult,e.gainDefenseExp(e.securityLevel/70),o.a.defense_exp_mult,e.gainDexterityExp(e.securityLevel/70),o.a.dexterity_exp_mult,e.gainAgilityExp(e.securityLevel/70),o.a.agility_exp_mult,Math.random()<=t?(e.securityLevel*=1.03,[!0,1.03]):(e.securityLevel*=1.1,[!1,1.1])}(e);if(n[0])return b("You SUCCESSFULLY knocked out the security guard! Unfortunately you made a lot of noise and alerted other security."),b("The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),f(e),!1;var a=Math.max(1,Math.round(e.securityLevel/o.a.defense));return b("You FAILED to knockout the security guard. The guard raises the alarm and fights back! You take "+a+" damage and the facility's security level increases by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.takeDamage(a)&&g(e,!1),_(e,O),v(e),!1}),a.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=w(e);return e.gainStrengthExp(e.securityLevel/75),o.a.strength_exp_mult,e.gainDexterityExp(e.securityLevel/60),o.a.dexterity_exp_mult,e.gainAgilityExp(e.securityLevel/60),o.a.agility_exp_mult,Math.random()<=t?[!0,1]:(e.securityLevel*=1.1,[!1,1.1])}(e);if(n[0])return b("You SUCCESSFULLY knocked out the security guard without making any noise!"),f(e),!1;var a=Math.max(1,Math.round(e.securityLevel/o.a.defense));return b("You FAILED to stealthily knockout the security guard. The guard raises the alarm and fights back! You take "+a+" damage and the facility's security level increases by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.takeDamage(a)&&g(e,!1),_(e,O),v(e),!1}),s.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=x(e);return e.gainHackingExp(e.securityLevel/30),o.a.hacking_exp_mult,e.gainIntelligenceExp(e.securityLevel/680),Math.random()<=t?(e.securityLevel*=1.03,[!0,1.03]):(e.securityLevel*=1.05,[!1,1.05])}(e);return n[0]?(b("You SUCCESSFULLY hacked and disabled the security system!"),b("The facility's security level increased by "+(100*n[1]-100).toString()+"%"),f(e),!1):(b("You FAILED to hack the security system. The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e),!1)}),u.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=R(e);return e.gainStrengthExp(e.securityLevel/75),o.a.strength_exp_mult,e.gainDefenseExp(e.securityLevel/75),o.a.defense_exp_mult,e.gainDexterityExp(e.securityLevel/75),o.a.dexterity_exp_mult,e.gainAgilityExp(e.securityLevel/75),o.a.agility_exp_mult,Math.random()<=t?(e.securityLevel*=1.05,[!0,1.05]):(e.securityLevel*=1.1,[!1,1.1])}(e);return n[0]?(b("You SUCCESSFULLY and violently destroy the security system!"),b("The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),f(e),!1):(b("You FAILED to destroy the security system. The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e),!1)}),p.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=I(e);return e.gainAgilityExp(e.securityLevel/30),o.a.agility_exp_mult,Math.random()<=t?[!0,1]:(e.securityLevel*=1.08,[!1,1.08])}(e);return n[0]?(b("You SUCCESSFULLY sneak past the security undetected!"),f(e),!1):(b("You FAILED and were detected while trying to sneak past security! The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e),!1)}),m.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=P(e);return e.gainDexterityExp(e.securityLevel/25),o.a.dexterity_exp_mult,Math.random()<=t?(e.securityLevel*=1.01,[!0,1.01]):(e.securityLevel*=1.03,[!1,1.03])}(e);return n[0]?(b("You SUCCESSFULLY pick the locked door!"),b("The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),f(e),!1):(b("You FAILED to pick the locked door. The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),_(e,O),v(e),!1)}),y.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=i.a.InfiltrationBribeBaseAmount*e.clearanceLevel;if(o.a.money.lt(n))return b("You do not have enough money to bribe the guard. You need $"+n),!1;var a=function(e){var t=N(e);return e.gainCharismaExp(e.securityLevel/8),o.a.charisma_exp_mult,Math.random()<=t?[!0,1]:(e.securityLevel*=1.15,[!1,1.15])}(e);return a[0]?(b("You SUCCESSFULLY bribed a guard to let you through to the next clearance level for $"+n),o.a.loseMoney(n),f(e),!1):(b("You FAILED to bribe a guard! The guard is alerting other security guards about your presence! The facility's security level increased by "+Object(d.formatNumber)(100*a[1]-100,2).toString()+"%"),_(e,O),v(e),!1)}),k.addEventListener("click",function(t){if(!t.isTrusted)return!1;var n=function(e){var t=A(e);return e.gainAgilityExp(e.securityLevel/30),o.a.agility_exp_mult,e.gainDexterityExp(e.securityLevel/30),o.a.dexterity_exp_mult,Math.random()<=t?[!0,1]:(e.securityLevel*=1.05,[!1,1.05])}(e);return n[0]?(b("You SUCCESSFULLY escape from the facility with the stolen classified documents and company secrets!"),g(e,!0),!1):(b("You FAILED to escape from the facility. You took 1 damage. The facility's security level increased by "+Object(d.formatNumber)(100*n[1]-100,2).toString()+"%"),o.a.takeDamage(1)&&g(e,!1),_(e,O),v(e),!1)}),_(e,O),b(""),b("You are now on clearance level "+e.clearanceLevel+".
"+O)}function f(e){if(e.clearanceLevel%5==0){var t=e.baseValue*e.clearanceLevel/2,n=t*o.a.faction_rep_mult*i.a.InfiltrationRepValue*a.a.InfiltrationRep,r=t*i.a.InfiltrationMoneyValue*a.a.InfiltrationMoney;e.secretsStolen.push(t),Object(s.dialogBoxCreate)("You found and stole a set of classified documents from the company. These classified secrets could probably be sold for money ($"+Object(d.formatNumber)(r,2)+"), or they could be given to factions for reputation ("+Object(d.formatNumber)(n,3)+" rep)")}e.securityLevel*=1+e.difficulty/100,b("You move on to the facility's next clearance level. This clearance level has "+e.difficulty+"% higher security"),e.clearanceLevel>=e.maxClearanceLevel?g(e,!0):y(e)}function b(e){var t=document.getElementById("infiltration-status-text");t.innerHTML+=e+"
",t.parentElement.scrollTop=t.scrollHeight}function v(e){for(var t=0,n=0,r=0;rClearance Level: "+e.clearanceLevel+"
Security Level: "+Object(d.formatNumber)(e.securityLevel,3)+"
Total reputation value of secrets stolen: "+Object(d.formatNumber)(t,3)+"
Total monetary value of secrets stolen: $"+Object(d.formatNumber)(n,2)+"
Hack exp gained: "+Object(d.formatNumber)(e.hackingExpGained*s,3)+"
Str exp gained: "+Object(d.formatNumber)(e.strExpGained*s,3)+"
Def exp gained: "+Object(d.formatNumber)(e.defExpGained*s,3)+"
Dex exp gained: "+Object(d.formatNumber)(e.dexExpGained*s,3)+"
Agi exp gained: "+Object(d.formatNumber)(e.agiExpGained*s,3)+"
Cha exp gained: "+Object(d.formatNumber)(e.chaExpGained*s,3)}function _(e,t){var n=O(e),a=C(e),i=w(e),r=T(e),o=R(e),s=x(e),l=I(e),c=P(e),u=N(e),p=A(e);switch(document.getElementById("infiltration-escape").innerHTML="EscapeAttempt to escape the facility with the classified secrets and documents you have stolen. You have a "+Object(d.formatNumber)(100*p,2)+"% chance of success. If you fail, the security level will increase by 5%.",t){case h.TechOrLockedDoor:document.getElementById("infiltration-pickdoor").innerHTML="LockpickAttempt to pick the locked door. You have a "+Object(d.formatNumber)(100*c,2)+"% chance of success. If you succeed, the security level will increased by 1%. If you fail, the security level will increase by 3%.";case h.TechOnly:document.getElementById("infiltration-hacksecurity").innerHTML="HackAttempt to hack and disable the security system. You have a "+Object(d.formatNumber)(100*s,2)+"% chance of success. If you succeed, the security level will increase by 3%. If you fail, the security level will increase by 5%.",document.getElementById("infiltration-destroysecurity").innerHTML="Destroy securityAttempt to violently destroy the security system. You have a "+Object(d.formatNumber)(100*o,2)+"% chance of success. If you succeed, the security level will increase by 5%. If you fail, the security level will increase by 10%. ",document.getElementById("infiltration-sneak").innerHTML="SneakAttempt to sneak past the security system. You have a "+Object(d.formatNumber)(100*l,2)+"% chance of success. If you fail, the security level will increase by 8%. ";break;case h.Bots:document.getElementById("infiltration-kill").innerHTML="Destroy botsAttempt to destroy the security bots through combat. You have a "+Object(d.formatNumber)(100*n,2)+"% chance of success. If you succeed, the security level will increase by 5%. If you fail, the security level will increase by 10%. ",document.getElementById("infiltration-assassinate").innerHTML="Assassinate botsAttempt to stealthily destroy the security bots through assassination. You have a "+Object(d.formatNumber)(100*r,2)+"% chance of success. If you fail, the security level will increase by 10%. ",document.getElementById("infiltration-hacksecurity").innerHTML="Hack botsAttempt to disable the security bots by hacking them. You have a "+Object(d.formatNumber)(100*s,2)+"% chance of success. If you succeed, the security level will increase by 3%. If you fail, the security level will increase by 5%. ",document.getElementById("infiltration-sneak").innerHTML="SneakAttempt to sneak past the security bots. You have a "+Object(d.formatNumber)(100*l,2)+"% chance of success. If you fail, the security level will increase by 8%. ";break;case h.Guards:default:document.getElementById("infiltration-kill").innerHTML="KillAttempt to kill the security guard. You have a "+Object(d.formatNumber)(100*n,2)+"% chance of success. If you succeed, the security level will increase by 5%. If you fail, the security level will decrease by 10%. ",document.getElementById("infiltration-knockout").innerHTML="KnockoutAttempt to knockout the security guard. You have a "+Object(d.formatNumber)(100*a,2)+"% chance of success. If you succeed, the security level will increase by 3%. If you fail, the security level will increase by 10%. ",document.getElementById("infiltration-stealthknockout").innerHTML="Stealth KnockoutAttempt to stealthily knockout the security guard. You have a "+Object(d.formatNumber)(100*i,2)+"% chance of success. If you fail, the security level will increase by 10%. ",document.getElementById("infiltration-assassinate").innerHTML="AssassinateAttempt to assassinate the security guard. You have a "+Object(d.formatNumber)(100*r,2)+"% chance of success. If you fail, the security level will increase by 5%. ",document.getElementById("infiltration-sneak").innerHTML="SneakAttempt to sneak past the security guard. You have a "+Object(d.formatNumber)(100*l,2)+"% chance of success. If you fail, the security level will increase by 8%. ",document.getElementById("infiltration-bribe").innerHTML="BribeAttempt to bribe the security guard. You have a "+Object(d.formatNumber)(100*u,2)+"% chance of success. If you fail, the security level will increase by 15%. "}}p.prototype.gainHackingExp=function(e){isNaN(e)||(this.hackingExpGained+=e)},p.prototype.gainStrengthExp=function(e){isNaN(e)||(this.strExpGained+=e)},p.prototype.gainDefenseExp=function(e){isNaN(e)||(this.defExpGained+=e)},p.prototype.gainDexterityExp=function(e){isNaN(e)||(this.dexExpGained+=e)},p.prototype.gainAgilityExp=function(e){isNaN(e)||(this.agiExpGained+=e)},p.prototype.gainCharismaExp=function(e){isNaN(e)||(this.chaExpGained+=e)},p.prototype.gainIntelligenceExp=function(e){isNaN(e)||(this.intExpGained+=e)};let k=i.a.IntelligenceInfiltrationWeight;function E(e){var t=O(e);return e.gainStrengthExp(e.securityLevel/75),o.a.strength_exp_mult,e.gainDefenseExp(e.securityLevel/75),o.a.defense_exp_mult,e.gainDexterityExp(e.securityLevel/75),o.a.dexterity_exp_mult,e.gainAgilityExp(e.securityLevel/75),o.a.agility_exp_mult,Math.random()<=t?(e.securityLevel*=1.05,[!0,1.05]):(e.securityLevel*=1.1,[!1,1.1])}function O(e){var t=e.securityLevel;return Math.min(.95,(o.a.strength+o.a.dexterity+o.a.agility)/(1.45*t))}function C(e){var t=e.securityLevel;return Math.min(.95,(o.a.strength+o.a.dexterity+o.a.agility)/(1.7*t))}function w(e){var t=e.securityLevel;return Math.min(.95,(.55*o.a.strength+2*o.a.dexterity+2*o.a.agility+k*o.a.intelligence)/(3*t))}function S(e){var t=T(e);return e.gainStrengthExp(e.securityLevel/75),o.a.strength_exp_mult,e.gainDexterityExp(e.securityLevel/55),o.a.dexterity_exp_mult,e.gainAgilityExp(e.securityLevel/55),o.a.agility_exp_mult,Math.random()<=t?[!0,1]:(e.securityLevel*=1.05,[!1,1.05])}function T(e){var t=e.securityLevel;return Math.min(.95,(o.a.dexterity+.5*o.a.agility+k*o.a.intelligence)/(2*t))}function R(e){var t=e.securityLevel;return Math.min(.95,(o.a.strength+o.a.dexterity+o.a.agility)/(2*t))}function x(e){var t=e.securityLevel;return Math.min(.95,(o.a.hacking_skill+k*o.a.intelligence)/t)}function I(e){var t=e.securityLevel;return Math.min(.95,(o.a.agility+.5*o.a.dexterity+k*o.a.intelligence)/(2*t))}function P(e){var t=e.securityLevel;return Math.min(.95,(o.a.dexterity+k*o.a.intelligence)/t)}function N(e){var t=e.securityLevel;return Math.min(.95,o.a.charisma/t)}function A(e){var t=e.securityLevel;return Math.min(.95,(2*o.a.agility+o.a.dexterity+k*o.a.intelligence)/t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clearSelector=function(e){for(let t=e.options.length-1;t>=0;t--)e.remove(t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPowerOfTwo=function(e){return!isNaN(e)&&0!==e&&0==(e&e-1)}},,,,,,,,,,,,,,,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,,,,,,,,function(e,t,n){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var a=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},r.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};a.inherits(r,i),r.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},r.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},r.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=r}),ace.define("ace/mode/netscript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var a=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,r=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*";let s="hack|sleep|grow|weaken|print|tprint|scan|nuke|brutessh|ftpcrack|clearLog|disableLog|enableLog|relaysmtp|httpworm|sqlinject|run|exec|spawn|kill|killall|exit|scp|ls|hasRootAccess|getIp|getHackingMultipliers|getBitNodeMultipliers|getStats|isBusy|getHacknetMultipliers|getHostname|getHackingLevel|getServerMoneyAvailable|getServerMaxMoney|getServerGrowth|getServerSecurityLevel|getServerBaseSecurityLevel|getServerMinSecurityLevel|getServerRequiredHackingLevel|getServerNumPortsRequired|getServerRam|serverExists|fileExists|isRunning|deleteServer|getPurchasedServers|getPurchasedServerLimit|getPurchasedServerMaxRam|getPurchasedServerCost|purchaseServer|round|write|read|peek|clear|rm|getPortHandle|scriptRunning|scriptKill|getScriptName|getScriptRam|getHackTime|getGrowTime|getWeakenTime|getScriptIncome|getScriptExpGain|getTimeSinceLastAug|prompt|universityCourse|getCharacterInformation|gymWorkout|travelToCity|purchaseTor|purchaseProgram|upgradeHomeRam|getUpgradeHomeRamCost|workForCompany|applyToCompany|getCompanyRep|getCompanyFavor|stopAction|getFactionFavor|getFavorToDonate|getFactionFavorGain|getCompanyFavorGain|checkFactionInvitations|joinFaction|workForFaction|getFactionRep|createProgram|commitCrime|getCrimeChance|getOwnedAugmentations|getOwnedSourceFiles|getAugmentationsFromFaction|getAugmentationCost|purchaseAugmentation|installAugmentations|getStockPrice|getStockPosition|buyStock|sellStock|shortStock|sellShort|placeOrder|cancelOrder|hacknet|numNodes|purchaseNode|getPurchaseNodeCost|getNodeStats|upgradeLevel|upgradeRam|upgradeCore|getLevelUpgradeCost|getRamUpgradeCost|getCoreUpgradeCost|bladeburner|getContractNames|getOperationNames|getBlackOpNames|getGeneralActionNames|getSkillNames|startAction|stopBladeburnerAction|getActionTime|getActionEstimatedSuccessChance|getActionCountRemaining|getActionMaxLevel|getActionCurrentLevel|getActionAutolevel|setActionAutolevel|setActionLevel|getRank|getSkillPoints|getSkillLevel|upgradeSkill|getTeamSize|setTeamSize|getCityEstimatedPopulation|getCityEstimatedCommunities|getCityChaos|switchCity|getStamina|joinBladeburnerFaction";var l=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|ns|"+s+"|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),c("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"/|"+s+"|/"},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),c("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),e&&0==e.jsx||function(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var a="/"==e.charAt(1)?2:1;return 1==a?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==a&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==a?"":"end-")+"tag-open.xml",value:e.slice(0,a)},{type:"meta.tag.tag-name.xml",value:e.substr(a)}]},regex:"?"+e,next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,c("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:[0-9]+;)|(?:[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};function c(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}a.inherits(l,r),t.NetscriptHighlightRules=l}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var a=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,r=e.findMatchingBracket({row:t,column:i});if(!r||r.row==t)return 0;var o=this.$getIndent(e.getLine(r.row));e.replace(new a(t,0,t,i-1),o)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var a=e("../../lib/oop"),i=e("../../range").Range,r=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};a.inherits(o,r),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var a=e.getLine(n);if(this.singleLineBlockCommentRe.test(a)&&!this.startRegionRe.test(a)&&!this.tripleStarBlockCommentRe.test(a))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(a)?"start":i},this.getFoldWidgetRange=function(e,t,n,a){var i,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(i=r.match(this.foldingStartMarker)){var o=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,o);var s=e.getCommentFoldRange(n,o+i[0].length,1);return s&&!s.isMultiLine()&&(a?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(i=r.match(this.foldingStopMarker))){o=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),a=n.search(/\S/),r=t,o=n.length,s=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(a==c)break}s=t}}return new i(r,o,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var a=t.search(/\s*$/),r=e.getLength(),o=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++no)return new i(o,a,n,t.length)}}.call(o.prototype)}),ace.define("ace/mode/netscript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/netscript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,a){"use strict";var i=e("../lib/oop"),r=e("./text").Mode,o=e("./netscript_highlight_rules").NetscriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("../worker/worker_client").WorkerClient,c=e("./behaviour/cstyle").CstyleBehaviour,u=e("./folding/cstyle").FoldMode,d=function(){this.HighlightRules=o,this.$outdent=new s,this.$behaviour=new c,this.foldingRules=new u};i.inherits(d,r),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var a=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),r=i.tokens,o=i.state;if(r.length&&"comment"==r[r.length-1].type)return a;if("start"==e||"no_regex"==e)(s=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(a+=n);else if("doc-start"==e){if("start"==o||"no_regex"==o)return"";var s;(s=t.match(/^\s*(\/?)\*/))&&(s[1]&&(a+=" "),a+="* ")}return a},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],n(144),"JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/netscript"}.call(d.prototype),t.Mode=d})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t){}]);
//# sourceMappingURL=engine.bundle.js.map
\ No newline at end of file
diff --git a/dist/engine.css b/dist/engine.css
index f969824d4..609199b6c 100644
--- a/dist/engine.css
+++ b/dist/engine.css
@@ -1,14 +1,20 @@
+* {
+ font-size: 16px;
+ font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; }
+
+*,
+*:before,
+*:after {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ vertical-align: top; }
+
:root {
--my-font-color: #6f3;
--my-background-color: #000;
--my-highlight-color: #fff; }
-* {
- margin: 0;
- padding: 0;
- font-size: 16px;
- font-family: 'Lucida Console', 'Lucida Sans Unicode', 'Fira Mono', 'Consolas', 'Courier New', Courier, monospace, 'Times New Roman'; }
-
body {
background-color: var(--my-background-color); }
@@ -33,6 +39,18 @@ span {
margin: 4px;
padding: 4px; }
+button[type="button"] {
+ -webkit-transform: translateX(-50%);
+ -moz-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ -o-transform: translateX(-50%);
+ transform: translateX(-50%);
+ padding: 0.5rem 1rem;
+ position: absolute;
+ z-index: 1;
+ bottom: 10px;
+ left: 50%; }
+
#entire-game-container {
background-color: transparent; }
@@ -106,7 +124,8 @@ tr:focus {
border: 2px solid #fff; }
/* Make html links ("a" elements) nice looking buttons with this class */
-a:link, a:visited {
+a:link,
+a:visited {
color: #fff; }
.a-link-button {
@@ -407,9 +426,9 @@ a:link, a:visited {
/* Stay in place */
right: 0;
top: 0;
- height: 205px;
+ height: auto;
/* Full height */
- padding: 5px;
+ padding: 8px;
border: 2px solid var(--my-highlight-color);
width: 19%;
overflow: auto;
@@ -419,25 +438,33 @@ a:link, a:visited {
z-index: 1; }
#character-overview-text {
- padding: 4px;
- margin: 8px;
color: #fff;
background-color: #444; }
+.character-stat-text {
+ color: #fff;
+ background-color: #444; }
+
+.character-stat-cell {
+ text-align: right; }
+
#character-overview-save-button,
#character-overview-options-button {
- color: #aaa;
- font-size: 14px;
- font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
- -moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
+ -moz-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
+ color: #aaa;
+ font-size: 14px;
+ font-weight: bold;
height: 22px;
background-color: #000; }
+.character-quick-options {
+ padding-top: 5px; }
+
#character-overview-save-button:hover,
#character-overview-save-button:focus,
#character-overview-options-button:hover,
@@ -510,6 +537,13 @@ a:link, a:visited {
.accordion-panel ul > li {
background-color: #555; }
+/* override the global styling */
+#active-scripts-total-production-active,
+#active-scripts-total-prod-aug-total,
+#active-scripts-total-prod-aug-avg {
+ margin: 0;
+ padding: 0; }
+
#terminal-container {
position: fixed;
margin-left: 10%;
@@ -588,7 +622,7 @@ a:link, a:visited {
padding-bottom: 6px;
border: 2px solid var(--my-highlight-color);
z-index: 1;
- font-family: 'Lucida Console', 'Lucida Sans Unicode', 'Fira Mono', 'Consolas', 'Courier New', Courier, monospace, 'Times New Roman'; }
+ font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; }
.ace_line,
.ace_line * {
@@ -636,6 +670,9 @@ a:link, a:visited {
color: #fff; }
#script-editor-filename {
+ -webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
background-color: #555;
display: inline-block;
float: center;
@@ -643,10 +680,7 @@ a:link, a:visited {
color: #fff;
margin: 4px;
padding: 2px;
- border: 2px solid var(--my-highlight-color);
- -webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1); }
+ border: 2px solid var(--my-highlight-color); }
#script-editor-status {
float: left;
@@ -782,15 +816,15 @@ a:link, a:visited {
margin-left: 5%; }
.active-scripts-button {
- color: #aaa;
- font-size: 16px;
- font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
- -moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
+ -moz-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
+ color: #aaa;
+ font-size: 16px;
+ font-weight: bold;
margin: 4px;
padding: 4px;
background-color: #000; }
@@ -835,13 +869,13 @@ a:link, a:visited {
display: inline-block; }
.hacknet-node {
+ -webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
margin: 6px;
padding: 6px;
width: 34vw;
- border: 2px solid var(--my-highlight-color);
- -webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1); }
+ border: 2px solid var(--my-highlight-color); }
.hacknet-node-container {
display: inline-table; }
@@ -858,8 +892,7 @@ a:link, a:visited {
margin: 0 4px;
/* Don't want the vertical margin/padding, just left & right */
padding: 0 4px;
- width: 48px;
- /* Four times font-size */ }
+ width: 64px; }
.menu-page-text {
width: 70vw; }
@@ -1097,19 +1130,19 @@ a:link, a:visited {
margin: 10px; }
#work-in-progress-cancel-button {
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+ -webkit-box-shadow: 1px 1px 3px #000;
+ -moz-box-shadow: 1px 1px 3px #000;
+ box-shadow: 1px 1px 3px #000;
color: #aaa;
float: left;
font-size: 20px;
font-weight: bold;
- -webkit-border-radius: 12px;
- -moz-border-radius: 12px;
margin: 10px;
padding: 5px;
- border-radius: 12px;
- border: 3px solid #fff;
- -moz-box-shadow: 1px 1px 3px #000;
- -webkit-box-shadow: 1px 1px 3px #000;
- box-shadow: 1px 1px 3px #000; }
+ border: 3px solid #fff; }
#work-in-progress-cancel-button:hover,
#work-in-progress-cancel-button:focus {
@@ -1202,16 +1235,16 @@ a:link, a:visited {
padding: 10px; }
.dialog-box-close-button {
- float: right;
- color: #aaa;
- font-size: 20px;
- font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
- -moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
- box-shadow: 1px 1px 3px #000; }
+ -moz-box-shadow: 1px 1px 3px #000;
+ box-shadow: 1px 1px 3px #000;
+ float: right;
+ color: #aaa;
+ font-size: 20px;
+ font-weight: bold; }
#log-box-close {
position: fixed;
@@ -1271,18 +1304,18 @@ a:link, a:visited {
width: 49%; }
#game-options-close-button {
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+ -webkit-box-shadow: 1px 1px 3px #000;
+ -moz-box-shadow: 1px 1px 3px #000;
+ box-shadow: 1px 1px 3px #000;
color: #aaa;
float: right;
margin: 4px;
padding: 4px;
font-size: 20px;
- font-weight: bold;
- -webkit-border-radius: 12px;
- -moz-border-radius: 12px;
- border-radius: 12px #fff;
- -moz-box-shadow: 1px 1px 3px #000;
- -webkit-box-shadow: 1px 1px 3px #000;
- box-shadow: 1px 1px 3px #000; }
+ font-weight: bold; }
#game-options-close-button:hover,
#game-options-close-button:focus {
@@ -1317,9 +1350,8 @@ a:link, a:visited {
background-color: #444;
/* Fallback color */
color: #fff; }
-
-#interactive-tutorial-container > strong {
- background-color: #444; }
+ #interactive-tutorial-container > strong {
+ background-color: #444; }
#interactive-tutorial-text {
padding: 4px;
@@ -1330,16 +1362,24 @@ a:link, a:visited {
#interactive-tutorial-exit,
#interactive-tutorial-next,
#interactive-tutorial-back {
- color: #aaa;
- font-size: 20px;
- font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
- -moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
+ -moz-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
+ color: #aaa;
+ font-size: 20px;
+ font-weight: bold;
background-color: #000; }
+ #interactive-tutorial-exit:hover, #interactive-tutorial-exit:focus,
+ #interactive-tutorial-next:hover,
+ #interactive-tutorial-next:focus,
+ #interactive-tutorial-back:hover,
+ #interactive-tutorial-back:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer; }
#interactive-tutorial-exit {
float: left; }
@@ -1351,15 +1391,17 @@ a:link, a:visited {
#interactive-tutorial-next {
float: right; }
-#interactive-tutorial-exit:hover,
-#interactive-tutorial-exit:focus,
-#interactive-tutorial-next:hover,
-#interactive-tutorial-next:focus,
-#interactive-tutorial-back:hover,
-#interactive-tutorial-back:focus {
- color: #fff;
- text-decoration: none;
- cursor: pointer; }
+* {
+ font-size: 16px;
+ font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; }
+
+*,
+*:before,
+*:after {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ vertical-align: top; }
@-webkit-keyframes LOADERSPINNER {
0% {
@@ -1461,100 +1503,61 @@ a:link, a:visited {
opacity: 1.0;
transform: translate(-50%, -50%) scale(1); } }
-*, *:before, *:after {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- vertical-align: top; }
-
.loaderoverlay {
position: absolute;
width: 100%;
height: 100%;
- background: white; }
-
-.loaderoverlay .loaderspinner,
-.loaderoverlay .loaderspinner:before,
-.loaderoverlay .loaderspinner:after {
- border: 20px solid rgba(0, 0, 0, 0);
- border-top: 20px solid #ccc;
- border-bottom: 20px solid #ccc;
- border-radius: 1000px;
- position: absolute;
- top: 50%;
- left: 50%; }
-
-.loaderoverlay .loaderspinner:before,
-.loaderoverlay .loaderspinner:after {
- content: ""; }
-
-.loaderoverlay .loaderspinner {
- width: 200px;
- height: 200px;
- -webkit-animation: LOADERSPINNER 5s linear infinite;
- -moz-animation: LOADERSPINNER 5s linear infinite;
- -ms-animation: LOADERSPINNER 5s linear infinite;
- -o-animation: LOADERSPINNER 5s linear infinite;
- animation: LOADERSPINNER 5s linear infinite; }
-
-.loaderoverlay .loaderspinner:before {
- width: 160px;
- height: 160px;
- -webkit-animation: LOADERSPINNER 10s linear infinite;
- -moz-animation: LOADERSPINNER 10s linear infinite;
- -ms-animation: LOADERSPINNER 10s linear infinite;
- -o-animation: LOADERSPINNER 10s linear infinite;
- animation: LOADERSPINNER 10s linear infinite; }
-
-.loaderoverlay .loaderspinner:after {
- width: 120px;
- height: 120px;
- -webkit-animation: LOADERSPINNER 5s linear infinite;
- -moz-animation: LOADERSPINNER 5s linear infinite;
- -ms-animation: LOADERSPINNER 5s linear infinite;
- -o-animation: LOADERSPINNER 5s linear infinite;
- animation: LOADERSPINNER 5s linear infinite; }
-
-.loaderoverlay .loaderlabel {
- color: #6f3;
- text-transform: uppercase;
- font-family: sans-serif;
- font-size: 22px;
- font-weight: 700;
- letter-spacing: 2px;
- position: absolute;
- top: 50%;
- left: 50%;
- -webkit-animation: LOADERLABEL 5s linear infinite;
- -moz-animation: LOADERLABEL 5s linear infinite;
- -ms-animation: LOADERLABEL 5s linear infinite;
- -o-animation: LOADERLABEL 5s linear infinite;
- animation: LOADERLABEL 5s linear infinite; }
-
-button[type="button"] {
- padding: 0.5rem 1rem;
- position: absolute;
- z-index: 1;
- bottom: 10px;
- left: 50%;
- -webkit-transform: translateX(-50%);
- -moz-transform: translateX(-50%);
- -ms-transform: translateX(-50%);
- -o-transform: translateX(-50%);
- transform: translateX(-50%); }
-
-/* Customize */
-.loaderoverlay {
- background: #000; }
-
-.loaderoverlay .loaderspinner,
-.loaderoverlay .loaderspinner:before,
-.loaderoverlay .loaderspinner:after {
- border-top-color: #6f3 !important;
- border-bottom-color: #6f3 !important; }
-
-.loaderoverlay .loaderlabel {
+ background: #000;
color: #6f3; }
+ .loaderoverlay .loaderspinner, .loaderoverlay .loaderspinner:before, .loaderoverlay .loaderspinner:after {
+ border: 20px solid rgba(0, 0, 0, 0);
+ border-top-color: #6f3;
+ border-bottom-color: #6f3;
+ border-radius: 1000px;
+ position: absolute;
+ top: 50%;
+ left: 50%; }
+ .loaderoverlay .loaderspinner:before,
+ .loaderoverlay .loaderspinner:after {
+ content: ""; }
+ .loaderoverlay .loaderspinner {
+ -webkit-animation: LOADERSPINNER 5s linear infinite;
+ -moz-animation: LOADERSPINNER 5s linear infinite;
+ -ms-animation: LOADERSPINNER 5s linear infinite;
+ -o-animation: LOADERSPINNER 5s linear infinite;
+ animation: LOADERSPINNER 5s linear infinite;
+ width: 200px;
+ height: 200px; }
+ .loaderoverlay .loaderspinner:before {
+ -webkit-animation: LOADERSPINNER 10s linear infinite;
+ -moz-animation: LOADERSPINNER 10s linear infinite;
+ -ms-animation: LOADERSPINNER 10s linear infinite;
+ -o-animation: LOADERSPINNER 10s linear infinite;
+ animation: LOADERSPINNER 10s linear infinite;
+ width: 160px;
+ height: 160px; }
+ .loaderoverlay .loaderspinner:after {
+ -webkit-animation: LOADERSPINNER 5s linear infinite;
+ -moz-animation: LOADERSPINNER 5s linear infinite;
+ -ms-animation: LOADERSPINNER 5s linear infinite;
+ -o-animation: LOADERSPINNER 5s linear infinite;
+ animation: LOADERSPINNER 5s linear infinite;
+ width: 120px;
+ height: 120px; }
+ .loaderoverlay .loaderlabel {
+ -webkit-animation: LOADERLABEL 5s linear infinite;
+ -moz-animation: LOADERLABEL 5s linear infinite;
+ -ms-animation: LOADERLABEL 5s linear infinite;
+ -o-animation: LOADERLABEL 5s linear infinite;
+ animation: LOADERLABEL 5s linear infinite;
+ text-transform: uppercase;
+ font-family: sans-serif;
+ font-size: 22px;
+ font-weight: 700;
+ letter-spacing: 2px;
+ position: absolute;
+ top: 50%;
+ left: 50%; }
/* css for Missions */
/* Hacking missions */
@@ -1571,9 +1574,8 @@ button[type="button"] {
width: 100%;
overflow-y: auto;
padding-right: 10px; }
-
-.hack-mission-grid::-webkit-scrollbar {
- display: none; }
+ .hack-mission-grid::-webkit-scrollbar {
+ display: none; }
.hack-mission-node {
z-index: 5;
@@ -1581,16 +1583,15 @@ button[type="button"] {
align-self: center;
justify-self: center;
display: inline-block; }
-
-.hack-mission-node p {
- margin-top: 8px;
- color: #fff;
- font-size: 12px;
- text-align: center;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
+ .hack-mission-node p {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ margin-top: 8px;
+ color: #fff;
+ font-size: 12px;
+ text-align: center; }
.hack-mission-player-node {
color: #fff;
@@ -1605,55 +1606,61 @@ button[type="button"] {
background-color: #f00; }
.hack-mission-cpu-node {
- width: 100%;
- height: 100%;
- -moz-border-radius: 50%;
-webkit-border-radius: 50%;
- border-radius: 50%; }
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ width: 100%;
+ height: 100%; }
.hack-mission-firewall-node {
width: 90%;
height: 100%; }
.hack-mission-database-node {
- width: 100%;
- height: 90%;
-webkit-transform: skew(20deg);
-moz-transform: skew(20deg);
- -o-transform: skew(20deg); }
-
-.hack-mission-database-node p {
- -webkit-transform: skew(-20deg);
- -moz-transform: skew(-20deg);
- -o-transform: skew(-20deg);
- color: #fff;
- font-size: 12px;
- margin-top: 8px;
- text-align: center;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
+ -ms-transform: skew(20deg);
+ -o-transform: skew(20deg);
+ transform: skew(20deg);
+ width: 100%;
+ height: 90%; }
+ .hack-mission-database-node p {
+ -webkit-transform: skew(-20deg);
+ -moz-transform: skew(-20deg);
+ -ms-transform: skew(-20deg);
+ -o-transform: skew(-20deg);
+ transform: skew(-20deg);
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ color: #fff;
+ font-size: 12px;
+ margin-top: 8px;
+ text-align: center; }
.hack-mission-transfer-node {
- width: 100%;
- height: 90%;
-webkit-transform: skew(-20deg);
-moz-transform: skew(-20deg);
- -o-transform: skew(-20deg); }
-
-.hack-mission-transfer-node p {
- -webkit-transform: skew(20deg);
- -moz-transform: skew(20deg);
- -o-transform: skew(20deg);
- color: #fff;
- font-size: 12px;
- margin-top: 8px;
- text-align: center;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
+ -ms-transform: skew(-20deg);
+ -o-transform: skew(-20deg);
+ transform: skew(-20deg);
+ width: 100%;
+ height: 90%; }
+ .hack-mission-transfer-node p {
+ -webkit-transform: skew(20deg);
+ -moz-transform: skew(20deg);
+ -ms-transform: skew(20deg);
+ -o-transform: skew(20deg);
+ transform: skew(20deg);
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ color: #fff;
+ font-size: 12px;
+ margin-top: 8px;
+ text-align: center; }
.hack-mission-spam-node,
.hack-mission-shield-node {
@@ -1769,16 +1776,19 @@ button[type="button"] {
margin: 2px;
padding: 6px;
border-radius: 25px;
- font-size: "12px";
+ font-size: 12px;
color: var(--my-font-color); }
.cmpy-mgmt-upgrade-div:hover {
background-color: #333; }
-#bladeburner-container p,
-#bladeburner-container pre,
+.cmpy-mgmt-advertising-info {
+ font-size: 12px; }
+
#bladeburner-container a,
#bladeburner-container div,
+#bladeburner-container p,
+#bladeburner-container pre,
#bladeburner-container td {
font-size: 13px; }
@@ -1787,28 +1797,25 @@ button[type="button"] {
margin: 7px;
padding: 7px;
white-space: pre-wrap; }
-
-.bladeburner-action pre {
- white-space: pre-wrap; }
+ .bladeburner-action pre {
+ white-space: pre-wrap; }
/* Whatever action is currently active */
.bladeburner-active-action {
border: 4px solid #fff; }
/* Action & Skills panel navigation button */
-.bladeburner-nav-button {
+.bladeburner-nav-button, .bladeburner-nav-button-inactive {
border: 1px solid #fff;
- color: #fff;
- padding: 2px;
- margin: 2px; }
+ margin: 2px;
+ padding: 2px; }
-.bladeburner-nav-button:hover {
- background-color: #3d4044; }
+.bladeburner-nav-button {
+ color: #fff; }
+ .bladeburner-nav-button:hover {
+ background-color: #3d4044; }
.bladeburner-nav-button-inactive {
- border: 1px solid #fff;
- padding: 2px;
- margin: 2px;
text-decoration: none;
background-color: #555;
cursor: default;
diff --git a/dist/vendor.bundle.js b/dist/vendor.bundle.js
index 2f25d6ba5..943dd6e90 100644
--- a/dist/vendor.bundle.js
+++ b/dist/vendor.bundle.js
@@ -1,11 +1,11 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,,,,,,,,,,,,,function(e,t,n){var i,r;
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,,,,,,,,,,,,function(e,t,n){var i,r;
/*! @preserve
* numeral.js
* version : 2.0.6
* author : Adam Draper
* license : MIT
* http://adamwdraper.github.com/Numeral-js/
- */void 0===(r="function"==typeof(i=function(){function e(e,t){this._input=e,this._value=t}var t,n,i={},r={},o={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},s={currentLocale:o.currentLocale,zeroFormat:o.zeroFormat,nullFormat:o.nullFormat,defaultFormat:o.defaultFormat,scalePercentBy100:o.scalePercentBy100};return(t=function(r){var o,a,l,c;if(t.isNumeral(r))o=r.value();else if(0===r||void 0===r)o=0;else if(null===r||n.isNaN(r))o=null;else if("string"==typeof r)if(s.zeroFormat&&r===s.zeroFormat)o=0;else if(s.nullFormat&&r===s.nullFormat||!r.replace(/[^0-9]+/g,"").length)o=null;else{for(a in i)if((c="function"==typeof i[a].regexps.unformat?i[a].regexps.unformat():i[a].regexps.unformat)&&r.match(c)){l=i[a].unformat;break}l=l||t._.stringToNumber,o=l(r)}else o=Number(r)||null;return new e(r,o)}).version="2.0.6",t.isNumeral=function(t){return t instanceof e},t._=n={numberToFormat:function(e,n,i){var o,s,a,l,c,u,h,d=r[t.options.currentLocale],f=!1,p=!1,g=0,m="",v=1e12,y="",b=!1;if(e=e||0,s=Math.abs(e),t._.includes(n,"(")?(f=!0,n=n.replace(/[\(|\)]/g,"")):(t._.includes(n,"+")||t._.includes(n,"-"))&&(c=t._.includes(n,"+")?n.indexOf("+"):0>e?n.indexOf("-"):-1,n=n.replace(/[\+|\-]/g,"")),t._.includes(n,"a")&&(o=!!(o=n.match(/a(k|m|b|t)?/))&&o[1],t._.includes(n," a")&&(m=" "),n=n.replace(new RegExp(m+"a[kmbt]?"),""),s>=v&&!o||"t"===o?(m+=d.abbreviations.trillion,e/=v):v>s&&s>=1e9&&!o||"b"===o?(m+=d.abbreviations.billion,e/=1e9):1e9>s&&s>=1e6&&!o||"m"===o?(m+=d.abbreviations.million,e/=1e6):(1e6>s&&s>=1e3&&!o||"k"===o)&&(m+=d.abbreviations.thousand,e/=1e3)),t._.includes(n,"[.]")&&(p=!0,n=n.replace("[.]",".")),a=e.toString().split(".")[0],l=n.split(".")[1],u=n.indexOf(","),g=(n.split(".")[0].split(",")[0].match(/0/g)||[]).length,l?(t._.includes(l,"[")?(l=(l=l.replace("]","")).split("["),y=t._.toFixed(e,l[0].length+l[1].length,i,l[1].length)):y=t._.toFixed(e,l.length,i),a=y.split(".")[0],y=t._.includes(y,".")?d.delimiters.decimal+y.split(".")[1]:"",p&&0===Number(y.slice(1))&&(y="")):a=t._.toFixed(e,0,i),m&&!o&&Number(a)>=1e3&&m!==d.abbreviations.trillion)switch(a=String(Number(a)/1e3),m){case d.abbreviations.thousand:m=d.abbreviations.million;break;case d.abbreviations.million:m=d.abbreviations.billion;break;case d.abbreviations.billion:m=d.abbreviations.trillion}if(t._.includes(a,"-")&&(a=a.slice(1),b=!0),a.length0;w--)a="0"+a;return u>-1&&(a=a.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+d.delimiters.thousands)),0===n.indexOf(".")&&(a=""),h=a+y+(m||""),f?h=(f&&b?"(":"")+h+(f&&b?")":""):c>=0?h=0===c?(b?"-":"+")+h:h+(b?"-":"+"):b&&(h="-"+h),h},stringToNumber:function(e){var t,n,i,o=r[s.currentLocale],a=e,l={thousand:3,million:6,billion:9,trillion:12};if(s.zeroFormat&&e===s.zeroFormat)n=0;else if(s.nullFormat&&e===s.nullFormat||!e.replace(/[^0-9]+/g,"").length)n=null;else{for(t in n=1,"."!==o.delimiters.decimal&&(e=e.replace(/\./g,"").replace(o.delimiters.decimal,".")),l)if(i=new RegExp("[^a-zA-Z]"+o.abbreviations[t]+"(?:\\)|(\\"+o.currency.symbol+")?(?:\\))?)?$"),a.match(i)){n*=Math.pow(10,l[t]);break}n*=(e.split("-").length+Math.min(e.split("(").length-1,e.split(")").length-1))%2?1:-1,e=e.replace(/[^0-9\.]+/g,""),n*=Number(e)}return n},isNaN:function(e){return"number"==typeof e&&isNaN(e)},includes:function(e,t){return-1!==e.indexOf(t)},insert:function(e,t,n){return e.slice(0,n)+t+e.slice(n)},reduce:function(e,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof t)throw new TypeError(t+" is not a function");var n,i=Object(e),r=i.length>>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;r>o&&!(o in i);)o++;if(o>=r)throw new TypeError("Reduce of empty array with no initial value");n=i[o++]}for(;r>o;o++)o in i&&(n=t(n,i[o],o,i));return n},multiplier:function(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)},correctionFactor:function(){var e=Array.prototype.slice.call(arguments);return e.reduce(function(e,t){var i=n.multiplier(t);return e>i?e:i},1)},toFixed:function(e,t,n,i){var r,o,s,a,l=e.toString().split("."),c=t-(i||0);return r=2===l.length?Math.min(Math.max(l[1].length,c),t):c,s=Math.pow(10,r),a=(n(e+"e+"+r)/s).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),a=a.replace(o,"")),a}},t.options=s,t.formats=i,t.locales=r,t.locale=function(e){return e&&(s.currentLocale=e.toLowerCase()),s.currentLocale},t.localeData=function(e){if(!e)return r[s.currentLocale];if(e=e.toLowerCase(),!r[e])throw new Error("Unknown locale : "+e);return r[e]},t.reset=function(){for(var e in o)s[e]=o[e]},t.zeroFormat=function(e){s.zeroFormat="string"==typeof e?e:null},t.nullFormat=function(e){s.nullFormat="string"==typeof e?e:null},t.defaultFormat=function(e){s.defaultFormat="string"==typeof e?e:"0.0"},t.register=function(e,t,n){if(t=t.toLowerCase(),this[e+"s"][t])throw new TypeError(t+" "+e+" already registered.");return this[e+"s"][t]=n,n},t.validate=function(e,n){var i,r,o,s,a,l,c,u;if("string"!=typeof e&&(e+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",e)),(e=e.trim()).match(/^\d+$/))return!0;if(""===e)return!1;try{c=t.localeData(n)}catch(e){c=t.localeData(t.locale())}return o=c.currency.symbol,a=c.abbreviations,i=c.delimiters.decimal,r="."===c.delimiters.thousands?"\\.":c.delimiters.thousands,!(null!==(u=e.match(/^[^\d]+/))&&(e=e.substr(1),u[0]!==o)||null!==(u=e.match(/[^\d]+$/))&&(e=e.slice(0,-1),u[0]!==a.thousand&&u[0]!==a.million&&u[0]!==a.billion&&u[0]!==a.trillion)||(l=new RegExp(r+"{2}"),e.match(/[^\d.,]/g)||(s=e.split(i)).length>2||(s.length<2?!s[0].match(/^\d+.*\d$/)||s[0].match(l):1===s[0].length?!s[0].match(/^\d+$/)||s[0].match(l)||!s[1].match(/^\d+$/):!s[0].match(/^\d+.*\d$/)||s[0].match(l)||!s[1].match(/^\d+$/))))},t.fn=e.prototype={clone:function(){return t(this)},format:function(e,n){var r,o,a,l=this._value,c=e||s.defaultFormat;if(n=n||Math.round,0===l&&null!==s.zeroFormat)o=s.zeroFormat;else if(null===l&&null!==s.nullFormat)o=s.nullFormat;else{for(r in i)if(c.match(i[r].regexps.format)){a=i[r].format;break}a=a||t._.numberToFormat,o=a(l,c,n)}return o},value:function(){return this._value},input:function(){return this._input},set:function(e){return this._value=Number(e),this},add:function(e){var t=n.correctionFactor.call(null,this._value,e);return this._value=n.reduce([this._value,e],function(e,n,i,r){return e+Math.round(t*n)},0)/t,this},subtract:function(e){var t=n.correctionFactor.call(null,this._value,e);return this._value=n.reduce([e],function(e,n,i,r){return e-Math.round(t*n)},Math.round(this._value*t))/t,this},multiply:function(e){return this._value=n.reduce([this._value,e],function(e,t,i,r){var o=n.correctionFactor(e,t);return Math.round(e*o)*Math.round(t*o)/Math.round(o*o)},1),this},divide:function(e){return this._value=n.reduce([this._value,e],function(e,t,i,r){var o=n.correctionFactor(e,t);return Math.round(e*o)/Math.round(t*o)}),this},difference:function(e){return Math.abs(t(this._value).subtract(e).value())}},t.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),t.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(e,n,i){var r,o=t._.includes(n," BPS")?" ":"";return e*=1e4,n=n.replace(/\s?BPS/,""),r=t._.numberToFormat(e,n,i),t._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"BPS"),r=r.join("")):r=r+o+"BPS",r},unformat:function(e){return+(1e-4*t._.stringToNumber(e)).toFixed(15)}}),function(){var e={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},n={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},i=e.suffixes.concat(n.suffixes.filter(function(t){return e.suffixes.indexOf(t)<0})),r=i.join("|");r="("+r.replace("B","B(?!PS)")+")",t.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(r)},format:function(i,r,o){var s,a,l,c=t._.includes(r,"ib")?n:e,u=t._.includes(r," b")||t._.includes(r," ib")?" ":"";for(r=r.replace(/\s?i?b/,""),s=0;s<=c.suffixes.length;s++)if(a=Math.pow(c.base,s),l=Math.pow(c.base,s+1),null===i||0===i||i>=a&&l>i){u+=c.suffixes[s],a>0&&(i/=a);break}return t._.numberToFormat(i,r,o)+u},unformat:function(i){var r,o,s=t._.stringToNumber(i);if(s){for(r=e.suffixes.length-1;r>=0;r--){if(t._.includes(i,e.suffixes[r])){o=Math.pow(e.base,r);break}if(t._.includes(i,n.suffixes[r])){o=Math.pow(n.base,r);break}}s*=o||1}return s}})}(),t.register("format","currency",{regexps:{format:/(\$)/},format:function(e,n,i){var r,o,s=t.locales[t.options.currentLocale],a={before:n.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:n.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(n=n.replace(/\s?\$\s?/,""),r=t._.numberToFormat(e,n,i),e>=0?(a.before=a.before.replace(/[\-\(]/,""),a.after=a.after.replace(/[\-\)]/,"")):0>e&&!t._.includes(a.before,"-")&&!t._.includes(a.before,"(")&&(a.before="-"+a.before),o=0;o=0;o--)switch(a.after[o]){case"$":r=o===a.after.length-1?r+s.currency.symbol:t._.insert(r,s.currency.symbol,-(a.after.length-(1+o)));break;case" ":r=o===a.after.length-1?r+" ":t._.insert(r," ",-(a.after.length-(1+o)+s.currency.symbol.length-1))}return r}}),t.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(e,n,i){var r="number"!=typeof e||t._.isNaN(e)?"0e+0":e.toExponential(),o=r.split("e");return n=n.replace(/e[\+|\-]{1}0/,""),t._.numberToFormat(Number(o[0]),n,i)+"e"+o[1]},unformat:function(e){var n=t._.includes(e,"e+")?e.split("e+"):e.split("e-"),i=Number(n[0]),r=Number(n[1]);return r=t._.includes(e,"e-")?r*=-1:r,t._.reduce([i,Math.pow(10,r)],function(e,n,i,r){var o=t._.correctionFactor(e,n);return e*o*(n*o)/(o*o)},1)}}),t.register("format","ordinal",{regexps:{format:/(o)/},format:function(e,n,i){var r=t.locales[t.options.currentLocale],o=t._.includes(n," o")?" ":"";return n=n.replace(/\s?o/,""),o+=r.ordinal(e),t._.numberToFormat(e,n,i)+o}}),t.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(e,n,i){var r,o=t._.includes(n," %")?" ":"";return t.options.scalePercentBy100&&(e*=100),n=n.replace(/\s?\%/,""),r=t._.numberToFormat(e,n,i),t._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"%"),r=r.join("")):r=r+o+"%",r},unformat:function(e){var n=t._.stringToNumber(e);return t.options.scalePercentBy100?.01*n:n}}),t.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(e,t,n){var i=Math.floor(e/60/60),r=Math.floor((e-60*i*60)/60),o=Math.round(e-60*i*60-60*r);return i+":"+(10>r?"0"+r:r)+":"+(10>o?"0"+o:o)},unformat:function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}}),t})?i.call(t,n,t,e):i)||(e.exports=r)},,,,,,,,,,,function(e,t,n){"use strict";var i,r,o,s,a,l=9e15,c=1e9,u="0123456789abcdef",h="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",d="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",f={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-l,maxE:l,crypto:!1},p=!0,g="[DecimalError] ",m=g+"Invalid argument: ",v=g+"Precision limit exceeded",y=g+"crypto unavailable",b=Math.floor,w=Math.pow,_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,C=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,x=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,A=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,E=1e7,k=7,S=h.length-1,F=d.length-1,D={};function T(e){var t,n,i,r=e.length-1,o="",s=e[0];if(r>0){for(o+=s,t=1;tn)throw Error(m+e)}function L(e,t,n,i){var r,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,r=0):(r=Math.ceil((t+1)/k),t%=k),o=w(10,k-t),a=e[r]%o|0,null==i?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),s=n<4&&99999==a||n>3&&49999==a||5e4==a||0==a):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[r+1]/o/100|0)==w(10,t-2)-1||(a==o/2||0==a)&&0==(e[r+1]/o/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),s=(i||n<4)&&9999==a||!i&&n>3&&4999==a):s=((i||n<4)&&a+1==o||!i&&n>3&&a+1==o/2)&&(e[r+1]/o/1e3|0)==w(10,t-3)-1,s}function M(e,t,n){for(var i,r,o=[0],s=0,a=e.length;sn-1&&(void 0===o[i+1]&&(o[i+1]=0),o[i+1]+=o[i]/n|0,o[i]%=n)}return o.reverse()}D.absoluteValue=D.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),R(e)},D.ceil=function(){return R(new this.constructor(this),this.e+1,2)},D.comparedTo=D.cmp=function(e){var t,n,i,r,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,c=e.s;if(!s||!a)return l&&c?l!==c?l:s===a?0:!s^l<0?1:-1:NaN;if(!s[0]||!a[0])return s[0]?l:a[0]?-c:0;if(l!==c)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(t=0,n=(i=s.length)<(r=a.length)?i:r;ta[t]^l<0?1:-1;return i===r?0:i>r^l<0?1:-1},D.cosine=D.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=function(e,t){var n,i,r=t.d.length;r<32?(n=Math.ceil(r/3),i=Math.pow(4,-n).toString()):(n=16,i="2.3283064365386962890625e-10");e.precision+=n,t=X(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}(i,Z(i,n)),i.precision=e,i.rounding=t,R(2==a||3==a?n.neg():n,e,t,!0)):new i(1):new i(NaN)},D.cubeRoot=D.cbrt=function(){var e,t,n,i,r,o,s,a,l,c,u=this,h=u.constructor;if(!u.isFinite()||u.isZero())return new h(u);for(p=!1,(o=u.s*Math.pow(u.s*u,1/3))&&Math.abs(o)!=1/0?i=new h(o.toString()):(n=T(u.d),(o=((e=u.e)-n.length+1)%3)&&(n+=1==o||-2==o?"0":"00"),o=Math.pow(n,1/3),e=b((e+1)/3)-(e%3==(e<0?-1:2)),(i=new h(n=o==1/0?"5e"+e:(n=o.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=u.s),s=(e=h.precision)+3;;)if(c=(l=(a=i).times(a).times(a)).plus(u),i=P(c.plus(u).times(a),c.plus(l),s+2,1),T(a.d).slice(0,s)===(n=T(i.d)).slice(0,s)){if("9999"!=(n=n.slice(s-3,s+1))&&(r||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(R(i,e+1,1),t=!i.times(i).times(i).eq(u));break}if(!r&&(R(a,e+1,0),a.times(a).times(a).eq(u))){i=a;break}s+=4,r=1}return p=!0,R(i,e,h.rounding,t)},D.decimalPlaces=D.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=((e=t.length-1)-b(this.e/k))*k,e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},D.dividedBy=D.div=function(e){return P(this,new this.constructor(e))},D.dividedToIntegerBy=D.divToInt=function(e){var t=this.constructor;return R(P(this,new t(e),0,1,1),t.precision,t.rounding)},D.equals=D.eq=function(e){return 0===this.cmp(e)},D.floor=function(){return R(new this.constructor(this),this.e+1,3)},D.greaterThan=D.gt=function(e){return this.cmp(e)>0},D.greaterThanOrEqualTo=D.gte=function(e){var t=this.cmp(e);return 1==t||0===t},D.hyperbolicCosine=D.cosh=function(){var e,t,n,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,i=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,(r=o.d.length)<32?(e=Math.ceil(r/3),t=Math.pow(4,-e).toString()):(e=16,t="2.3283064365386962890625e-10"),o=X(s,1,o.times(t),new s(1),!0);for(var l,c=e,u=new s(8);c--;)l=o.times(o),o=a.minus(l.times(u.minus(l.times(u))));return R(o,s.precision=n,s.rounding=i,!0)},D.hyperbolicSine=D.sinh=function(){var e,t,n,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(r.e,r.sd())+4,o.rounding=1,(i=r.d.length)<3)r=X(o,2,r,r,!0);else{e=(e=1.4*Math.sqrt(i))>16?16:0|e,r=X(o,2,r=r.times(Math.pow(5,-e)),r,!0);for(var s,a=new o(5),l=new o(16),c=new o(20);e--;)s=r.times(r),r=r.times(a.plus(s.times(l.times(s).plus(c))))}return o.precision=t,o.rounding=n,R(r,t,n,!0)},D.hyperbolicTangent=D.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,P(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},D.inverseCosine=D.acos=function(){var e,t=this,n=t.constructor,i=t.abs().cmp(1),r=n.precision,o=n.rounding;return-1!==i?0===i?t.isNeg()?I(n,r,o):new n(0):new n(NaN):t.isZero()?I(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,t=t.asin(),e=I(n,r+4,o).times(.5),n.precision=r,n.rounding=o,e.minus(t))},D.inverseHyperbolicCosine=D.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,p=!1,n=n.times(n).minus(1).sqrt().plus(n),p=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},D.inverseHyperbolicSine=D.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,p=!1,n=n.times(n).plus(1).sqrt().plus(n),p=!0,i.precision=e,i.rounding=t,n.ln())},D.inverseHyperbolicTangent=D.atanh=function(){var e,t,n,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=o.precision,t=o.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?R(new o(r),e,t,!0):(o.precision=n=i-r.e,r=P(r.plus(1),new o(1).minus(r),n+e,1),o.precision=e+4,o.rounding=1,r=r.ln(),o.precision=e,o.rounding=t,r.times(.5))):new o(NaN)},D.inverseSine=D.asin=function(){var e,t,n,i,r=this,o=r.constructor;return r.isZero()?new o(r):(t=r.abs().cmp(1),n=o.precision,i=o.rounding,-1!==t?0===t?((e=I(o,n+4,i).times(.5)).s=r.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=i,r.times(2)))},D.inverseTangent=D.atan=function(){var e,t,n,i,r,o,s,a,l,c=this,u=c.constructor,h=u.precision,d=u.rounding;if(c.isFinite()){if(c.isZero())return new u(c);if(c.abs().eq(1)&&h+4<=F)return(s=I(u,h+4,d).times(.25)).s=c.s,s}else{if(!c.s)return new u(NaN);if(h+4<=F)return(s=I(u,h+4,d).times(.5)).s=c.s,s}for(u.precision=a=h+10,u.rounding=1,e=n=Math.min(28,a/k+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(a/k),i=1,l=c.times(c),s=new u(c),r=c;-1!==e;)if(r=r.times(l),o=s.minus(r.div(i+=2)),r=r.times(l),void 0!==(s=o.plus(r.div(i+=2))).d[t])for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<this.d.length-2},D.isNaN=function(){return!this.s},D.isNegative=D.isNeg=function(){return this.s<0},D.isPositive=D.isPos=function(){return this.s>0},D.isZero=function(){return!!this.d&&0===this.d[0]},D.lessThan=D.lt=function(e){return this.cmp(e)<0},D.lessThanOrEqualTo=D.lte=function(e){return this.cmp(e)<1},D.logarithm=D.log=function(e){var t,n,i,r,o,s,a,l,c=this.constructor,u=c.precision,h=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=this.d,this.s<0||!n||!n[0]||this.eq(1))return new c(n&&!n[0]?-1/0:1!=this.s?NaN:n?0:1/0);if(t)if(n.length>1)o=!0;else{for(r=n[0];r%10==0;)r/=10;o=1!==r}if(p=!1,s=K(this,a=u+5),i=t?$(c,a+10):K(e,a),L((l=P(s,i,a,1)).d,r=u,h))do{if(s=K(this,a+=10),i=t?$(c,a+10):K(e,a),l=P(s,i,a,1),!o){+T(l.d).slice(r+1,r+15)+1==1e14&&(l=R(l,u+1,0));break}}while(L(l.d,r+=10,h));return p=!0,R(l,u,h)},D.minus=D.sub=function(e){var t,n,i,r,o,s,a,l,c,u,h,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN):e=new g(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(c=f.d,d=e.d,a=g.precision,l=g.rounding,!c[0]||!d[0]){if(d[0])e.s=-e.s;else{if(!c[0])return new g(3===l?-0:0);e=new g(f)}return p?R(e,a,l):e}if(n=b(e.e/k),u=b(f.e/k),c=c.slice(),o=u-n){for((h=o<0)?(t=c,o=-o,s=d.length):(t=d,n=u,s=c.length),o>(i=Math.max(Math.ceil(a/k),s)+2)&&(o=i,t.length=1),t.reverse(),i=o;i--;)t.push(0);t.reverse()}else{for((h=(i=c.length)<(s=d.length))&&(s=i),i=0;i0;--i)c[s++]=0;for(i=d.length;i>o;){if(c[--i](s=(o=Math.ceil(a/k))>s?o+1:s+1)&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for((s=c.length)-(r=u.length)<0&&(r=s,n=u,u=c,c=n),t=0;r;)t=(c[--r]=c[r]+u[r]+t)/E|0,c[r]%=E;for(t&&(c.unshift(t),++i),s=c.length;0==c[--s];)c.pop();return e.d=c,e.e=j(c,i),p?R(e,a,l):e},D.precision=D.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(m+e);return n.d?(t=N(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},D.round=function(){var e=this,t=e.constructor;return R(new t(e),e.e+1,t.rounding)},D.sine=D.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=function(e,t){var n,i=t.d.length;if(i<3)return X(e,2,t,t);n=(n=1.4*Math.sqrt(i))>16?16:0|n,t=t.times(Math.pow(5,-n)),t=X(e,2,t,t);for(var r,o=new e(5),s=new e(16),a=new e(20);n--;)r=t.times(t),t=t.times(o.plus(r.times(s.times(r).minus(a))));return t}(i,Z(i,n)),i.precision=e,i.rounding=t,R(a>2?n.neg():n,e,t,!0)):new i(NaN)},D.squareRoot=D.sqrt=function(){var e,t,n,i,r,o,s=this,a=s.d,l=s.e,c=s.s,u=s.constructor;if(1!==c||!a||!a[0])return new u(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(p=!1,0==(c=Math.sqrt(+s))||c==1/0?(((t=T(a)).length+l)%2==0&&(t+="0"),c=Math.sqrt(t),l=b((l+1)/2)-(l<0||l%2),i=new u(t=c==1/0?"1e"+l:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+l)):i=new u(c.toString()),n=(l=u.precision)+3;;)if(i=(o=i).plus(P(s,o,n+2,1)).times(.5),T(o.d).slice(0,n)===(t=T(i.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(R(i,l+1,1),e=!i.times(i).eq(s));break}if(!r&&(R(o,l+1,0),o.times(o).eq(s))){i=o;break}n+=4,r=1}return p=!0,R(i,l,u.rounding,e)},D.tangent=D.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,(n=n.sin()).s=1,n=P(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,R(2==a||4==a?n.neg():n,e,t,!0)):new i(NaN)},D.times=D.mul=function(e){var t,n,i,r,o,s,a,l,c,u=this,h=u.constructor,d=u.d,f=(e=new h(e)).d;if(e.s*=u.s,!(d&&d[0]&&f&&f[0]))return new h(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:d&&f?0*e.s:e.s/0);for(n=b(u.e/k)+b(e.e/k),(l=d.length)<(c=f.length)&&(o=d,d=f,f=o,s=l,l=c,c=s),o=[],i=s=l+c;i--;)o.push(0);for(i=c;--i>=0;){for(t=0,r=l+i;r>i;)a=o[r]+f[i]*d[r-i-1]+t,o[r--]=a%E|0,t=a/E|0;o[r]=(o[r]+t)%E|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=j(o,n),p?R(e,h.precision,h.rounding):e},D.toBinary=function(e,t){return J(this,2,e,t)},D.toDecimalPlaces=D.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(B(e,0,c),void 0===t?t=i.rounding:B(t,0,8),R(n,e+n.e+1,t))},D.toExponential=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=O(i,!0):(B(e,0,c),void 0===t?t=r.rounding:B(t,0,8),n=O(i=R(new r(i),e+1,t),!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},D.toFixed=function(e,t){var n,i,r=this,o=r.constructor;return void 0===e?n=O(r):(B(e,0,c),void 0===t?t=o.rounding:B(t,0,8),n=O(i=R(new o(r),e+r.e+1,t),!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},D.toFraction=function(e){var t,n,i,r,o,s,a,l,c,u,h,d,f=this,g=f.d,v=f.constructor;if(!g)return new v(f);if(c=n=new v(1),s=(o=(t=new v(i=l=new v(0))).e=N(g)-f.e-1)%k,t.d[0]=w(10,s<0?k+s:s),null==e)e=o>0?t:c;else{if(!(a=new v(e)).isInt()||a.lt(c))throw Error(m+a);e=a.gt(t)?o>0?t:c:a}for(p=!1,a=new v(T(g)),u=v.precision,v.precision=o=g.length*k*2;h=P(a,t,0,1,1),1!=(r=n.plus(h.times(i))).cmp(e);)n=i,i=r,r=c,c=l.plus(h.times(r)),l=r,r=t,t=a.minus(h.times(r)),a=r;return r=P(e.minus(n),i,0,1,1),l=l.plus(r.times(c)),n=n.plus(r.times(i)),l.s=c.s=f.s,d=P(c,i,o,1).minus(f).abs().cmp(P(l,n,o,1).minus(f).abs())<1?[c,i]:[l,n],v.precision=u,p=!0,d},D.toHexadecimal=D.toHex=function(e,t){return J(this,16,e,t)},D.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),null==e){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),void 0!==t&&B(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(p=!1,t<4&&(t=[4,5,7,8][t]),n=P(n,e,0,t,1).times(e),p=!0,R(n)):(e.s=n.s,n=e),n},D.toNumber=function(){return+this},D.toOctal=function(e,t){return J(this,8,e,t)},D.toPower=D.pow=function(e){var t,n,i,r,o,s,a=this,l=a.constructor,c=+(e=new l(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new l(w(+a,c));if((a=new l(a)).eq(1))return a;if(i=l.precision,o=l.rounding,e.eq(1))return R(a,i,o);if((t=b(e.e/k))>=e.d.length-1&&(n=c<0?-c:c)<=9007199254740991)return r=z(l,a,n,i),e.s<0?new l(1).div(r):R(r,i,o);if((s=a.s)<0){if(tl.maxE+1||t0?s/0:0):(p=!1,l.rounding=a.s=1,n=Math.min(12,(t+"").length),(r=V(e.times(K(a,i+n)),i)).d&&L((r=R(r,i+5,1)).d,i,o)&&(t=i+10,+T((r=R(V(e.times(K(a,t+n)),t),t+5,1)).d).slice(i+1,i+15)+1==1e14&&(r=R(r,i+1,0))),r.s=s,p=!0,l.rounding=o,R(r,i,o))},D.toPrecision=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=O(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(B(e,1,c),void 0===t?t=r.rounding:B(t,0,8),n=O(i=R(new r(i),e,t),e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n},D.toSignificantDigits=D.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(B(e,1,c),void 0===t?t=n.rounding:B(t,0,8)),R(new n(this),e,t)},D.toString=function(){var e=this,t=e.constructor,n=O(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},D.truncated=D.trunc=function(){return R(new this.constructor(this),this.e+1,1)},D.valueOf=D.toJSON=function(){var e=this,t=e.constructor,n=O(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var P=function(){function e(e,t,n){var i,r=0,o=e.length;for(e=e.slice();o--;)i=e[o]*t+r,e[o]=i%n|0,r=i/n|0;return r&&e.unshift(r),e}function t(e,t,n,i){var r,o;if(n!=i)o=n>i?1:-1;else for(r=o=0;rt[r]?1:-1;break}return o}function n(e,t,n,i){for(var r=0;n--;)e[n]-=r,r=e[n]1;)e.shift()}return function(i,r,o,a,l,c){var u,h,d,f,p,g,m,v,y,w,_,C,x,A,S,F,D,T,B,L,M=i.constructor,P=i.s==r.s?1:-1,O=i.d,j=r.d;if(!(O&&O[0]&&j&&j[0]))return new M(i.s&&r.s&&(O?!j||O[0]!=j[0]:j)?O&&0==O[0]||!j?0*P:P/0:NaN);for(c?(p=1,h=i.e-r.e):(c=E,p=k,h=b(i.e/p)-b(r.e/p)),B=j.length,D=O.length,w=(y=new M(P)).d=[],d=0;j[d]==(O[d]||0);d++);if(j[d]>(O[d]||0)&&h--,null==o?(A=o=M.precision,a=M.rounding):A=l?o+(i.e-r.e)+1:o,A<0)w.push(1),g=!0;else{if(A=A/p+2|0,d=0,1==B){for(f=0,j=j[0],A++;(d