From 445fbd59c706e258c667892c455c3b7f98f8e664 Mon Sep 17 00:00:00 2001
From: DJMatch3000 <35374368+DJMatch3000@users.noreply.github.com>
Date: Fri, 10 Dec 2021 15:45:17 -0500
Subject: [PATCH 1/7] Player Stats ui bugfix
Fixed a mix-up with Bladeburner stats on the Player Stats page
---
src/ui/CharacterStats.tsx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ui/CharacterStats.tsx b/src/ui/CharacterStats.tsx
index 30cb97510..667db7fce 100644
--- a/src/ui/CharacterStats.tsx
+++ b/src/ui/CharacterStats.tsx
@@ -130,10 +130,10 @@ function BladeburnerMults(): React.ReactElement {
return (
);
From f2708e6772ff4962274cbb75b24f9210436cdf4c Mon Sep 17 00:00:00 2001
From: Eric Wright
Date: Sat, 11 Dec 2021 19:22:18 -0600
Subject: [PATCH 2/7] Update bitburner.ns.getweakentime.md
There is a reference to the grow function on line 25. Update to reference weaken.
---
markdown/bitburner.ns.getweakentime.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/markdown/bitburner.ns.getweakentime.md b/markdown/bitburner.ns.getweakentime.md
index 8b0d8d911..1fe6e825d 100644
--- a/markdown/bitburner.ns.getweakentime.md
+++ b/markdown/bitburner.ns.getweakentime.md
@@ -22,7 +22,7 @@ getWeakenTime(host: string): number;
number
-Returns the amount of time in milliseconds it takes to execute the grow Netscript function. Returns Infinity if called on a Hacknet Server.
+Returns the amount of time in milliseconds it takes to execute the weaken Netscript function. Returns Infinity if called on a Hacknet Server.
## Remarks
From 69a9448e47cfd49a81ecfdf7be55fae35285a738 Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 12 Dec 2021 12:46:56 -0500
Subject: [PATCH 3/7] fix typos
---
package-lock.json | 4 ++--
src/Augmentation/AugmentationHelpers.tsx | 4 ++--
src/CotMG/ui/StaneksGiftRoot.tsx | 4 ++--
src/Locations/ui/SpecialLocation.tsx | 6 +++---
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 43408da0c..599d87693 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
"name": "bitburner",
- "version": "1.0.2",
+ "version": "1.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "version": "1.0.2",
+ "version": "1.1.0",
"hasInstallScript": true,
"license": "SEE LICENSE IN license.txt",
"dependencies": {
diff --git a/src/Augmentation/AugmentationHelpers.tsx b/src/Augmentation/AugmentationHelpers.tsx
index 1fa57e33a..94d9acbab 100644
--- a/src/Augmentation/AugmentationHelpers.tsx
+++ b/src/Augmentation/AugmentationHelpers.tsx
@@ -2415,7 +2415,7 @@ function initAugmentations(): void {
repCost: 1e6,
moneyCost: 0,
info:
- "The next evolution is near, A coming together of man and machine. A synthesis greater than the birth of the human " +
+ "The next evolution is near, a coming together of man and machine. A synthesis greater than the birth of the human " +
"organism. Time spent with the gift has allowed for acclimatization of the invasive augment and the toll it takes upon " +
"your frame granting lesser penalty of 5% to all stats.",
prereqs: [AugmentationNames.StaneksGift1],
@@ -2457,7 +2457,7 @@ function initAugmentations(): void {
moneyCost: 0,
info:
"The synthesis of human and machine is nothing to fear. It is our destiny. " +
- "You will become greater than the sum of our parts. As One. Enbrace your gift " +
+ "You will become greater than the sum of our parts. As One. Embrace your gift " +
"fully and wholly free of it's accursed toll. Serenity brings tranquility the form " +
"of no longer suffering a stat penalty. ",
prereqs: [AugmentationNames.StaneksGift2],
diff --git a/src/CotMG/ui/StaneksGiftRoot.tsx b/src/CotMG/ui/StaneksGiftRoot.tsx
index 54c6bcc63..d6038e6d3 100644
--- a/src/CotMG/ui/StaneksGiftRoot.tsx
+++ b/src/CotMG/ui/StaneksGiftRoot.tsx
@@ -22,8 +22,8 @@ export function StaneksGiftRoot({ staneksGift }: IProps): React.ReactElement {
The gift is a grid on which you can place upgrades called fragments. The main type of fragment increases a stat,
like your hacking skill or agility exp. Once a stat fragment is placed it then needs to be charged via scripts
- in order to become useful. The other kind of fragment is called booster fragments. They increase the efficiency
- of the charged happening on fragments neighboring them (no diagonal). Q/E to rotate fragments.
+ in order to become useful. The other kind of fragments are called booster fragments. They increase the
+ efficiency of neighboring fragments them (no diagonal). Q/E to rotate fragments.
{staneksGift.storedCycles > 5 && (
diff --git a/src/Locations/ui/SpecialLocation.tsx b/src/Locations/ui/SpecialLocation.tsx
index 610b53501..83a004c44 100644
--- a/src/Locations/ui/SpecialLocation.tsx
+++ b/src/Locations/ui/SpecialLocation.tsx
@@ -192,9 +192,9 @@ export function SpecialLocation(props: IProps): React.ReactElement {
<>
- Allison "Mother" Stanek: I see you've taken to my creation. So much so it could hardly be recoginized as
- one of my own after your tinkering with it. I see you follow the ways of the MachineGod as I do, and your
- mastery of the gift thus for clearly demonstrates that. My hopes are climbing by the day for you.
+ Allison "Mother" Stanek: I see you've taken to my creation. So much so it could hardly be recognized as
+ one of my own after your tinkering with it. I see you follow the ways of the Machine God as I do, and your
+ mastery of the gift clearly demonstrates that. My hopes are climbing by the day for you.
{symbol}
From c845fb42030c1d56c30d522590bc5128b8a9b99b Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 12 Dec 2021 12:48:42 -0500
Subject: [PATCH 4/7] reload n kill on steam
---
electron/main.js | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/electron/main.js b/electron/main.js
index 8c0d32aa8..fe7f500a9 100644
--- a/electron/main.js
+++ b/electron/main.js
@@ -1,4 +1,4 @@
-const { app, BrowserWindow, Menu, globalShortcut, shell } = require("electron");
+const { app, BrowserWindow, Menu, shell } = require("electron");
const greenworks = require("./greenworks");
if (greenworks.init()) {
@@ -22,12 +22,6 @@ function createWindow() {
win.loadFile("index.html");
win.show();
if (debug) win.webContents.openDevTools();
- globalShortcut.register("f5", function () {
- win.loadFile("index.html");
- });
- globalShortcut.register("f8", function () {
- win.loadFile("index.html", { query: { noScripts: "true" } });
- });
win.webContents.on("new-window", function (e, url) {
// make sure local urls stay in electron perimeter
@@ -55,6 +49,25 @@ function createWindow() {
{ label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" },
],
},
+ {
+ label: "reloads",
+ submenu: [
+ {
+ label: "reload",
+ accelerator: "f5",
+ click: () => {
+ win.loadFile("index.html");
+ },
+ },
+ {
+ label: "reload & kill all scripts",
+ click: () => {
+ win.webContents.forcefullyCrashRenderer();
+ setTimeout(() => win.loadFile("index.html", { query: { noScripts: "true" } }), 5000);
+ },
+ },
+ ],
+ },
]),
);
From eb77bf352c5ccd0ca404f3ed84c78171be72422b Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 12 Dec 2021 12:58:57 -0500
Subject: [PATCH 5/7] fullscreen for steam
---
electron/main.js | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/electron/main.js b/electron/main.js
index fe7f500a9..8c1ab8f19 100644
--- a/electron/main.js
+++ b/electron/main.js
@@ -68,6 +68,22 @@ function createWindow() {
},
],
},
+ {
+ label: "fullscreen",
+ submenu: [
+ {
+ label: "toggle",
+ accelerator: "f9",
+ click: (() => {
+ let full = false;
+ return () => {
+ full = !full;
+ win.setFullScreen(full);
+ };
+ })(),
+ },
+ ],
+ },
]),
);
From cdeabfec0ec3bb2bcbf95101e861ed084a1f3b1c Mon Sep 17 00:00:00 2001
From: Olivier Gagnon
Date: Sun, 12 Dec 2021 13:25:28 -0500
Subject: [PATCH 6/7] Steam enable debug
---
electron/main.js | 12 +++++++++---
main.bundle.js | 4 ++--
main.bundle.js.map | 2 +-
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/electron/main.js b/electron/main.js
index 8c1ab8f19..36c531e3f 100644
--- a/electron/main.js
+++ b/electron/main.js
@@ -12,9 +12,6 @@ const debug = false;
function createWindow() {
const win = new BrowserWindow({
show: false,
- webPreferences: {
- devTools: debug,
- },
});
win.removeMenu();
@@ -84,6 +81,15 @@ function createWindow() {
},
],
},
+ {
+ label: "debug",
+ submenu: [
+ {
+ label: "activate",
+ click: () => win.webContents.openDevTools(),
+ },
+ ],
+ },
]),
);
diff --git a/main.bundle.js b/main.bundle.js
index 73c488d93..0d5982d9a 100644
--- a/main.bundle.js
+++ b/main.bundle.js
@@ -1,4 +1,4 @@
-!function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],m=0,h=[];mObject(o.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();if(void 0!==e.player){if("number"!=typeof e.money)throw new Error("if player if provided, money should be number, contact dev");if(!e.player.canAfford(e.money))return n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}return n.createElement("span",{className:t.money},"number"==typeof e.money?r.a.formatMoney(e.money):e.money)}},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},function(e,t,a){"use strict";function n(e,t){if(null==t)return null;if("object"==typeof t&&"string"==typeof t.ctor&&void 0!==t.data){if("AllServersMap"===t.ctor)return console.warn("Converting AllServersMap for v0.43.1"),t.data;const e=n.constructors[t.ctor];if("function"==typeof e&&"function"==typeof e.fromJSON)return e.fromJSON(t)}return t}function r(e,t,a){a||(a=Object.keys(t));const n={};for(let e=0;e{let t=""+e%1e3;for(;t.length<3;)t="0"+t;return t})();let u="";return n>0&&(u+=n+" days "),i>0&&(u+=i+" hours "),s>0&&(u+=s+" minutes "),u+=(t?`${l}.${c}`:""+l)+" seconds",u}function i(e){if(!o(e))return"";if(0===e.length)return"";const t=e.concat().sort(),a=t[0],n=t[t.length-1],r=a.length;let i=0;for(;i{switch(typeof e){case"number":return e;case"object":return Object(o.a)(e.min,e.max);default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}};for(const e of r.a){const r={hostname:e.hostname,ip:g(),numOpenPortsRequired:e.numOpenPortsRequired,organizationName:e.organizationName};void 0!==e.maxRamExponent&&(r.maxRam=Math.pow(2,i(e.maxRamExponent)));for(const t of a)void 0!==e[t]&&(r[t]=i(e[t]));const o=new n.a(r);for(const t of e.literature||[])o.messages.push(t);o.hostname===c.a.WorldDaemon&&(o.requiredHackingSkill*=u.a.WorldDaemonDifficulty),y(o),void 0!==e.networkLayer&&t[i(e.networkLayer)-1].push(o)}const s=(e,t)=>{for(const r of e)a=r,n=t(),a.serversOnNetwork.push(n.hostname),n.serversOnNetwork.push(a.hostname);var a,n};s(t[0],()=>e);for(let e=1;e{return(a=t[e-1])[Math.floor(Math.random()*a.length)];var a})}function E(){for(const e in m)delete m[e];m={}}function k(e){m=JSON.parse(e,s.c)}function v(){const e=JSON.parse(JSON.stringify(m),s.c);for(const t in e){const a=e[t];for(let e=0;eObject(n.useContext)(i.Player),Router:()=>Object(n.useContext)(i.Router)}},,function(e,t,a){"use strict";function n(e,t){const a=Math.min(e,t),n=Math.max(e,t);return Math.floor(Math.random()*(n-a+1))+a}a.d(t,"a",(function(){return n}))},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a(5),i=a(24),o=a(4),s=a(16),l=a(21);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={info:"",moneyCost:0,name:"",repCost:0}){c(this,"baseCost",0),c(this,"baseRepRequirement",0),c(this,"isSpecial",!1),c(this,"level",0),c(this,"name",""),c(this,"owned",!1),c(this,"prereqs",[]),c(this,"mults",{}),c(this,"startingCost",0),this.name=e.name,this.info=e.info,this.prereqs=e.prereqs?e.prereqs:[],this.baseRepRequirement=e.repCost*r.a.AugmentationRepCost,this.baseCost=e.moneyCost*r.a.AugmentationMoneyCost,this.startingCost=this.baseCost,e.isSpecial&&(this.isSpecial=!0),this.level=0,e.hacking_mult&&(this.mults.hacking_mult=e.hacking_mult),e.strength_mult&&(this.mults.strength_mult=e.strength_mult),e.defense_mult&&(this.mults.defense_mult=e.defense_mult),e.dexterity_mult&&(this.mults.dexterity_mult=e.dexterity_mult),e.agility_mult&&(this.mults.agility_mult=e.agility_mult),e.charisma_mult&&(this.mults.charisma_mult=e.charisma_mult),e.hacking_exp_mult&&(this.mults.hacking_exp_mult=e.hacking_exp_mult),e.strength_exp_mult&&(this.mults.strength_exp_mult=e.strength_exp_mult),e.defense_exp_mult&&(this.mults.defense_exp_mult=e.defense_exp_mult),e.dexterity_exp_mult&&(this.mults.dexterity_exp_mult=e.dexterity_exp_mult),e.agility_exp_mult&&(this.mults.agility_exp_mult=e.agility_exp_mult),e.charisma_exp_mult&&(this.mults.charisma_exp_mult=e.charisma_exp_mult),e.hacking_chance_mult&&(this.mults.hacking_chance_mult=e.hacking_chance_mult),e.hacking_speed_mult&&(this.mults.hacking_speed_mult=e.hacking_speed_mult),e.hacking_money_mult&&(this.mults.hacking_money_mult=e.hacking_money_mult),e.hacking_grow_mult&&(this.mults.hacking_grow_mult=e.hacking_grow_mult),e.company_rep_mult&&(this.mults.company_rep_mult=e.company_rep_mult),e.faction_rep_mult&&(this.mults.faction_rep_mult=e.faction_rep_mult),e.crime_money_mult&&(this.mults.crime_money_mult=e.crime_money_mult),e.crime_success_mult&&(this.mults.crime_success_mult=e.crime_success_mult),e.work_money_mult&&(this.mults.work_money_mult=e.work_money_mult),e.hacknet_node_money_mult&&(this.mults.hacknet_node_money_mult=e.hacknet_node_money_mult),e.hacknet_node_purchase_cost_mult&&(this.mults.hacknet_node_purchase_cost_mult=e.hacknet_node_purchase_cost_mult),e.hacknet_node_ram_cost_mult&&(this.mults.hacknet_node_ram_cost_mult=e.hacknet_node_ram_cost_mult),e.hacknet_node_core_cost_mult&&(this.mults.hacknet_node_core_cost_mult=e.hacknet_node_core_cost_mult),e.hacknet_node_level_cost_mult&&(this.mults.hacknet_node_level_cost_mult=e.hacknet_node_level_cost_mult),e.bladeburner_max_stamina_mult&&(this.mults.bladeburner_max_stamina_mult=e.bladeburner_max_stamina_mult),e.bladeburner_stamina_gain_mult&&(this.mults.bladeburner_stamina_gain_mult=e.bladeburner_stamina_gain_mult),e.bladeburner_analysis_mult&&(this.mults.bladeburner_analysis_mult=e.bladeburner_analysis_mult),e.bladeburner_success_chance_mult&&(this.mults.bladeburner_success_chance_mult=e.bladeburner_success_chance_mult),void 0===e.stats?this.stats=function(e,t,a){const r=(e,t=0)=>e===1.0777-1?"7.77%":e===1.777-1?"77.7%":o.a.formatPercentage(e,t);let i=n.createElement(n.Fragment,null,"Effects:");return e.hacking_mult&&e.hacking_mult==e.strength_mult&&e.hacking_mult==e.defense_mult&&e.hacking_mult==e.dexterity_mult&&e.hacking_mult==e.agility_mult&&e.hacking_mult==e.charisma_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_mult-1)," all skills"):(e.hacking_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_mult-1)," hacking skill")),e.strength_mult&&e.strength_mult==e.defense_mult&&e.strength_mult==e.dexterity_mult&&e.strength_mult==e.agility_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_mult-1)," combat skills"):(e.strength_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_mult-1)," strength skill")),e.defense_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.defense_mult-1)," defense skill")),e.dexterity_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.dexterity_mult-1)," dexterity skill")),e.agility_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.agility_mult-1)," agility skill"))),e.charisma_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.charisma_mult-1)," Charisma skill"))),e.hacking_exp_mult&&e.hacking_exp_mult===e.strength_exp_mult&&e.hacking_exp_mult===e.defense_exp_mult&&e.hacking_exp_mult===e.dexterity_exp_mult&&e.hacking_exp_mult===e.agility_exp_mult&&e.hacking_exp_mult===e.charisma_exp_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," exp for all skills"):(e.hacking_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," hacking exp")),e.strength_exp_mult&&e.strength_exp_mult===e.defense_exp_mult&&e.strength_exp_mult===e.dexterity_exp_mult&&e.strength_exp_mult===e.agility_exp_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," combat exp"):(e.strength_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," strength exp")),e.defense_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.defense_exp_mult-1)," defense exp")),e.dexterity_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.dexterity_exp_mult-1)," dexterity exp")),e.agility_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.agility_exp_mult-1)," agility exp"))),e.charisma_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.charisma_exp_mult-1)," charisma exp"))),e.hacking_speed_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_speed_mult-1)," faster hack(), grow(), and weaken()")),e.hacking_chance_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_chance_mult-1)," hack() success chance")),e.hacking_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_money_mult-1)," hack() power")),e.hacking_grow_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_grow_mult-1)," grow() power")),e.faction_rep_mult&&e.faction_rep_mult===e.company_rep_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions and companies"):(e.faction_rep_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions")),e.company_rep_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.company_rep_mult-1)," reputation from companies"))),e.crime_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.crime_money_mult-1)," crime money")),e.crime_success_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.crime_success_mult-1)," crime success rate")),e.work_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.work_money_mult-1)," work money")),e.hacknet_node_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacknet_node_money_mult-1)," hacknet production")),e.hacknet_node_purchase_cost_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"-",r(-(e.hacknet_node_purchase_cost_mult-1))," hacknet nodes cost")),e.hacknet_node_level_cost_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"-",r(-(e.hacknet_node_level_cost_mult-1))," hacknet nodes upgrade cost")),e.bladeburner_max_stamina_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_max_stamina_mult-1)," Bladeburner Max Stamina")),e.bladeburner_stamina_gain_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_stamina_gain_mult-1)," Bladeburner Stamina gain")),e.bladeburner_analysis_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_analysis_mult-1)," Bladeburner Field Analysis effectiveness")),e.bladeburner_success_chance_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_success_chance_mult-1)," Bladeburner Contracts and Operations success chance")),a&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"Start with ",n.createElement(s.a,{money:a})," after installing Augmentations.")),t&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"Start with ",t.join(" and ")," after installing Augmentations.")),i}(this.mults,e.programs,e.startingMoney):this.stats=e.stats}addToFactions(e){for(let t=0;tr.a.createElement(i.a,l({},e,{classes:{root:c().root,...e.classes}})),m=e=>r.a.createElement(o.a,l({},e,{classes:{root:c().small,...e.classes}}))},function(e,t,a){"use strict";a.d(t,"f",(function(){return n})),a.d(t,"b",(function(){return m})),a.d(t,"e",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return u}));var n,r=a(2),i=a(59),o=a(332);!function(e){e[e.Start=0]="Start",e[e.GoToCharacterPage=1]="GoToCharacterPage",e[e.CharacterPage=2]="CharacterPage",e[e.CharacterGoToTerminalPage=3]="CharacterGoToTerminalPage",e[e.TerminalIntro=4]="TerminalIntro",e[e.TerminalHelp=5]="TerminalHelp",e[e.TerminalLs=6]="TerminalLs",e[e.TerminalScan=7]="TerminalScan",e[e.TerminalScanAnalyze1=8]="TerminalScanAnalyze1",e[e.TerminalScanAnalyze2=9]="TerminalScanAnalyze2",e[e.TerminalConnect=10]="TerminalConnect",e[e.TerminalAnalyze=11]="TerminalAnalyze",e[e.TerminalNuke=12]="TerminalNuke",e[e.TerminalManualHack=13]="TerminalManualHack",e[e.TerminalHackingMechanics=14]="TerminalHackingMechanics",e[e.TerminalGoHome=15]="TerminalGoHome",e[e.TerminalCreateScript=16]="TerminalCreateScript",e[e.TerminalTypeScript=17]="TerminalTypeScript",e[e.TerminalFree=18]="TerminalFree",e[e.TerminalRunScript=19]="TerminalRunScript",e[e.TerminalGoToActiveScriptsPage=20]="TerminalGoToActiveScriptsPage",e[e.ActiveScriptsPage=21]="ActiveScriptsPage",e[e.ActiveScriptsToTerminal=22]="ActiveScriptsToTerminal",e[e.TerminalTailScript=23]="TerminalTailScript",e[e.GoToHacknetNodesPage=24]="GoToHacknetNodesPage",e[e.HacknetNodesIntroduction=25]="HacknetNodesIntroduction",e[e.HacknetNodesGoToWorldPage=26]="HacknetNodesGoToWorldPage",e[e.WorldDescription=27]="WorldDescription",e[e.TutorialPageInfo=28]="TutorialPageInfo",e[e.End=29]="End"}(n||(n={}));const s={currStep:n.Start,isRunning:!1,stepIsDone:{[n.Start]:!1,[n.GoToCharacterPage]:!1,[n.CharacterPage]:!1,[n.CharacterGoToTerminalPage]:!1,[n.TerminalIntro]:!1,[n.TerminalHelp]:!1,[n.TerminalLs]:!1,[n.TerminalScan]:!1,[n.TerminalScanAnalyze1]:!1,[n.TerminalScanAnalyze2]:!1,[n.TerminalConnect]:!1,[n.TerminalAnalyze]:!1,[n.TerminalNuke]:!1,[n.TerminalManualHack]:!1,[n.TerminalHackingMechanics]:!1,[n.TerminalGoHome]:!1,[n.TerminalCreateScript]:!1,[n.TerminalTypeScript]:!1,[n.TerminalFree]:!1,[n.TerminalRunScript]:!1,[n.TerminalGoToActiveScriptsPage]:!1,[n.ActiveScriptsPage]:!1,[n.ActiveScriptsToTerminal]:!1,[n.TerminalTailScript]:!1,[n.GoToHacknetNodesPage]:!1,[n.HacknetNodesIntroduction]:!1,[n.HacknetNodesGoToWorldPage]:!1,[n.WorldDescription]:!1,[n.TutorialPageInfo]:!1,[n.End]:!1}};function l(){s.isRunning=!0}function c(){s.stepIsDone[s.currStep]=!0,s.currStepn.Start&&(s.currStep-=1),o.a.emit()}function m(){s.isRunning=!1,s.currStep=n.Start,r.a.getHomeComputer().messages.push(i.a.HackersStartingHandbook),o.a.emit()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(126),o=a(154),s=a(652),l=a(1174),c=a(32);const u=Object(i.a)(e=>Object(o.a)({modal:{display:"flex",alignItems:"center",justifyContent:"center"},paper:{backgroundColor:e.palette.background.default,border:"2px solid "+e.palette.primary.main,boxShadow:`0px 3px 5px -1px ${e.palette.primary.dark},0px 5px 8px 0px ${e.palette.primary.dark},0px 1px 14px 0px ${e.palette.primary.dark}`,padding:2,maxWidth:"80%",maxHeight:"80%",overflow:"auto","&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"}})),m=e=>{const t=u();return r.a.createElement(s.a,{disableRestoreFocus:!0,disableScrollLock:!0,disableEnforceFocus:!0,disableAutoFocus:!0,open:e.open,onClose:e.onClose,closeAfterTransition:!0,className:t.modal},r.a.createElement(l.a,{in:e.open},r.a.createElement("div",{className:t.paper},r.a.createElement(c.a,{sx:{m:2}},e.children))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));const n=["START","PURCHASE","PRODUCTION","SALE","EXPORT"],r={INITIALSHARES:1e9,SHARESPERPRICEUPDATE:1e6,IssueNewSharesCooldown:216e3,SellSharesCooldown:18e3,CyclesPerMarketCycle:50,CyclesPerIndustryStateCycle:50/n.length,SecsPerMarketCycle:10,Cities:["Aevum","Chongqing","Sector-12","New Tokyo","Ishima","Volhaven"],WarehouseInitialCost:5e9,WarehouseInitialSize:100,WarehouseUpgradeBaseCost:1e9,OfficeInitialCost:4e9,OfficeInitialSize:3,OfficeUpgradeBaseCost:1e9,BribeThreshold:1e14,BribeToRepRatio:1e9,ProductProductionCostRatio:5,DividendMaxPercentage:1,EmployeeSalaryMultiplier:3,CyclesPerEmployeeRaise:400,EmployeeRaiseAmount:50,BaseMaxProducts:3,AllCorporationStates:n,AllMaterials:["Water","Energy","Food","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AI Cores","Real Estate"]}},function(e,t,a){"use strict";a.d(t,"bb",(function(){return Q})),a.d(t,"eb",(function(){return Z})),a.d(t,"fb",(function(){return ee})),a.d(t,"nb",(function(){return te})),a.d(t,"o",(function(){return ae})),a.d(t,"Lb",(function(){return ne})),a.d(t,"qb",(function(){return re})),a.d(t,"Z",(function(){return ie})),a.d(t,"tb",(function(){return oe})),a.d(t,"J",(function(){return se})),a.d(t,"db",(function(){return le})),a.d(t,"r",(function(){return ce})),a.d(t,"ob",(function(){return ue})),a.d(t,"H",(function(){return me})),a.d(t,"K",(function(){return he})),a.d(t,"F",(function(){return pe})),a.d(t,"G",(function(){return de})),a.d(t,"C",(function(){return fe})),a.d(t,"D",(function(){return ge})),a.d(t,"I",(function(){return ye})),a.d(t,"ib",(function(){return be})),a.d(t,"rb",(function(){return Ee})),a.d(t,"hb",(function(){return ke})),a.d(t,"Fb",(function(){return ve})),a.d(t,"gb",(function(){return _e})),a.d(t,"s",(function(){return we})),a.d(t,"Mb",(function(){return Se})),a.d(t,"A",(function(){return Ce})),a.d(t,"Gb",(function(){return xe})),a.d(t,"Ob",(function(){return Oe})),a.d(t,"B",(function(){return Me})),a.d(t,"Eb",(function(){return Te})),a.d(t,"Hb",(function(){return Re})),a.d(t,"Db",(function(){return Ae})),a.d(t,"Bb",(function(){return Pe})),a.d(t,"Ab",(function(){return Ne})),a.d(t,"Cb",(function(){return Ie})),a.d(t,"Nb",(function(){return Fe})),a.d(t,"z",(function(){return De})),a.d(t,"U",(function(){return je})),a.d(t,"T",(function(){return Be})),a.d(t,"W",(function(){return Ge})),a.d(t,"R",(function(){return Le})),a.d(t,"S",(function(){return We})),a.d(t,"P",(function(){return He})),a.d(t,"Q",(function(){return Ue})),a.d(t,"V",(function(){return qe})),a.d(t,"yb",(function(){return Ke})),a.d(t,"v",(function(){return ze})),a.d(t,"x",(function(){return $e})),a.d(t,"xb",(function(){return Ye})),a.d(t,"Ib",(function(){return Ve})),a.d(t,"w",(function(){return Je})),a.d(t,"zb",(function(){return Xe})),a.d(t,"u",(function(){return Qe})),a.d(t,"y",(function(){return Ze})),a.d(t,"vb",(function(){return et})),a.d(t,"Jb",(function(){return tt})),a.d(t,"pb",(function(){return at})),a.d(t,"ab",(function(){return nt})),a.d(t,"f",(function(){return rt})),a.d(t,"O",(function(){return it})),a.d(t,"kb",(function(){return ot})),a.d(t,"m",(function(){return st})),a.d(t,"l",(function(){return lt})),a.d(t,"e",(function(){return ct})),a.d(t,"j",(function(){return ut})),a.d(t,"g",(function(){return mt})),a.d(t,"c",(function(){return ht})),a.d(t,"b",(function(){return pt})),a.d(t,"k",(function(){return dt})),a.d(t,"a",(function(){return ft})),a.d(t,"d",(function(){return gt})),a.d(t,"h",(function(){return yt})),a.d(t,"n",(function(){return bt})),a.d(t,"i",(function(){return Et})),a.d(t,"cb",(function(){return kt})),a.d(t,"lb",(function(){return vt})),a.d(t,"mb",(function(){return _t})),a.d(t,"t",(function(){return wt})),a.d(t,"sb",(function(){return St})),a.d(t,"jb",(function(){return Ct})),a.d(t,"E",(function(){return xt})),a.d(t,"Kb",(function(){return Ot})),a.d(t,"Y",(function(){return Mt})),a.d(t,"q",(function(){return Tt})),a.d(t,"X",(function(){return Rt})),a.d(t,"M",(function(){return At})),a.d(t,"L",(function(){return Pt})),a.d(t,"N",(function(){return Nt})),a.d(t,"ub",(function(){return It})),a.d(t,"p",(function(){return Ft})),a.d(t,"wb",(function(){return Dt}));var n=a(20),r=a(140),i=a(279),o=a(6),s=a(5),l=a(99),c=a(215),u=a(61),m=a(580),h=a(452),p=a(86),d=a(28),f=a(8),g=a(60),y=a(333),b=a(77),E=a(181),k=a(24),v=a(67),_=a(137),w=a(227),S=a(23),C=a(9),x=a(293),O=a(167),M=a(287),T=a(222),R=a(27),A=a(45),P=a(119),N=a(92),I=a(1122),F=a(1123),D=a(323),j=a(74),B=a(447),G=a(356),L=a(85),W=a(4),H=a(338),U=a(15),q=a(22),K=a(104),z=a(16),$=a(0),Y=a.n($),V=a(501),J=a(253),X=a(646);function Q(){const e=Object(P.f)({adminRights:!0,hostname:"home",ip:Object(R.e)(),isConnectedTo:!0,maxRam:8,organizationName:"Home PC",purchasedByPlayer:!0});this.currentServer=N.a.Home,Object(R.a)(e),this.getHomeComputer().programs.push(g.a.NukeProgram.name)}function Z(){this.currentServer=N.a.Home,this.numPeopleKilled=0,this.karma=0,this.hacking=1,this.strength=1,this.defense=1,this.dexterity=1,this.agility=1,this.charisma=1,this.hacking_exp=0,this.strength_exp=0,this.defense_exp=0,this.dexterity_exp=0,this.agility_exp=0,this.charisma_exp=0,this.money=1e3,this.city=S.a.Sector12,this.location=C.a.TravelAgency,this.companyName="",this.jobs={},this.purchasedServers=[],this.factions=[],this.factionInvitations=[],this.queuedAugmentations=[],this.resleeves=[];const e=Math.min(3,j.a[10]+(10===this.bitNodeN?1:0))+this.sleevesFromCovenant;this.sleeves.length>e&&(this.sleeves.length=e);for(let t=this.sleeves.length;t=100?this.sleeves[e].synchronize(this):this.sleeves[e].shockRecovery(this));this.isWorking=!1,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.crimeType="",this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.lastUpdate=(new Date).getTime(),this.playtimeSinceLastAug=0,this.scriptProdSinceLastAug=0,this.moneySourceA.reset(),this.hacknetNodes.length=0,this.hashManager.prestige(),this.reapplyAllAugmentations(!0),this.hp=this.max_hp}function ee(){this.prestigeAugmentation();for(let e=0;e0?this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)):this.intelligence=0;const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}function re(){this.hacking_chance_mult=1,this.hacking_speed_mult=1,this.hacking_money_mult=1,this.hacking_grow_mult=1,this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.hacknet_node_money_mult=1,this.hacknet_node_purchase_cost_mult=1,this.hacknet_node_ram_cost_mult=1,this.hacknet_node_core_cost_mult=1,this.hacknet_node_level_cost_mult=1,this.work_money_mult=1,this.bladeburner_max_stamina_mult=1,this.bladeburner_stamina_gain_mult=1,this.bladeburner_analysis_mult=1,this.bladeburner_success_chance_mult=1}function ie(e){const t=this.getHomeComputer();if(null==t)return!1;for(let a=0;a=e}function ue(e,t){this.moneySourceA instanceof H.a||(console.warn("Player.moneySourceA was not properly initialized. Resetting"),this.moneySourceA=new H.a),this.moneySourceB instanceof H.a||(console.warn("Player.moneySourceB was not properly initialized. Resetting"),this.moneySourceB=new H.a),this.moneySourceA.record(e,t),this.moneySourceB.record(e,t)}function me(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainHackingExp()"):(this.hacking_exp+=e,this.hacking_exp<0&&(this.hacking_exp=0),this.hacking=Object(O.b)(this.hacking_exp,this.hacking_mult*s.a.HackingLevelMultiplier))}function he(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainStrengthExp()"):(this.strength_exp+=e,this.strength_exp<0&&(this.strength_exp=0),this.strength=Object(O.b)(this.strength_exp,this.strength_mult*s.a.StrengthLevelMultiplier))}function pe(e){isNaN(e)?console.error("ERR: NaN passed into player.gainDefenseExp()"):(this.defense_exp+=e,this.defense_exp<0&&(this.defense_exp=0),this.defense=Object(O.b)(this.defense_exp,this.defense_mult*s.a.DefenseLevelMultiplier))}function de(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainDexterityExp()"):(this.dexterity_exp+=e,this.dexterity_exp<0&&(this.dexterity_exp=0),this.dexterity=Object(O.b)(this.dexterity_exp,this.dexterity_mult*s.a.DexterityLevelMultiplier))}function fe(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainAgilityExp()"):(this.agility_exp+=e,this.agility_exp<0&&(this.agility_exp=0),this.agility=Object(O.b)(this.agility_exp,this.agility_mult*s.a.AgilityLevelMultiplier))}function ge(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainCharismaExp()"):(this.charisma_exp+=e,this.charisma_exp<0&&(this.charisma_exp=0),this.charisma=Object(O.b)(this.charisma_exp,this.charisma_mult*s.a.CharismaLevelMultiplier))}function ye(e){isNaN(e)?console.error("ERROR: NaN passed into Player.gainIntelligenceExp()"):(j.a[5]>0||this.intelligence>0)&&(this.intelligence_exp+=e,this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)))}function be(e){const t=e.toLowerCase();return t.includes("hack")?this.hacking:t.includes("str")?this.strength:t.includes("def")?this.defense:t.includes("dex")?this.dexterity:t.includes("agi")?this.agility:t.includes("cha")?this.charisma:t.includes("int")?this.intelligence:0}function Ee(e,t,a){this.workType!==f.a.WorkTypeFaction&&e===this.workType&&t===this.companyName||e===this.workType&&t===this.currentWorkFactionName&&a===this.factionWorkType||(this.isWorking&&this.singularityStopWork(),this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workMoneyLossRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.timeWorkedCreateProgram=0,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.workType="")}function ke(e=1){let t=1;this.hasAugmentation(o.a.NeuroreceptorManager)||(t=this.focus?1:f.a.BaseFocusBonus);const a=t*this.workHackExpGainRate*e,n=t*this.workStrExpGainRate*e,r=t*this.workDefExpGainRate*e,i=t*this.workDexExpGainRate*e,s=t*this.workAgiExpGainRate*e,l=t*this.workChaExpGainRate*e,c=(this.workMoneyGainRate-this.workMoneyLossRate)*e;this.gainHackingExp(a),this.gainStrengthExp(n),this.gainDefenseExp(r),this.gainDexterityExp(i),this.gainAgilityExp(s),this.gainCharismaExp(l),this.gainMoney(c,this.className?"class":"work"),this.workHackExpGained+=a,this.workStrExpGained+=n,this.workDefExpGained+=r,this.workDexExpGained+=i,this.workAgiExpGained+=s,this.workChaExpGained+=l,this.workRepGained+=t*this.workRepGainRate*e,this.workMoneyGained+=t*this.workMoneyGainRate*e,this.workMoneyGained-=t*this.workMoneyLossRate*e}function ve(e,t){this.resetWorkStatus(f.a.WorkTypeCompany,t),this.isWorking=!0,this.focus=!0,this.companyName=t,this.workType=f.a.WorkTypeCompany,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours,e.toWork()}function _e(e,t=1){this.isWorking&&(this.workType==f.a.WorkTypeFaction?this.workForFaction(t)&&e.toFaction():this.workType==f.a.WorkTypeCreateProgram?this.createProgramWork(t)&&e.toTerminal():this.workType==f.a.WorkTypeStudyClass?this.takeClass(t)&&e.toCity():this.workType==f.a.WorkTypeCrime?this.commitCrime(t)&&e.toLocation(w.a[C.a.Slums]):this.workType==f.a.WorkTypeCompanyPartTime?this.workPartTime(t)&&e.toCity():this.work(t)&&e.toCity())}function we(){const e=V.a.find(e=>e.specialName===this.companyName);if(!e)return.5;const t=Object(R.d)(e.hostname);return t instanceof A.a&&t&&t.backdoorInstalled?.75:.5}function Se(e){let t=!1;this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.processWorkEarnings(e);const a=u.a[this.companyName];return Object(B.a)(a,this.workRepGainRate,e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWork(!1),!0)}function Ce(e,t=!1){e&&(this.workRepGained*=this.cancelationPenalty());u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();let a=Y.a.createElement(Y.a.Fragment,null,"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null));if(a=e?Y.a.createElement(Y.a.Fragment,null,"You worked a short shift of ",Object(q.b)(this.timeWorked)," ",Y.a.createElement("br",null),Y.a.createElement("br",null),"Since you cancelled your work early, you only gained half of the reputation you earned. ",Y.a.createElement("br",null),Y.a.createElement("br",null),a):Y.a.createElement(Y.a.Fragment,null,"You worked a full shift of 8 hours! ",Y.a.createElement("br",null),Y.a.createElement("br",null),a),t||Object(U.a)(a),this.isWorking=!1,this.resetWorkStatus(),t){return"You worked a short shift of "+Object(q.b)(this.timeWorked)+" and earned $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp."}return""}function xe(e,t){this.resetWorkStatus(f.a.WorkTypeCompanyPartTime,t),this.isWorking=!0,this.focus=!0,this.companyName=t,this.workType=f.a.WorkTypeCompanyPartTime,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours,e.toWork()}function Oe(e){let t=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.processWorkEarnings(e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWorkPartTime(),!0)}function Me(e=!1){u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();const t=Y.a.createElement(Y.a.Fragment,null,"You worked for ",Object(q.b)(this.timeWorked),Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null));if(e||Object(U.a)(t),this.isWorking=!1,this.resetWorkStatus(),e){return"You worked for "+Object(q.b)(this.timeWorked)+" and earned a total of $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp"}return""}function Te(){this.focus=!0}function Re(){this.focus=!1}function Ae(e,t){let a=1+t.favor/100;isNaN(a)&&(a=1),this.workRepGainRate*=a,this.workRepGainRate*=s.a.FactionWorkRepGain,this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeFaction,this.currentWorkFactionName=t.name,this.timeNeededToCompleteWork=f.a.MillisecondsPer20Hours,e.toWork()}function Pe(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkHacking),this.workHackExpGainRate=.15*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.c)(this,t),this.factionWorkType=f.a.FactionWorkHacking,this.currentWorkFactionDescription="carrying out hacking contracts",this.startFactionWork(e,t)}function Ne(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkField),this.workHackExpGainRate=.1*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.1*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.1*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.1*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.1*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=.1*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.a)(this,t),this.factionWorkType=f.a.FactionWorkField,this.currentWorkFactionDescription="carrying out field missions",this.startFactionWork(e,t)}function Ie(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkSecurity),this.workHackExpGainRate=.05*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.15*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.15*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.15*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.15*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=0*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.b)(this,t),this.factionWorkType=f.a.FactionWorkSecurity,this.currentWorkFactionDescription="performing security detail",this.startFactionWork(e,t)}function Fe(e){const t=k.a[this.currentWorkFactionName];switch(this.factionWorkType){case f.a.FactionWorkHacking:this.workRepGainRate=Object(T.c)(this,t);break;case f.a.FactionWorkField:this.workRepGainRate=Object(T.a)(this,t);break;case f.a.FactionWorkSecurity:this.workRepGainRate=Object(T.b)(this,t)}let a=1+t.favor/100;isNaN(a)&&(a=1),this.workRepGainRate*=a,this.workRepGainRate*=s.a.FactionWorkRepGain;let n=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer20Hours&&(n=!0,e=Math.round((f.a.MillisecondsPer20Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.processWorkEarnings(e),!!(n||this.timeWorked>=f.a.MillisecondsPer20Hours)&&(this.finishFactionWork(!1),!0)}function De(e,t=!1){const a=k.a[this.currentWorkFactionName];if(a.playerReputation+=this.workRepGained,this.updateSkillLevels(),t||Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"You worked for your faction ",a.name," for a total of ",Object(q.b)(this.timeWorked)," ",Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the faction ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null))),this.isWorking=!1,this.resetWorkStatus(),t){return"You worked for your faction "+a.name+" for a total of "+Object(q.b)(this.timeWorked)+". You earned "+W.a.formatReputation(this.workRepGained)+" rep, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, and "+W.a.formatExp(this.workChaExpGained)+" cha exp."}return""}function je(){let e=1;const t=u.a[this.companyName];j.a[11]>0&&(e=1+t.favor/100);const a=this.jobs[this.companyName],n=p.a[a];return null==n?(console.error(`Could not find CompanyPosition object for ${a}. Work salary will be 0`),0):n.baseSalary*t.salaryMultiplier*this.work_money_mult*s.a.CompanyWorkMoney*e}function Be(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work hack exp gain will be 0"].join(" ")),0):a.hackingExpGain*e.expMultiplier*this.hacking_exp_mult*s.a.CompanyWorkExpGain}function Ge(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work str exp gain will be 0"].join(" ")),0):a.strengthExpGain*e.expMultiplier*this.strength_exp_mult*s.a.CompanyWorkExpGain}function Le(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work def exp gain will be 0"].join(" ")),0):a.defenseExpGain*e.expMultiplier*this.defense_exp_mult*s.a.CompanyWorkExpGain}function We(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work dex exp gain will be 0"].join(" ")),0):a.dexterityExpGain*e.expMultiplier*this.dexterity_exp_mult*s.a.CompanyWorkExpGain}function He(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work agi exp gain will be 0"].join(" ")),0):a.agilityExpGain*e.expMultiplier*this.agility_exp_mult*s.a.CompanyWorkExpGain}function Ue(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work cha exp gain will be 0"].join(" ")),0):a.charismaExpGain*e.expMultiplier*this.charisma_exp_mult*s.a.CompanyWorkExpGain}function qe(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];if(null==e||null==a)return console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work rep gain will be 0"].join(" ")),0;let n=a.calculateJobPerformance(this.hacking,this.strength,this.defense,this.dexterity,this.agility,this.charisma);n+=this.intelligence/f.a.MaxSkillLevel;let r=1+e.favor/100;return isNaN(r)&&(r=1),n*this.company_rep_mult*r}function Ke(e,t,a,n){this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeCreateProgram,this.createProgramReqLvl=n,this.timeNeededToCompleteWork=a;for(let e=0;e=100)break;this.timeWorkedCreateProgram=n/100*this.timeNeededToCompleteWork,this.getHomeComputer().programs.splice(e,1)}}this.createProgramName=t,e.toWork()}function ze(e){const t=this.createProgramReqLvl;let a=this.hacking/t*this.getIntelligenceBonus(3);return a=1+(a-1)/5,this.timeWorked+=f.a._idleSpeed*e,this.timeWorkedCreateProgram+=f.a._idleSpeed*e*a,this.timeWorkedCreateProgram>=this.timeNeededToCompleteWork&&(this.finishCreateProgramWork(!1),!0)}function $e(e){const t=this.createProgramName;if(!1===e)Object(U.a)("You've finished creating "+t+"!
The new program can be found on your home computer."),this.getHomeComputer().programs.push(t);else{const e=t+"-"+(Math.floor(this.timeWorkedCreateProgram/this.timeNeededToCompleteWork*1e4)/100).toString()+"%-INC";this.getHomeComputer().programs.push(e)}return e||this.gainIntelligenceExp(f.a.IntelligenceProgramBaseExpGain*this.timeWorked/1e3),this.isWorking=!1,this.resetWorkStatus(),"You've finished creating "+t+"! The new program can be found on your home computer."}function Ye(e,t,a,n){this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeStudyClass,this.workCostMult=t,this.workExpMult=a,this.className=n;const r=Object(X.a)(this);this.workMoneyLossRate=r.workMoneyLossRate,this.workHackExpGainRate=r.workHackExpGainRate,this.workStrExpGainRate=r.workStrExpGainRate,this.workDefExpGainRate=r.workDefExpGainRate,this.workDexExpGainRate=r.workDexExpGainRate,this.workAgiExpGainRate=r.workAgiExpGainRate,this.workChaExpGainRate=r.workChaExpGainRate,e.toWork()}function Ve(e){this.timeWorked+=f.a._idleSpeed*e;const t=Object(X.a)(this);return this.workMoneyLossRate=t.workMoneyLossRate,this.workHackExpGainRate=t.workHackExpGainRate,this.workStrExpGainRate=t.workStrExpGainRate,this.workDefExpGainRate=t.workDefExpGainRate,this.workDexExpGainRate=t.workDexExpGainRate,this.workAgiExpGainRate=t.workAgiExpGainRate,this.workChaExpGainRate=t.workChaExpGainRate,this.processWorkEarnings(e),!1}function Je(e=!1){if(this.gainIntelligenceExp(f.a.IntelligenceClassBaseExpGain*Math.round(this.timeWorked/1e3)),this.workMoneyGained>0)throw new Error("ERR: Somehow gained money while taking class");if(this.updateSkillLevels(),e||Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"After ",this.className," for ",Object(q.b)(this.timeWorked),", ",Y.a.createElement("br",null),"you spent a total of ",Y.a.createElement(z.a,{money:-this.workMoneyGained}),". ",Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null))),this.isWorking=!1,e){const e="After "+this.className+" for "+Object(q.b)(this.timeWorked)+", you spent a total of "+W.a.formatMoney(-1*this.workMoneyGained)+". You earned a total of: "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp";return this.resetWorkStatus(),e}return this.resetWorkStatus(),""}function Xe(e,t,a,n,r,i,o,l,c,u,m=null){this.crimeType=t,this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeCrime,null!==m&&(this.committingCrimeThruSingFn=!0,this.singFnCrimeWorkerScript=m),this.workHackExpGained=a*this.hacking_exp_mult*s.a.CrimeExpGain,this.workStrExpGained=n*this.strength_exp_mult*s.a.CrimeExpGain,this.workDefExpGained=r*this.defense_exp_mult*s.a.CrimeExpGain,this.workDexExpGained=i*this.dexterity_exp_mult*s.a.CrimeExpGain,this.workAgiExpGained=o*this.agility_exp_mult*s.a.CrimeExpGain,this.workChaExpGained=l*this.charisma_exp_mult*s.a.CrimeExpGain,this.workMoneyGained=c*this.crime_money_mult*s.a.CrimeMoney,this.timeNeededToCompleteWork=u,e.toWork()}function Qe(e){return this.timeWorked+=f.a._idleSpeed*e,this.timeWorked>=this.timeNeededToCompleteWork&&(this.finishCrime(!1),!0)}function Ze(e){if(!e){if(Object(y.a)(this,this.crimeType)){let e=null;for(const t in b.a)if(b.a[t].type==this.crimeType){e=b.a[t];break}if(null==e)return Object(U.a)(`ERR: Unrecognized crime type (${this.crimeType}). This is probably a bug please contact the developer`),"";this.gainMoney(this.workMoneyGained,"crime"),this.karma-=e.karma,this.numPeopleKilled+=e.kills,e.intelligence_exp>0&&this.gainIntelligenceExp(e.intelligence_exp),this.workHackExpGained*=2,this.workStrExpGained*=2,this.workDefExpGained*=2,this.workDexExpGained*=2,this.workAgiExpGained*=2,this.workChaExpGained*=2;const t=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==t?null==t.disableLogs.ALL&&null==t.disableLogs.commitCrime&&t.scriptRef.log("SUCCESS: Crime successful! Gained "+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"Crime successful!",Y.a.createElement("br",null),Y.a.createElement("br",null),"You gained:",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}else{this.workHackExpGained/=2,this.workStrExpGained/=2,this.workDefExpGained/=2,this.workDexExpGained/=2,this.workAgiExpGained/=2,this.workChaExpGained/=2;const e=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==e?null==e.disableLogs.ALL&&null==e.disableLogs.commitCrime&&e.scriptRef.log("FAIL: Crime failed! Gained "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"Crime failed!",Y.a.createElement("br",null),Y.a.createElement("br",null),"You gained:",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}this.gainHackingExp(this.workHackExpGained),this.gainStrengthExp(this.workStrExpGained),this.gainDefenseExp(this.workDefExpGained),this.gainDexterityExp(this.workDexExpGained),this.gainAgilityExp(this.workAgiExpGained),this.gainCharismaExp(this.workChaExpGained)}return this.committingCrimeThruSingFn=!1,this.singFnCrimeWorkerScript=null,this.isWorking=!1,this.crimeType="",this.resetWorkStatus(),""}function et(){if(!this.isWorking)return"";let e="";switch(this.workType){case f.a.WorkTypeStudyClass:e=this.finishClass(!0);break;case f.a.WorkTypeCompany:e=this.finishWork(!0,!0);break;case f.a.WorkTypeCompanyPartTime:e=this.finishWorkPartTime(!0);break;case f.a.WorkTypeFaction:e=this.finishFactionWork(!0,!0);break;case f.a.WorkTypeCreateProgram:e=this.finishCreateProgramWork(!0);break;case f.a.WorkTypeCrime:e=this.finishCrime(!0);break;default:return console.error(`Unrecognized work type (${this.workType})`),""}return e}function tt(e){return"number"!=typeof e?(console.warn("Player.takeDamage() called without a numeric argument: "+e),!1):(this.hp-=e,this.hp<=0&&(this.hospitalize(),!0))}function at(e){"number"==typeof e?(this.hp+=e,this.hp>this.max_hp&&(this.hp=this.max_hp)):console.warn("Player.regenerateHp() called without a numeric argument: "+e)}function nt(){const e=Object(G.b)(this);return J.b.emit("You've been Hospitalized for "+W.a.formatMoney(e),"warning"),this.loseMoney(e,"hospitalization"),this.hp=this.max_hp,e}function rt(e,t=!1){let a=null;""!==this.companyName&&(a=u.a[this.companyName]);const n=this.jobs[this.companyName],r=u.a[this.location];if(!(r instanceof c.a))return console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`),!1;let i=e;if(!this.isQualified(r,i)){const e=Object(h.a)(r,i);return t||Object(U.a)("Unforunately, you do not qualify for this position
"+e),!1}for(;;){const e=Object(m.a)(i);if(null==e)break;if(!r.hasPosition(e))break;if(!this.isQualified(r,e))break;i=e}if(null!=a&&a.name==r.name&&i.name==n){const e=Object(m.a)(i);if(null==e)return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1;if(r.hasPosition(e)){if(!t){const t=Object(h.a)(r,e);Object(U.a)("Unfortunately, you do not qualify for a promotion
"+t)}return!1}return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1}return this.jobs[r.name]=i.name,!this.focus&&this.isWorking&&this.companyName!==this.location&&this.resetWorkStatus(),this.companyName=this.location,t||Object(U.a)("Congratulations! You were offered a new job at "+this.companyName+" as a "+i.name+"!"),!0}function it(e,t){let a=null;if(""!==this.companyName&&(a=u.a[this.companyName]),null==a||a.name!=e.name)return t;const n=this.jobs[this.companyName],r=p.a[n];return r.isSoftwareJob()&&t.isSoftwareJob()||r.isITJob()&&t.isITJob()||r.isBusinessJob()&&t.isBusinessJob()||r.isSecurityEngineerJob()&&t.isSecurityEngineerJob()||r.isNetworkEngineerJob()&&t.isNetworkEngineerJob()||r.isSecurityJob()&&t.isSecurityJob()||r.isAgentJob()&&t.isAgentJob()||r.isSoftwareConsultantJob()&&t.isSoftwareConsultantJob()||r.isBusinessConsultantJob()&&t.isBusinessConsultantJob()||r.isPartTimeJob()&&t.isPartTimeJob()?Object(m.a)(r):t}function ot(e){this.isWorking=!1,this.companyName="",delete this.jobs[e]}function st(e=!1){return this.applyForJob(p.a[d.j[0]],e)}function lt(e=!1){return this.applyForJob(p.a[d.k[0]],e)}function ct(e=!1){return this.applyForJob(p.a[d.d[0]],e)}function ut(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.i[0]])?this.applyForJob(p.a[d.i[0]],e):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function mt(e=!1){const t=u.a[this.location];if(this.isQualified(t,p.a[d.f[0]])){const t=p.a[d.f[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function ht(e=!1){return this.applyForJob(p.a[d.b[0]],e)}function pt(e=!1){return this.applyForJob(p.a[d.c[0]],e)}function dt(e=!1){return this.applyForJob(p.a[d.h[2]],e)}function ft(e=!1){const t=u.a[this.location];if(this.isQualified(t,p.a[d.a[0]])){const t=p.a[d.a[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function gt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.e[1]])?(this.companyName=t.name,this.jobs[t.name]=d.e[1],e||Object(U.a)("Congratulations, you are now employed at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function yt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.g[1]])?(this.jobs[t.name]=d.g[1],e||Object(U.a)("Congratulations, you are now employed part-time at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function bt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.e[0]])?(this.companyName=t.name,this.jobs[t.name]=d.e[0],e||Object(U.a)("Congratulations, you are now employed as a waiter at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function Et(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.g[0]])?(this.companyName=t.name,this.jobs[t.name]=d.g[0],e||Object(U.a)("Congratulations, you are now employed as a part-time waiter at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function kt(e,t){const a=e.jobStatReqOffset,n=t.requiredHacking>0?t.requiredHacking+a:0,r=t.requiredStrength>0?t.requiredStrength+a:0,i=t.requiredDefense>0?t.requiredDefense+a:0,o=t.requiredDexterity>0?t.requiredDexterity+a:0,s=t.requiredDexterity>0?t.requiredDexterity+a:0,l=t.requiredCharisma>0?t.requiredCharisma+a:0;return this.hacking>=n&&this.strength>=r&&this.defense>=i&&this.dexterity>=o&&this.agility>=s&&this.charisma>=l&&e.playerReputation>=t.requiredReputation}function vt(e=!0){e&&this.resetMultipliers();for(let e=0;et}const i=k.a.Illuminati;!i.isBanned&&!i.isMember&&!i.alreadyInvited&&t>=30&&this.money>=15e10&&this.hacking>=1500&&this.strength>=1200&&this.defense>=1200&&this.dexterity>=1200&&this.agility>=1200&&e.push(i);const o=k.a.Daedalus;!o.isBanned&&!o.isMember&&!o.alreadyInvited&&t>=Math.round(30*s.a.DaedalusAugsRequirement)&&this.money>=1e11&&(this.hacking>=2500||this.strength>=1500&&this.defense>=1500&&this.dexterity>=1500&&this.agility>=1500)&&e.push(o);const l=k.a["The Covenant"];!l.isBanned&&!l.isMember&&!l.alreadyInvited&&t>=20&&this.money>=75e9&&this.hacking>=850&&this.strength>=850&&this.defense>=850&&this.dexterity>=850&&this.agility>=850&&e.push(l);const c=k.a.ECorp;c.isBanned||c.isMember||c.alreadyInvited||!r(C.a.AevumECorp)||e.push(c);const m=k.a.MegaCorp;m.isBanned||m.isMember||m.alreadyInvited||!r(C.a.Sector12MegaCorp)||e.push(m);const h=k.a["Bachman & Associates"];h.isBanned||h.isMember||h.alreadyInvited||!r(C.a.AevumBachmanAndAssociates)||e.push(h);const p=k.a["Blade Industries"];p.isBanned||p.isMember||p.alreadyInvited||!r(C.a.Sector12BladeIndustries)||e.push(p);const d=k.a.NWO;d.isBanned||d.isMember||d.alreadyInvited||!r(C.a.VolhavenNWO)||e.push(d);const g=k.a["Clarke Incorporated"];g.isBanned||g.isMember||g.alreadyInvited||!r(C.a.AevumClarkeIncorporated)||e.push(g);const y=k.a["OmniTek Incorporated"];y.isBanned||y.isMember||y.alreadyInvited||!r(C.a.VolhavenOmniTekIncorporated)||e.push(y);const b=k.a["Four Sigma"];b.isBanned||b.isMember||b.alreadyInvited||!r(C.a.Sector12FourSigma)||e.push(b);const E=k.a["KuaiGong International"];E.isBanned||E.isMember||E.alreadyInvited||!r(C.a.ChongqingKuaiGongInternational)||e.push(E);const v=k.a["Fulcrum Secret Technologies"],_=Object(R.d)(N.a.FulcrumSecretTechnologies);if(!(_ instanceof A.a))throw new Error("Fulcrum Secret Technologies should be normal server");null==_?console.error("Could not find Fulcrum Secret Technologies Server"):v.isBanned||v.isMember||v.alreadyInvited||!_.backdoorInstalled||!r(C.a.AevumFulcrumTechnologies,25e4)||e.push(v);const w=k.a.BitRunners,x=Object(R.d)(N.a.BitRunnersServer);if(!(x instanceof A.a))throw new Error("BitRunners should be normal server");null==x?console.error("Could not find BitRunners Server"):w.isBanned||w.isMember||!x.backdoorInstalled||w.alreadyInvited||e.push(w);const O=k.a["The Black Hand"],M=Object(R.d)(N.a.TheBlackHandServer);if(!(M instanceof A.a))throw new Error("TheBlackHand should be normal server");null==M?console.error("Could not find The Black Hand Server"):O.isBanned||O.isMember||!M.backdoorInstalled||O.alreadyInvited||e.push(O);const T=k.a.NiteSec,P=Object(R.d)(N.a.NiteSecServer);if(!(P instanceof A.a))throw new Error("NiteSec should be normal server");null==P?console.error("Could not find NiteSec Server"):T.isBanned||T.isMember||!P.backdoorInstalled||T.alreadyInvited||e.push(T);const I=k.a.Chongqing;!I.isBanned&&!I.isMember&&!I.alreadyInvited&&this.money>=2e7&&this.city==S.a.Chongqing&&e.push(I);const F=k.a["Sector-12"];!F.isBanned&&!F.isMember&&!F.alreadyInvited&&this.money>=15e6&&this.city==S.a.Sector12&&e.push(F);const D=k.a["New Tokyo"];!D.isBanned&&!D.isMember&&!D.alreadyInvited&&this.money>=2e7&&this.city==S.a.NewTokyo&&e.push(D);const j=k.a.Aevum;!j.isBanned&&!j.isMember&&!j.alreadyInvited&&this.money>=4e7&&this.city==S.a.Aevum&&e.push(j);const B=k.a.Ishima;!B.isBanned&&!B.isMember&&!B.alreadyInvited&&this.money>=3e7&&this.city==S.a.Ishima&&e.push(B);const G=k.a.Volhaven;!G.isBanned&&!G.isMember&&!G.alreadyInvited&&this.money>=5e7&&this.city==S.a.Volhaven&&e.push(G);const W=k.a["Speakers for the Dead"];!W.isBanned&&!W.isMember&&!W.alreadyInvited&&this.hacking>=100&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.numPeopleKilled>=30&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(W);const H=k.a["The Dark Army"];!H.isBanned&&!H.isMember&&!H.alreadyInvited&&this.hacking>=300&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.city==S.a.Chongqing&&this.numPeopleKilled>=5&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(H);const U=k.a["The Syndicate"];!U.isBanned&&!U.isMember&&!U.alreadyInvited&&this.hacking>=200&&this.strength>=200&&this.defense>=200&&this.dexterity>=200&&this.agility>=200&&(this.city==S.a.Aevum||this.city==S.a.Sector12)&&this.money>=1e7&&this.karma<=-90&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(U);const q=k.a.Silhouette;!q.isBanned&&!q.isMember&&!q.alreadyInvited&&(n.includes("Chief Technology Officer")||n.includes("Chief Financial Officer")||n.includes("Chief Executive Officer"))&&this.money>=15e6&&this.karma<=-22&&e.push(q);const K=k.a.Tetrads;!K.isBanned&&!K.isMember&&!K.alreadyInvited&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&this.strength>=75&&this.defense>=75&&this.dexterity>=75&&this.agility>=75&&this.karma<=-18&&e.push(K);const z=k.a["Slum Snakes"];!z.isBanned&&!z.isMember&&!z.alreadyInvited&&this.strength>=30&&this.defense>=30&&this.dexterity>=30&&this.agility>=30&&this.karma<=-9&&this.money>=1e6&&e.push(z);const $=k.a.Netburners;let Y=0,V=0,J=0;for(let e=0;e=80&&Y>=8&&V>=4&&J>=100&&e.push($);const X=k.a["Tian Di Hui"];!X.isBanned&&!X.isMember&&!X.alreadyInvited&&this.money>=1e6&&this.hacking>=50&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&e.push(X);const Q=k.a.CyberSec,Z=Object(R.d)(N.a.CyberSecServer);if(!(Z instanceof A.a))throw new Error("cybersec should be normal server");return null==Z?console.error("Could not find CyberSec Server"):Q.isBanned||Q.isMember||!Z.backdoorInstalled||Q.alreadyInvited||e.push(Q),e}function St(e){this.bitNodeN=e}function Ct(e){for(const t in this.queuedAugmentations)if(this.queuedAugmentations[t].name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);for(const t in this.augmentations)if(this.augmentations[t].name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);this.queuedAugmentations.push(new i.a(e))}function xt(e,t=1){if(null==e||null==e.type||null==e)return"No reward for this contract";switch(e.type){case l.c.FactionReputation:if(null==e.name||!(k.a[e.name]instanceof E.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseFactionRepGain*t;return k.a[e.name].playerReputation+=a,`Gained ${a} faction reputation for ${e.name}`;case l.c.FactionReputationAll:const n=f.a.CodingContractBaseFactionRepGain*t,r=["Bladeburners"],i=this.factions.slice().filter(e=>!r.includes(e));if(0==i.length)return e.type=l.c.Money,this.gainCodingContractReward(e,t);const o=Math.floor(n/i.length);for(const e of i)k.a[e]instanceof E.a&&(k.a[e].playerReputation+=o);return`Gained ${o} reputation for each of the following factions: ${i.toString()}`;case l.c.CompanyReputation:{if(null==e.name||!(u.a[e.name]instanceof c.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseCompanyRepGain*t;return u.a[e.name].playerReputation+=a,`Gained ${a} company reputation for ${e.name}`}case l.c.Money:default:{const e=f.a.CodingContractBaseMoneyGain*t*s.a.CodingContractMoney;return this.gainMoney(e,"codingcontract"),"Gained "+W.a.formatMoney(e)}}}function Ot(e){return null==_.a[e]?(console.warn("Player.travel() called with invalid city: "+e),!1):(this.city=e,!0)}function Mt(e){return null==w.a[e]?(console.warn("Player.gotoLocation() called with invalid location: "+e),!1):(this.location=e,!0)}function Tt(){return 10===this.bitNodeN||j.a[10]>0}function Rt(e){this.exploits.includes(e)||(this.exploits.push(e),J.b.emit("SF -1 acquired!","success"))}function At(e){return Object(M.a)(this.intelligence,e)}function Pt(){return this.moneySourceA.casino}function Nt(e){return this.hasOwnProperty(e)?this[e]:1}function It(e,t){this.hasOwnProperty(e)&&(this[e]=t)}function Ft(){return 13===this.bitNodeN||j.a[13]>0}function Dt(e){const t=this.sourceFiles.find(t=>t.n===e);return t?t.lvl:0}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return s}));var n=a(0),r=a.n(n);const i={Corporation:r.a.createContext({}),Division:r.a.createContext({})},o=()=>Object(n.useContext)(i.Corporation),s=()=>Object(n.useContext)(i.Division)},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(486),r=a(5),i=a(763),o=a(285),s=a(21);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends n.a{constructor(e={hostname:"",ip:Object(o.a)()}){super(e),l(this,"backdoorInstalled",!1),l(this,"baseDifficulty",1),l(this,"hackDifficulty",1),l(this,"minDifficulty",1),l(this,"moneyAvailable",0),l(this,"moneyMax",0),l(this,"numOpenPortsRequired",5),l(this,"openPortCount",0),l(this,"requiredHackingSkill",1),l(this,"serverGrowth",1),this.hostname.startsWith("hacknet-node-")&&(this.hostname=Object(i.a)(10)),this.purchasedByPlayer=null!=e.purchasedByPlayer&&e.purchasedByPlayer,this.maxRam=null!=e.maxRam?e.maxRam:0,this.requiredHackingSkill=null!=e.requiredHackingSkill?e.requiredHackingSkill:1,this.moneyAvailable=null!=e.moneyAvailable?e.moneyAvailable*r.a.ServerStartingMoney:0,this.moneyMax=25*this.moneyAvailable*r.a.ServerMaxMoney,this.hackDifficulty=null!=e.hackDifficulty?e.hackDifficulty*r.a.ServerStartingSecurity:1,this.baseDifficulty=this.hackDifficulty,this.minDifficulty=Math.max(1,Math.round(this.hackDifficulty/3)),this.serverGrowth=null!=e.serverGrowth?e.serverGrowth:1,this.numOpenPortsRequired=null!=e.numOpenPortsRequired?e.numOpenPortsRequired:5}capDifficulty(){this.hackDifficulty100&&(this.hackDifficulty=100)}changeMinimumSecurity(e,t=!1){t?this.minDifficulty*=e:this.minDifficulty+=e,this.minDifficulty=Math.max(1,this.minDifficulty)}changeMaximumMoney(e){if(this.moneyMax>1e13){const t=this.moneyMax-1e13;e=1+(e-1)/Math.log(t)/Math.log(8)}this.moneyMax*=e}fortify(e){this.hackDifficulty+=e,this.capDifficulty()}weaken(e){this.hackDifficulty-=e*r.a.ServerWeakenRate,this.capDifficulty()}toJSON(){return Object(s.b)("Server",this)}static fromJSON(e){return Object(s.a)(c,e.data)}}s.c.constructors.Server=c},,,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Company=0]="Company",e[e.Gym=1]="Gym",e[e.Hospital=2]="Hospital",e[e.Slums=3]="Slums",e[e.Special=4]="Special",e[e.StockMarket=5]="StockMarket",e[e.TechVendor=6]="TechVendor",e[e.TravelAgency=7]="TravelAgency",e[e.University=8]="University",e[e.Casino=9]="Casino"}(n||(n={}))},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return u})),a.d(t,"e",(function(){return m}));var n=a(0),r=a.n(n),i=a(115),o=a(129);const s={Energy:"Energy",Utilities:"Water Utilities",Agriculture:"Agriculture",Fishing:"Fishing",Mining:"Mining",Food:"Food",Tobacco:"Tobacco",Chemical:"Chemical",Pharmaceutical:"Pharmaceutical",Computer:"Computer Hardware",Robotics:"Robotics",Software:"Software",Healthcare:"Healthcare",RealEstate:"RealEstate"},l={Energy:225e9,Utilities:15e10,Agriculture:4e10,Fishing:8e10,Mining:3e11,Food:1e10,Tobacco:2e10,Chemical:7e10,Pharmaceutical:2e11,Computer:5e11,Robotics:1e12,Software:25e9,Healthcare:75e10,RealEstate:6e11},c={Energy:e=>r.a.createElement(r.a.Fragment,null,"Engage in the production and distribution of energy.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Energy,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Utilities:e=>r.a.createElement(r.a.Fragment,null,"Distribute water and provide wastewater services.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Utilities,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Agriculture:e=>r.a.createElement(r.a.Fragment,null,"Cultivate crops and breed livestock to produce food.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Agriculture,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Fishing:e=>r.a.createElement(r.a.Fragment,null,"Produce food through the breeding and processing of fish and fish products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Fishing,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Mining:e=>r.a.createElement(r.a.Fragment,null,"Extract and process metals from the earth.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Mining,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Food:e=>r.a.createElement(r.a.Fragment,null,"Create your own restaurants all around the world.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Food,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Tobacco:e=>r.a.createElement(r.a.Fragment,null,"Create and distribute tobacco and tobacco-related products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Tobacco,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Chemical:e=>r.a.createElement(r.a.Fragment,null,"Produce industrial chemicals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Chemical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Pharmaceutical:e=>r.a.createElement(r.a.Fragment,null,"Discover, develop, and create new pharmaceutical drugs.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Pharmaceutical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Computer:e=>r.a.createElement(r.a.Fragment,null,"Develop and manufacture new computer hardware and networking infrastructures.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Computer,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Robotics:e=>r.a.createElement(r.a.Fragment,null,"Develop and create robots.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Robotics,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Software:e=>r.a.createElement(r.a.Fragment,null,"Develop computer software and create AI Cores.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Software,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Healthcare:e=>r.a.createElement(r.a.Fragment,null,"Create and manage hospitals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Healthcare,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),RealEstate:e=>r.a.createElement(r.a.Fragment,null,"Develop and manage real estate properties.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.RealEstate,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO")},u={Energy:Object(i.a)(),Utilities:Object(i.a)(),Agriculture:Object(i.a)(),Fishing:Object(i.a)(),Mining:Object(i.a)(),Food:Object(i.b)(),Tobacco:Object(i.b)(),Chemical:Object(i.a)(),Pharmaceutical:Object(i.b)(),Computer:Object(i.b)(),Robotics:Object(i.b)(),Software:Object(i.b)(),Healthcare:Object(i.b)(),RealEstate:Object(i.b)()};function m(){u.Energy=Object(i.a)(),u.Utilities=Object(i.a)(),u.Agriculture=Object(i.a)(),u.Fishing=Object(i.a)(),u.Mining=Object(i.a)(),u.Food=Object(i.a)(),u.Tobacco=Object(i.a)(),u.Chemical=Object(i.a)(),u.Pharmaceutical=Object(i.a)(),u.Computer=Object(i.a)(),u.Robotics=Object(i.a)(),u.Software=Object(i.a)(),u.Healthcare=Object(i.a)(),u.RealEstate=Object(i.a)()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Operations:"Operations",Engineer:"Engineer",Business:"Business",Management:"Management",RandD:"Research & Development",Training:"Training",Unassigned:"Unassigned"}},function(e,t,a){"use strict";a.d(t,"g",(function(){return f})),a.d(t,"l",(function(){return g})),a.d(t,"h",(function(){return y})),a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return E})),a.d(t,"e",(function(){return k})),a.d(t,"f",(function(){return v})),a.d(t,"d",(function(){return _})),a.d(t,"c",(function(){return w})),a.d(t,"n",(function(){return S})),a.d(t,"o",(function(){return C})),a.d(t,"k",(function(){return x})),a.d(t,"j",(function(){return O})),a.d(t,"i",(function(){return M})),a.d(t,"p",(function(){return R})),a.d(t,"m",(function(){return A}));var n=a(229),r=a(184),i=a(165),o=a(36),s=a(85),l=a(330),c=a(256),u=a(331),m=a(40),h=a(27),p=a(45),d=a(74);function f(e){return 9===e.bitNodeN||d.a[9]>0}function g(e){if(m.a.isRunning){if(m.a.currStep!==m.f.HacknetNodesIntroduction)return-1;Object(m.c)()}const t=e.hacknetNodes.length;if(f(e)){const a=E(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetServer is NaN");return!e.canAfford(a)||t>=o.b.MaxServers?-1:(e.loseMoney(a,"hacknet_expenses"),e.createHacknetServer(),R(e),t)}{const a=b(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetNode is NaN");if(!e.canAfford(a))return-1;const r="hacknet-node-"+t,i=new n.a(r,e.hacknet_node_money_mult);return e.loseMoney(a,"hacknet_expenses"),e.hacknetNodes.push(i),t}}function y(e){return f(e)&&e.hacknetNodes.length>=o.b.MaxServers}function b(e){return Object(r.d)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function E(e){return Object(i.f)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function k(e,t,a){if(null==a)throw new Error("getMaxNumberLevelUpgrades() called without maxLevel arg");if(e.moneyt.calculateLevelUpgradeCost(i,e.hacknet_node_level_cost_mult))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!==a&&e.money>t.calculateLevelUpgradeCost(o,e.hacknet_node_level_cost_mult)&&e.moneyt.calculateLevelUpgradeCost(o,e.hacknet_node_level_cost_mult)))return Math.min(i,o);n=o+1}}return 0}function v(e,t,a){if(null==a)throw new Error("getMaxNumberRamUpgrades() called without maxLevel arg");if(e.moneyt.calculateRamUpgradeCost(n,e.hacknet_node_ram_cost_mult))return n;for(let a=n-1;a>=0;--a)if(e.money>t.calculateRamUpgradeCost(a,e.hacknet_node_ram_cost_mult))return a;return 0}function _(e,t,a){if(null==a)throw new Error("getMaxNumberCoreUpgrades() called without maxLevel arg");if(e.moneyt.calculateCoreUpgradeCost(i,e.hacknet_node_core_cost_mult))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!=a&&e.money>t.calculateCoreUpgradeCost(o,e.hacknet_node_core_cost_mult)&&e.moneyt.calculateCoreUpgradeCost(o,e.hacknet_node_core_cost_mult)))return Math.min(i,o);n=o+1}}return 0}function w(e,t,a){if(null==a)throw new Error("getMaxNumberCacheUpgrades() called without maxLevel arg");if(!e.canAfford(t.calculateCacheUpgradeCost(1)))return 0;let n=1,r=a-1;const i=a-t.cache;if(e.canAfford(t.calculateCacheUpgradeCost(i)))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!=a&&e.canAfford(t.calculateCacheUpgradeCost(o))&&!e.canAfford(t.calculateCacheUpgradeCost(o+1)))return Math.min(i,o);if(e.canAfford(t.calculateCacheUpgradeCost(o))){if(!e.canAfford(t.calculateCacheUpgradeCost(o)))return Math.min(i,o);n=o+1}else r=o-1}return 0}function S(e,t,a=1){const n=Math.round(a),r=t.calculateLevelUpgradeCost(n,e.hacknet_node_level_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const i=t instanceof s.a;if(t.level>=(i?o.b.MaxLevel:o.a.MaxLevel))return!1;if(t.level+n>(i?o.b.MaxLevel:o.a.MaxLevel)){return S(e,t,Math.max(0,(i?o.b.MaxLevel:o.a.MaxLevel)-t.level))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeLevel(n,e.hacknet_node_money_mult),!0)}function C(e,t,a=1){const r=Math.round(a),i=t.calculateRamUpgradeCost(r,e.hacknet_node_ram_cost_mult);if(isNaN(i)||i<=0||r<0)return!1;if(t instanceof s.a&&t.maxRam>=o.b.MaxRam)return!1;if(t instanceof n.a&&t.ram>=o.a.MaxRam)return!1;if(t instanceof s.a){if(t.maxRam*Math.pow(2,r)>o.b.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(o.b.MaxRam/t.maxRam))))}}else if(t instanceof n.a&&t.ram*Math.pow(2,r)>o.a.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(o.a.MaxRam/t.ram))))}return!!e.canAfford(i)&&(e.loseMoney(i,"hacknet_expenses"),t.upgradeRam(r,e.hacknet_node_money_mult),!0)}function x(e,t,a=1){const n=Math.round(a),r=t.calculateCoreUpgradeCost(n,e.hacknet_node_core_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const i=t instanceof s.a;if(t.cores>=(i?o.b.MaxCores:o.a.MaxCores))return!1;if(t.cores+n>(i?o.b.MaxCores:o.a.MaxCores)){return x(e,t,Math.max(0,(i?o.b.MaxCores:o.a.MaxCores)-t.cores))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCore(n,e.hacknet_node_money_mult),!0)}function O(e,t,a=1){const n=Math.round(a),r=t.calculateCacheUpgradeCost(n);if(isNaN(r)||r<=0||n<0)return!1;if(!(t instanceof s.a))return console.warn("purchaseCacheUpgrade() called for a non-HacknetNode"),!1;if(t.cache+n>o.b.MaxCache){return O(e,t,Math.max(0,o.b.MaxCache-t.cache))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCache(n),!0)}function M(e,t){return 0===e.hacknetNodes.length?0:f(e)?function(e,t){if(!(e.hashManager instanceof l.a))throw new Error("Player does not have a HashManager (should be in 'hashManager' prop)");let a=0;for(let r=0;r{var t;null!=o[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),o[t.name]=new r.a(t)});for(const t in o){const a=o[t];e[t]instanceof r.a?(a.favor=e[t].favor,isNaN(a.favor)&&(a.favor=0)):a.favor=0}}function l(e){o=JSON.parse(e,i.c)}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(21);let r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}};function i(){r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}}}function o(e){r=JSON.parse(e,n.c)}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.Long="L",e.Short="S"}(n||(n={}))},function(e,t,a){"use strict";let n;function r(e){switch(e){case n.HackingChance:return"+x% hack() success chance";case n.HackingSpeed:return"+x% faster hack(), grow(), and weaken()";case n.HackingMoney:return"+x% hack() power";case n.HackingGrow:return"+x% grow() power";case n.Hacking:return"+x% hacking skill";case n.Strength:return"+x% strength skill";case n.Defense:return"+x% defense skill";case n.Dexterity:return"+x% dexterity skill";case n.Agility:return"+x% agility skill";case n.Charisma:return"+x% charisma skill";case n.HacknetMoney:return"+x% hacknet production";case n.HacknetCost:return"-x% all hacknet cost";case n.Rep:return"+x% reputation from factions and companies";case n.WorkMoney:return"+x% work money";case n.Crime:return"+x% crime money";case n.Bladeburner:return"+x% all bladeburner stats"}throw new Error("Calling effect for fragment type that doesn't have an effect "+e)}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),function(e){e[e.None=0]="None",e[e.Delete=1]="Delete",e[e.HackingChance=2]="HackingChance",e[e.HackingSpeed=3]="HackingSpeed",e[e.HackingMoney=4]="HackingMoney",e[e.HackingGrow=5]="HackingGrow",e[e.Hacking=6]="Hacking",e[e.Strength=7]="Strength",e[e.Defense=8]="Defense",e[e.Dexterity=9]="Dexterity",e[e.Agility=10]="Agility",e[e.Charisma=11]="Charisma",e[e.HacknetMoney=12]="HacknetMoney",e[e.HacknetCost=13]="HacknetCost",e[e.Rep=14]="Rep",e[e.WorkMoney=15]="WorkMoney",e[e.Crime=16]="Crime",e[e.Bladeburner=17]="Bladeburner",e[e.Booster=18]="Booster"}(n||(n={}))},,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"l",(function(){return NewIndustry})),__webpack_require__.d(__webpack_exports__,"k",(function(){return NewCity})),__webpack_require__.d(__webpack_exports__,"x",(function(){return UnlockUpgrade})),__webpack_require__.d(__webpack_exports__,"h",(function(){return LevelUpgrade})),__webpack_require__.d(__webpack_exports__,"g",(function(){return IssueDividends})),__webpack_require__.d(__webpack_exports__,"o",(function(){return SellMaterial})),__webpack_require__.d(__webpack_exports__,"p",(function(){return SellProduct})),__webpack_require__.d(__webpack_exports__,"u",(function(){return SetSmartSupply})),__webpack_require__.d(__webpack_exports__,"v",(function(){return SetSmartSupplyUseLeftovers})),__webpack_require__.d(__webpack_exports__,"c",(function(){return BuyMaterial})),__webpack_require__.d(__webpack_exports__,"a",(function(){return AssignJob})),__webpack_require__.d(__webpack_exports__,"y",(function(){return UpgradeOfficeSize})),__webpack_require__.d(__webpack_exports__,"w",(function(){return ThrowParty})),__webpack_require__.d(__webpack_exports__,"m",(function(){return PurchaseWarehouse})),__webpack_require__.d(__webpack_exports__,"z",(function(){return UpgradeWarehouse})),__webpack_require__.d(__webpack_exports__,"b",(function(){return BuyCoffee})),__webpack_require__.d(__webpack_exports__,"f",(function(){return HireAdVert})),__webpack_require__.d(__webpack_exports__,"j",(function(){return MakeProduct})),__webpack_require__.d(__webpack_exports__,"n",(function(){return Research})),__webpack_require__.d(__webpack_exports__,"e",(function(){return ExportMaterial})),__webpack_require__.d(__webpack_exports__,"d",(function(){return CancelExportMaterial})),__webpack_require__.d(__webpack_exports__,"i",(function(){return LimitProductProduction})),__webpack_require__.d(__webpack_exports__,"q",(function(){return SetMaterialMarketTA1})),__webpack_require__.d(__webpack_exports__,"r",(function(){return SetMaterialMarketTA2})),__webpack_require__.d(__webpack_exports__,"s",(function(){return SetProductMarketTA1})),__webpack_require__.d(__webpack_exports__,"t",(function(){return SetProductMarketTA2}));var _IndustryData__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(51),_Industry__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(796),_data_Constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(42),_OfficeSpace__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(334),_Product__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(357),_Warehouse__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(219),_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(137),_EmployeePositions__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(52),_IndustryUpgrades__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(335),_ResearchMap__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(288);function NewIndustry(e,t,a){for(let t=0;t_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage)throw new Error("Invalid value. Must be an integer between 0 and "+_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage);e.dividendPercentage=100*t}function SellMaterial(mat,amt,price){""===price&&(price="0"),""===amt&&(amt="0");let cost=price.replace(/\s+/g,"");cost=cost.replace(/[^-()\d/*+.MPe]/g,"");let temp=cost.replace(/MP/g,mat.bCost+"");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell price field");if(cost.includes("MP")?mat.sCost=cost:mat.sCost=temp,amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let q=amt.replace(/\s+/g,"");q=q.replace(/[^-()\d/*+.MAXPROD]/g,"");let tempQty=q.replace(/MAX/g,"1");tempQty=tempQty.replace(/PROD/g,"1");try{tempQty=eval(tempQty)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==tempQty||isNaN(parseFloat(tempQty)))throw new Error("Invalid value or expression for sell price field");mat.sllman[0]=!0,mat.sllman[1]=q}else{if(isNaN(parseFloat(amt)))throw new Error("Invalid value for sell quantity field! Must be numeric or 'MAX'");{let e=parseFloat(amt);isNaN(e)&&(e=0),0===e?(mat.sllman[0]=!1,mat.sllman[1]=0):(mat.sllman[0]=!0,mat.sllman[1]=e)}}}function SellProduct(product,city,amt,price,all){if(price.includes("MP")){price=price.replace(/\s+/g,""),price=price.replace(/[^-()\d/*+.MP]/g,"");let temp=price.replace(/MP/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell quantity field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell quantity field.");product.sCost=price}else{const e=parseFloat(price);if(isNaN(e))throw new Error("Invalid value for sell price field");product.sCost=e}const cities=Object.keys(_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__.a);if(amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let qty=amt.replace(/\s+/g,"");qty=qty.replace(/[^-()\d/*+.MAXPROD]/g,"");let temp=qty.replace(/MAX/g,"1");temp=temp.replace(/PROD/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell price field");if(all)for(let e=0;e]/g,""),createCity:a,designCost:r,advCost:i});if(t.products[o.name]instanceof _Product__WEBPACK_IMPORTED_MODULE_4__.a)throw new Error("You already have a product with this name!");e.funds=e.funds-(r+i),t.products[o.name]=o}function Research(e,t){const a=_IndustryData__WEBPACK_IMPORTED_MODULE_0__.c[e.type];if(void 0===a)throw new Error(`No research tree for industry '${e.type}'`);if(!a.getAllNodes().includes(t))throw new Error(`No research named '${t}'`);const n=_ResearchMap__WEBPACK_IMPORTED_MODULE_9__.a[t];if(e.sciResearch.qty{var t;null!=i[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),i[t.name]=new r.a(t)})},,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(9);const r={};r[n.a.AevumECorp]="ECP",r[n.a.Sector12MegaCorp]="MGCP",r[n.a.Sector12BladeIndustries]="BLD",r[n.a.AevumClarkeIncorporated]="CLRK",r[n.a.VolhavenOmniTekIncorporated]="OMTK",r[n.a.Sector12FourSigma]="FSIG",r[n.a.ChongqingKuaiGongInternational]="KGI",r[n.a.AevumFulcrumTechnologies]="FLCM",r[n.a.IshimaStormTechnologies]="STM",r[n.a.NewTokyoDefComm]="DCOMM",r[n.a.VolhavenHeliosLabs]="HLS",r[n.a.NewTokyoVitaLife]="VITA",r[n.a.Sector12IcarusMicrosystems]="ICRS",r[n.a.Sector12UniversalEnergy]="UNV",r[n.a.AevumAeroCorp]="AERO",r[n.a.VolhavenOmniaCybersystems]="OMN",r[n.a.ChongqingSolarisSpaceSystems]="SLRS",r[n.a.NewTokyoGlobalPharmaceuticals]="GPH",r[n.a.IshimaNovaMedical]="NVMD",r[n.a.AevumWatchdogSecurity]="WDS",r[n.a.VolhavenLexoCorp]="LXO",r[n.a.AevumRhoConstruction]="RHOC",r[n.a.Sector12AlphaEnterprises]="APHE",r[n.a.VolhavenSysCoreSecurities]="SYSC",r[n.a.VolhavenCompuTek]="CTK",r[n.a.AevumNetLinkTechnologies]="NTLK",r[n.a.IshimaOmegaSoftware]="OMGA",r[n.a.Sector12FoodNStuff]="FNS",r["Sigma Cosmetics"]="SGC",r["Joes Guns"]="JGN",r["Catalyst Ventures"]="CTYS",r["Microdyne Technologies"]="MDYN",r["Titan Laboratories"]="TITN"},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(287);function i(e,t){const a=(100-e.hackDifficulty)/100,n=1.75*t.hacking,i=(n-e.requiredHackingSkill)/n*a*t.hacking_chance_mult*Object(r.a)(t.intelligence,1);return i>1?1:i<0?0:i}function o(e,t){null==e.baseDifficulty&&(e.baseDifficulty=e.hackDifficulty);let a=3;return a+=e.baseDifficulty*t.hacking_exp_mult*.3,a*n.a.HackExpGain}function s(e,t){const a=(100-e.hackDifficulty)/100*((t.hacking-(e.requiredHackingSkill-1))/t.hacking)*t.hacking_money_mult/240;return a<0?0:a>1?1:a*n.a.ScriptHackMoney}function l(e,t){let a=2.5*(e.requiredHackingSkill*e.hackDifficulty)+500;a/=t.hacking+50;return 5*a/(t.hacking_speed_mult*Object(r.a)(t.intelligence,1))}function c(e,t){return 3.2*l(e,t)}function u(e,t){return 4*l(e,t)}},,function(e,t,a){"use strict";function n(e){return e.endsWith(".js")||e.endsWith(".script")||e.endsWith(".ns")}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Home:"home",FulcrumSecretTechnologies:"fulcrumassets",CyberSecServer:"CSEC",NiteSecServer:"avmnite-02h",TheBlackHandServer:"I.I.I.I",BitRunnersServer:"run4theh111z",TheDarkArmyServer:".",DaedalusServer:"The-Cave",WorldDaemon:"w0r1d_d43m0n",DarkWeb:"darkweb"}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(695).a)},,function(e,t,a){"use strict";a.d(t,"a",(function(){return g})),a.d(t,"b",(function(){return y})),a.d(t,"j",(function(){return b})),a.d(t,"c",(function(){return E})),a.d(t,"i",(function(){return k})),a.d(t,"d",(function(){return v})),a.d(t,"f",(function(){return _})),a.d(t,"h",(function(){return w})),a.d(t,"k",(function(){return C})),a.d(t,"g",(function(){return x})),a.d(t,"e",(function(){return O}));var n=a(622),r=a(299),i=a(136),o=a(561),s=a(783),l=a(100),c=a(68),u=a(88),m=a(8),h=a(118),p=a(4),d=a(15),f=a(21);let g={lastUpdate:0,Orders:{},storedCycles:0,ticksUntilCycle:0};const y={};function b(e,t,a,o,s,l=null){if(!(e instanceof i.a))return l?l.log("stock.placeOrder",()=>`Invalid stock: '${e}'`):Object(d.a)("ERROR: Invalid stock passed to placeOrder() function"),!1;if("number"!=typeof t||"number"!=typeof a)return l?l.log("stock.placeOrder",()=>`Invalid arguments: shares='${t}' price='${a}'`):Object(d.a)("ERROR: Invalid numeric value provided for either 'shares' or 'price' argument"),!1;const c=new n.a(e.symbol,t,a,o,s);if(null==g.Orders){const e={};for(const t in g){const a=g[t];a instanceof i.a&&(e[a.symbol]=[])}g.Orders=e}g.Orders[e.symbol].push(c);const u={stockMarket:g,symbolToStockMap:y};return Object(r.a)(e,c.type,c.pos,u),!0}function E(e,t=null){if(null==g.Orders)return!1;if(e.order&&e.order instanceof n.a){const t=e.order,a=g.Orders[t.stockSymbol];for(let e=0;e=t.cap&&(o=.1,t.b=!1),isNaN(o)&&(o=.5);const s=Math.random(),u={stockMarket:g,symbolToStockMap:y};s{const t={c:this,onClose:()=>{e(c.Cancelled)},onAttempt:t=>{this.isSolution(t)?e(c.Success):e(c.Failure)}};i.a.emit(t)})}toJSON(){return Object(r.b)("CodingContract",this)}static fromJSON(e){return Object(r.a)(u,e.data)}}r.c.constructors.CodingContract=u},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.LimitBuy="Limit Buy Order",e.LimitSell="Limit Sell Order",e.StopBuy="Stop Buy Order",e.StopSell="Stop Sell Order"}(n||(n={}))},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),i=a(126),o=a(154);const s=Object(i.a)(e=>Object(o.a)({reputation:{color:e.colors.rep}}));function l({reputation:e}){const t=s();return n.createElement("span",{className:t.reputation},"number"==typeof e?r.a.formatReputation(e):e)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return o}));var n=a(21),r=a(623);let i=new r.a;function o(e){i=e?JSON.parse(e,n.c):new r.a}},,function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return l}));var n=a(122),r=a(27);function i(e,t){return new Promise((function(a){t.delay=window.setTimeout(()=>{t.delay=null,a()},e),t.delayResolve=a}))}function o(e,t){const a=Object(r.d)(e.hostname);if(null==a)throw new Error("WorkerScript constructed with invalid server ip: "+e.hostname);return"|DELIMITER|"+a.hostname+"|DELIMITER|"+e.name+"|DELIMITER|"+t}function s(e,t,a){const n=e.scriptRef.threads;if(!a)return isNaN(n)||n<1?1:n;const r=0|a;if(isNaN(a)||r<1)throw o(e,`Invalid thread count passed to ${t}: ${a}. Threads must be a positive number.`);if(a>n)throw o(e,`Too many threads requested by ${t}. Requested: ${a}. Has: ${n}.`);return r}function l(e){if(!Object(n.a)(e))return!1;return 4==e.split("|DELIMITER|").length}},function(e,t,a){"use strict";a.d(t,"b",(function(){return fe})),a.d(t,"a",(function(){return ge}));var n=a(0),r=a.n(n),i=a(140),o=a(182),s=a(336),l=a(9),c=a(227),u=a(40),m=a(812),h=a(332),p=a(321),d=a(15),f=a(27),g=a(24),y=a(223),b=a(95),E=a(126),k=a(154),v=a(32),_=a(1),w=a(25),S=a(815),C=a(818),x=a(839),O=a(847),M=a(866),T=a(898),R=a(913),A=a(949),P=a(963),N=a(966),I=a(967),F=a(1006),D=a(1015),j=a(635),B=a(1046),G=a(358),L=a(543),W=a(1064),H=a(1065),U=a(1071),q=a(1072),K=a(359),z=a(1085),$=a(1095),Y=a(542),V=a(1097),J=a(1106),X=a(1109),Q=a(105),Z=a(1114),ee=a(1118),te=a(163),ae=a(1119),ne=a(253),re=a(201),ie=a(355),oe=a(511),se=a(504),le=a(267),ce=a(29),ue=a(456);const me=location,he=Object(E.a)(e=>Object(k.a)({root:{"-ms-overflow-style":"none","scrollbar-width":"none",margin:e.spacing(0)}}));let pe="",de="",fe={page:()=>{throw new Error("Router called before initialization")},toActiveScripts:()=>{throw new Error("Router called before initialization")},toAugmentations:()=>{throw new Error("Router called before initialization")},toBitVerse:()=>{throw new Error("Router called before initialization")},toBladeburner:()=>{throw new Error("Router called before initialization")},toStats:()=>{throw new Error("Router called before initialization")},toCity:()=>{throw new Error("Router called before initialization")},toCorporation:()=>{throw new Error("Router called before initialization")},toCreateProgram:()=>{throw new Error("Router called before initialization")},toDevMenu:()=>{throw new Error("Router called before initialization")},toFaction:()=>{throw new Error("Router called before initialization")},toFactions:()=>{throw new Error("Router called before initialization")},toGameOptions:()=>{throw new Error("Router called before initialization")},toGang:()=>{throw new Error("Router called before initialization")},toHacknetNodes:()=>{throw new Error("Router called before initialization")},toInfiltration:()=>{throw new Error("Router called before initialization")},toJob:()=>{throw new Error("Router called before initialization")},toMilestones:()=>{throw new Error("Router called before initialization")},toResleeves:()=>{throw new Error("Router called before initialization")},toScriptEditor:()=>{throw new Error("Router called before initialization")},toSleeves:()=>{throw new Error("Router called before initialization")},toStockMarket:()=>{throw new Error("Router called before initialization")},toTerminal:()=>{throw new Error("Router called before initialization")},toTravel:()=>{throw new Error("Router called before initialization")},toTutorial:()=>{throw new Error("Router called before initialization")},toWork:()=>{throw new Error("Router called before initialization")},toBladeburnerCinematic:()=>{throw new Error("Router called before initialization")},toLocation:()=>{throw new Error("Router called before initialization")},toStaneksGift:()=>{throw new Error("Router called before initialization")}};function ge({player:e,engine:t,terminal:a}){const E=he(),[k,ge]=Object(n.useState)(function(e){return ue.b?w.a.Recovery:e.isWorking?w.a.Work:w.a.Terminal}(e)),ye=Object(n.useState)(0)[1],[be,Ee]=Object(n.useState)(e.currentWorkFactionName?g.a[e.currentWorkFactionName]:void 0);if(void 0===be&&k===w.a.Faction)throw new Error("Trying to go to a page without the proper setup");const[ke,ve]=Object(n.useState)(!1),[_e,we]=Object(n.useState)(!1),[Se,Ce]=Object(n.useState)(void 0);if(void 0===Se&&(k===w.a.Infiltration||k===w.a.Location||k===w.a.Job))throw new Error("Trying to go to a page without the proper setup");const[xe,Oe]=Object(n.useState)("");function Me(){ye(e=>e+1)}function Te(){for(const e of Object(f.c)())e.runningScripts=[];o.c.saveGame(),setTimeout(()=>me.reload(),2e3)}return Object(n.useEffect)(()=>h.a.subscribe(Me),[]),fe={page:()=>k,toActiveScripts:()=>ge(w.a.ActiveScripts),toAugmentations:()=>ge(w.a.Augmentations),toBladeburner:()=>ge(w.a.Bladeburner),toStats:()=>ge(w.a.Stats),toCorporation:()=>ge(w.a.Corporation),toCreateProgram:()=>ge(w.a.CreateProgram),toDevMenu:()=>ge(w.a.DevMenu),toFaction:e=>{ge(w.a.Faction),e&&Ee(e)},toFactions:()=>ge(w.a.Factions),toGameOptions:()=>ge(w.a.Options),toGang:()=>ge(w.a.Gang),toHacknetNodes:()=>ge(w.a.Hacknet),toMilestones:()=>ge(w.a.Milestones),toResleeves:()=>ge(w.a.Resleeves),toScriptEditor:(e,t)=>{pe=e,de=t,ge(w.a.ScriptEditor)},toSleeves:()=>ge(w.a.Sleeves),toStockMarket:()=>ge(w.a.StockMarket),toTerminal:()=>ge(w.a.Terminal),toTutorial:()=>ge(w.a.Tutorial),toJob:()=>{Ce(c.a[e.companyName]),ge(w.a.Job)},toCity:()=>{ge(w.a.City)},toTravel:()=>{e.gotoLocation(l.a.TravelAgency),ge(w.a.Travel)},toBitVerse:(e,t)=>{ve(e),we(t),ge(w.a.BitVerse)},toInfiltration:e=>{Ce(e),ge(w.a.Infiltration)},toWork:()=>ge(w.a.Work),toBladeburnerCinematic:()=>{ge(w.a.BladeburnerCinematic),Oe(xe)},toLocation:e=>{Ce(e),ge(w.a.Location)},toStaneksGift:()=>{ge(w.a.StaneksGift)}},Object(n.useEffect)(()=>{pe="",de="",k!==w.a.Terminal&&window.scrollTo(0,0)}),r.a.createElement(ce.a.Player.Provider,{value:e},r.a.createElement(ce.a.Router.Provider,{value:fe},r.a.createElement(ne.c,null,r.a.createElement(S.a,null,u.a.isRunning?r.a.createElement(m.a,null):r.a.createElement(Z.a,{save:()=>o.c.saveGame(),killScripts:Te})),k===w.a.Recovery?r.a.createElement(ue.c,{router:fe}):k===w.a.BitVerse?r.a.createElement(J.a,{flume:ke,enter:le.a,quick:_e}):k===w.a.Infiltration?r.a.createElement(A.a,{location:Se}):k===w.a.BladeburnerCinematic?r.a.createElement(ee.a,null):k===w.a.Work?r.a.createElement(N.a,null):r.a.createElement(v.a,{display:"flex",flexDirection:"row",width:"100%"},r.a.createElement(C.a,{player:e,router:fe,page:k}),r.a.createElement(v.a,{className:E.root,flexGrow:1,display:"block",px:1,height:"100vh"},k===w.a.Terminal?r.a.createElement(H.a,{terminal:a,router:fe,player:e}):k===w.a.Sleeves?r.a.createElement(F.a,null):k===w.a.StaneksGift?r.a.createElement(X.a,{staneksGift:Q.b}):k===w.a.Stats?r.a.createElement($.a,null):k===w.a.ScriptEditor?r.a.createElement(L.a,{filename:pe,code:de,hostname:e.getCurrentServer().hostname,player:e,router:fe}):k===w.a.ActiveScripts?r.a.createElement(q.a,{workerScripts:te.a}):k===w.a.Hacknet?r.a.createElement(D.a,{player:e}):k===w.a.CreateProgram?r.a.createElement(G.a,null):k===w.a.Factions?r.a.createElement(K.a,{player:e,router:fe}):k===w.a.Faction?r.a.createElement(z.a,{faction:be}):k===w.a.Milestones?r.a.createElement(W.a,{player:e}):k===w.a.Tutorial?r.a.createElement(U.a,null):k===w.a.DevMenu?r.a.createElement(O.a,{player:e,engine:t,router:fe}):k===w.a.Gang?r.a.createElement(T.a,null):k===w.a.Corporation?r.a.createElement(R.a,null):k===w.a.Bladeburner?r.a.createElement(M.a,null):k===w.a.Resleeves?r.a.createElement(P.a,null):k===w.a.Travel?r.a.createElement(Y.a,{p:e,router:fe}):k===w.a.StockMarket?r.a.createElement(V.a,{buyStockLong:y.a,buyStockShort:y.d,cancelOrder:b.c,eventEmitterForReset:b.e,initStockMarket:b.g,p:e,placeOrder:b.j,sellStockLong:y.c,sellStockShort:y.b,stockMarket:b.a}):k===w.a.City?r.a.createElement(B.a,null):k===w.a.Job||k===w.a.Location?r.a.createElement(j.a,{loc:Se}):k===w.a.Options?r.a.createElement(I.a,{player:e,save:()=>o.c.saveGame(),export:()=>o.c.exportGame(),forceKill:Te,softReset:()=>{Object(d.a)("Soft Reset!"),Object(p.a)(),fe.toTerminal()}}):k===w.a.Augmentations?r.a.createElement(x.a,{exportGameFn:()=>{o.c.exportGame(),Object(s.c)(e)},installAugmentationsFn:()=>{Object(i.d)(),fe.toTerminal()}}):r.a.createElement(r.a.Fragment,null,r.a.createElement(_.a,null,"Cannot load")))),r.a.createElement(ae.a,null),r.a.createElement(re.c,null),r.a.createElement(ie.b,null),r.a.createElement(oe.b,null),r.a.createElement(se.b,null),r.a.createElement(ne.a,null))))}},,,,function(e,t,a){"use strict";function n(e){return e.startsWith("/")?e.slice(1):e}function r(e){return e.endsWith("/")?e.slice(0,-1):e}function i(e){return null!=e.match(/^[.a-zA-Z0-9_-]+[.][a-zA-Z0-9]+(?:-\d+(?:\.\d*)?%-INC)?$/)}function o(e){let t=e;if(0===t.length)return!1;if(1===t.length)return"/"===t;if(!t.startsWith("/"))return!1;t=t.slice(1),t=r(t);const a=t.split("/");for(const e of a)if("."!==e&&".."!==e&&null==e.match(/^.?[a-zA-Z0-9_-]+$/))return!1;return!0}function s(e){if(null==e||"string"!=typeof e)return!1;const t=e;if(t.length<3)return!1;if(t.endsWith("/"))return!1;const a=t.lastIndexOf("/");if(-1===a)return i(t);const n=t.slice(a+1);return o(t.slice(0,a+1))&&i(n)}function l(e){let t=e;if(t=n(t),t=r(t),-1===t.lastIndexOf("/"))return"/";const a=t.split("/");return 0===a.length?"/":a[0]+"/"}function c(e){const t=e,a=t.lastIndexOf("/");return-1===a?"":t.slice(0,a+1)}function u(e){return!!s(e)&&(null!=e&&0!==e.length&&e.lastIndexOf("/")<=0)}function m(e,t){let a=e;if(a.startsWith("/")||null==t||(a=t+(t.endsWith("/")?"":"/")+a),!o(a))return null;a=n(a),a=r(a);const i=a.split("/"),s=[];for(const e of i)if("."!==e)if(".."===e){if(null==s.pop())return null}else s.push(e);return"/"+s.join("/")}function h(e,t){let a=e;if(a.startsWith("/")||null==t||(a=t+(t.endsWith("/")?"":"/")+a),!s(a))return null;a=n(a);const r=a.split("/"),i=[];for(const e of r)if("."!==e)if(".."===e){if(null==i.pop())return null}else i.push(e);return"/"+i.join("/")}function p(e,t){return e.startsWith("/")||(e="/"+e),t.startsWith("/")||(t="/"+t),e===t}a.d(t,"i",(function(){return n})),a.d(t,"j",(function(){return r})),a.d(t,"g",(function(){return o})),a.d(t,"h",(function(){return s})),a.d(t,"e",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"f",(function(){return u})),a.d(t,"b",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}))},function(e,t,a){"use strict";a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return y})),a.d(t,"b",(function(){return b})),a.d(t,"f",(function(){return E})),a.d(t,"a",(function(){return k})),a.d(t,"e",(function(){return v}));var n=a(20),r=a(279),i=a(6),o=a(5),s=a(8),l=a(181),c=a(24),u=a(2),m=a(13),h=a(222),p=a(74),d=a(15),f=a(504);function g(e){u.a.receiveInvite(e.name),e.alreadyInvited=!0,m.a.SuppressFactionInvites||f.a.emit(e)}function y(e){if(e.isMember)return;e.isMember=!0,u.a.factions.push(e.name);const t=e.getInfo();for(const e in t.enemies){const a=t.enemies[e];c.a[a]instanceof l.a&&(c.a[a].isBanned=!0)}for(let t=0;t0)for(let a=0;a=e.baseCost*l.augmentationPriceMult){const t=new r.a(e.name);if(e.name==i.a.NeuroFluxGovernor&&(t.level=k()),u.a.queuedAugmentations.push(t),u.a.loseMoney(e.baseCost*l.augmentationPriceMult,"augmentations"),e.name==i.a.NeuroFluxGovernor){let t=k();--t;const a=Math.pow(s.a.NeuroFluxGovernorLevelMult,t);e.baseRepRequirement=500*a*o.a.AugmentationRepCost,e.baseCost=75e4*a*o.a.AugmentationMoneyCost;for(let t=0;tObject.keys(n).includes(e)),[...new Set(e)]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(288),r=a(560);function i(e){const t=n.a[e];if(null==t)throw new Error("Invalid research name: "+e);return new r.a({text:t.name,cost:t.cost})}function o(){const e=i("Hi-Tech R&D Laboratory"),t=i("AutoBrew"),a=i("AutoPartyManager"),n=i("Automatic Drug Administration"),r=i("Bulk Purchasing"),o=i("CPH4 Injections"),s=i("Drones"),l=i("Drones - Assembly"),c=i("Drones - Transport"),u=i("Go-Juice"),m=i("HRBuddy-Recruitment"),h=i("HRBuddy-Training"),p=i("JoyWire"),d=i("Market-TA.I"),f=i("Market-TA.II"),g=i("Overclock"),y=i("Self-Correcting Assemblers"),b=i("Sti.mu");return n.addChild(u),n.addChild(o),s.addChild(l),s.addChild(c),m.addChild(h),d.addChild(f),g.addChild(b),e.addChild(t),e.addChild(a),e.addChild(n),e.addChild(r),e.addChild(s),e.addChild(m),e.addChild(p),e.addChild(d),e.addChild(g),e.addChild(y),e}function s(){const e=new r.b;return e.setRoot(o()),e}function l(){const e=new r.b,t=o(),a=i("uPgrade: Fulcrum"),n=i("uPgrade: Capacity.I"),s=i("uPgrade: Capacity.II"),l=i("uPgrade: Dashboard");return n.addChild(s),a.addChild(n),a.addChild(l),t.addChild(a),e.setRoot(t),e}},,,function(e,t,a){"use strict";function n(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}a.d(t,"a",(function(){return r}));class r{constructor(){var e,t,a;a={},(t="subscribers")in(e=this)?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}subscribe(e){let t=n();for(;void 0!==this.subscribers[t];)t=n();return this.subscribers[t]=e,()=>{delete this.subscribers[t]}}emit(...e){for(const t in this.subscribers){const a=this.subscribers[t];void 0!==a&&a(...e)}}}},function(e,t,a){"use strict";a.d(t,"f",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"e",(function(){return p})),a.d(t,"d",(function(){return d})),a.d(t,"a",(function(){return f})),a.d(t,"b",(function(){return g}));var n=a(27),r=a(45),i=a(510),o=a(5),s=a(8),l=a(60),c=a(59),u=a(621);function m(e){if(null!=e.ip&&Object(n.g)(e.ip)&&(e.ip=Object(n.e)()),null!=Object(n.d)(e.hostname)){let t=e.hostname;for(let a=0;a<200&&(t=`${e.hostname}-${a}`,null!=Object(n.d)(t));++a);e.hostname=t}return new r.a(e)}function h(e,t,a,n=1){let r=1+(s.a.ServerBaseGrowthRate-1)/e.hackDifficulty;r>s.a.ServerMaxGrowthRate&&(r=s.a.ServerMaxGrowthRate);const i=e.serverGrowth/100,l=1+(n-1)/16;return Math.log(t)/(Math.log(r)*a.hacking_grow_mult*i*o.a.ServerGrowthRate*l)}function p(e,t,a,n=1){let r=Object(i.a)(e,t,a,n);r<1&&(console.warn("serverGrowth calculated to be less than 1"),r=1);const o=e.moneyAvailable;if(e.moneyAvailable+=1*t,e.moneyAvailable*=r,Object(u.a)(e.moneyMax)&&isNaN(e.moneyAvailable)&&(e.moneyAvailable=e.moneyMax),Object(u.a)(e.moneyMax)&&e.moneyAvailable>e.moneyMax&&(e.moneyAvailable=e.moneyMax),o!==e.moneyAvailable){let r=h(e,e.moneyAvailable/o,a,n);r=Math.min(Math.max(0,Math.ceil(r)),t),e.fortify(2*s.a.ServerFortifyAmount*r)}return e.moneyAvailable/o}function d(e){const t=e.programs.includes(l.a.BitFlume.name);e.programs.length=0,e.runningScripts=[],e.serversOnNetwork=[],e.isConnectedTo=!0,e.ramUsed=0,e.programs.push(l.a.NukeProgram.name),t&&e.programs.push(l.a.BitFlume.name),e.scripts.forEach((function(t){t.updateRamUsage(e.scripts)})),e.messages.length=0,e.messages.push(c.a.HackersStartingHandbook)}function f(e,t){return t>e.serversOnNetwork.length?(console.error("Tried to get server on network that was out of range"),null):Object(n.d)(e.serversOnNetwork[t])}function g(e){return e instanceof r.a&&e.backdoorInstalled}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={BladesIntuition:"Blade's Intuition",Cloak:"Cloak",Marksman:"Marksman",WeaponProficiency:"Weapon Proficiency",ShortCircuit:"Short-Circuit",DigitalObserver:"Digital Observer",Tracer:"Tracer",Overclock:"Overclock",Reaper:"Reaper",EvasiveSystem:"Evasive System",Datamancer:"Datamancer",CybersEdge:"Cyber's Edge",HandsOfMidas:"Hands of Midas",Hyperdrive:"Hyperdrive"}},,function(e,t,a){"use strict";function n(e){return"string"==typeof e||e instanceof String}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(39),o=a(169),s=a(236),l=a(56),c=a(1);function u({rows:e,title:t,wide:a}){const n=a?s.a:i.a;return r.a.createElement(r.a.Fragment,null,t&&r.a.createElement(c.a,null,t),r.a.createElement(n,{size:"small",padding:"none"},r.a.createElement(o.a,null,e.map((e,t)=>r.a.createElement(l.a,{key:t},e.map((e,t)=>r.a.createElement(i.b,{key:t,align:0!==t?"right":"left"},r.a.createElement(c.a,{noWrap:!0},e))))))))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(314),r=a(21);class i extends n.a{constructor(e=null){super(e),this.count=1}getActionTimePenalty(){return 1.5}getChaosCompetencePenalty(){return 1}getChaosDifficultyBonus(){return 1}toJSON(){return Object(r.b)("BlackOperation",this)}static fromJSON(e){return Object(r.a)(i,e.data)}}r.c.constructors.BlackOperation=i},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),i=a(126),o=a(154);const s=Object(i.a)(e=>Object(o.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();return e.corp.funds>e.money?n.createElement("span",{className:t.money},r.a.formatMoney(e.money)):n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return h}));var n=a(295),r=a(163),i=a(264),o=a(324),s=a(27),l=a(286),c=a(15),u=a(508),m=a(2);function h(e,t,a){if(null!=a&&"boolean"==typeof a||(a=!0),e instanceof n.a)return d(e),!0;if(e instanceof o.a&&"string"==typeof t){const n=p(e.pid,a);if(n)return n;for(const n of r.a.values())if(n.name==e.filename&&n.hostname==t&&Object(l.a)(n.args,e.args))return d(n,a),!0;return!1}return"number"==typeof e?p(e,a):(console.error("killWorkerScript() called with invalid argument:"),console.error(e),!1)}function p(e,t=!0){const a=r.a.get(e);return a instanceof n.a&&(d(a,t),!0)}function d(e,t=!0){if("function"==typeof e.atExit){try{e.atExit()}catch(t){Object(c.a)(`Error trying to call atExit for script ${e.name} on ${e.hostname} ${e.scriptRef.args} ${t}`)}e.atExit=void 0}e.env.stopFlag=!0,function(e){e instanceof n.a&&e.delay&&(clearTimeout(e.delay),e.delayResolve&&e.delayResolve())}(e),function(e,t=!0){const a=e.hostname,n=e.name,o=Object(s.d)(a);if(null==o)return void console.error("Could not find server on which this script is running: "+a);for(let t=0;tu("string"!=typeof t?t:0),size:"large"},r.a.createElement(o.a,null)))),endAdornment:r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{title:"Remove"},r.a.createElement(c.a,{onClick:()=>h("string"!=typeof t?t:0),size:"large"},r.a.createElement(l.a,null))),r.a.createElement(f.a,{title:"Reset"},r.a.createElement(c.a,{onClick:g,size:"large"},r.a.createElement(m.a,null))))}}))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return i}));var n=a(0);const r={Gang:a.n(n).a.createContext({})},i=()=>Object(n.useContext)(r.Gang)},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(21),r=a(31);const i={b:!0,initPrice:1e4,marketCap:1e12,mv:1,name:"",otlkMag:0,spreadPerc:0,shareTxForMovement:1e6,symbol:""};function o(e){let t;switch(typeof e){case"number":return e;case"object":{const a=e;t=Object(r.a)(a.min,a.max);break}default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}return"object"==typeof e&&"number"==typeof e.divisor?t/e.divisor:t}class s{constructor(e=i){this.name=e.name,this.symbol=e.symbol,this.price=o(e.initPrice),this.lastPrice=this.price,this.playerShares=0,this.playerAvgPx=0,this.playerShortShares=0,this.playerAvgShortPx=0,this.mv=o(e.mv),this.b=e.b,this.otlkMag=e.otlkMag,this.otlkMagForecast=this.getAbsoluteForecast(),this.cap=Object(r.a)(1e3*this.price,25e3*this.price),this.spreadPerc=o(e.spreadPerc),this.shareTxForMovement=o(e.shareTxForMovement),this.shareTxUntilMovement=this.shareTxForMovement;const t=e.marketCap/this.price;this.totalShares=1e5*Math.round(t/1e5);this.maxShares=1e5*Math.round(.2*this.totalShares/1e5)}changeForecastForecast(e){this.otlkMagForecast=e,this.otlkMagForecast>100?this.otlkMagForecast=100:this.otlkMagForecast<0&&(this.otlkMagForecast=0)}changePrice(e){this.lastPrice=this.price,this.price=e}cycleForecast(e=.1){const t=this.getForecastIncreaseChance();Math.random()5&&(this.otlkMag=Math.max(5,this.otlkMag-e))}influenceForecastForecast(e){this.otlkMagForecast>50?(this.otlkMagForecast-=e,this.otlkMagForecast=Math.max(50,this.otlkMagForecast)):this.otlkMagForecast<50&&(this.otlkMagForecast+=e,this.otlkMagForecast=Math.min(50,this.otlkMagForecast))}toJSON(){return Object(n.b)("Stock",this)}static fromJSON(e){return Object(n.a)(s,e.data)}}n.c.constructors.Stock=s},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},,,function(e,t,a){"use strict";a.d(t,"e",(function(){return C})),a.d(t,"d",(function(){return w})),a.d(t,"c",(function(){return k})),a.d(t,"a",(function(){return _})),a.d(t,"b",(function(){return S}));var n=a(34),r=a(20),i=a(279),o=a(6),s=a(5),l=a(8),c=a(24),u=a(2),m=a(321),h=a(60),p=a(74),d=a(15),f=a(1121),g=a(328),y=a(0),b=a.n(y);function E(e){const t=e.name;r.a[t]=e}function k(){for(const e in c.a)c.a.hasOwnProperty(e)&&(c.a[e].augmentations=[]);Object(f.a)(r.a);const e=function(){const e=[{bonuses:{hacking_chance_mult:1.25,hacking_speed_mult:1.1,hacking_money_mult:1.25,hacking_grow_mult:1.1},description:"Increases the player's hacking chance by 25%.
Increases the player's hacking speed by 10%.
Increases the amount of money the player's gains from hacking by 25%.
Improves grow() by 10%."},{bonuses:{hacking_mult:1.15,hacking_exp_mult:2},description:"Increases the player's hacking skill by 15%.
Increases the player's hacking experience gain rate by 100%."},{bonuses:{strength_mult:1.25,strength_exp_mult:2,defense_mult:1.25,defense_exp_mult:2,dexterity_mult:1.25,dexterity_exp_mult:2,agility_mult:1.25,agility_exp_mult:2},description:"Increases all of the player's combat stats by 25%.
Increases all of the player's combat stat experience gain rate by 100%."},{bonuses:{charisma_mult:1.5,charisma_exp_mult:2},description:"This augmentation increases the player's charisma by 50%.
Increases the player's charisma experience gain rate by 100%."},{bonuses:{hacknet_node_money_mult:1.2,hacknet_node_purchase_cost_mult:.85,hacknet_node_ram_cost_mult:.85,hacknet_node_core_cost_mult:.85,hacknet_node_level_cost_mult:.85},description:"Increases the amount of money produced by Hacknet Nodes by 20%.
Decreases all costs related to Hacknet Node by 15%."},{bonuses:{company_rep_mult:1.25,faction_rep_mult:1.15,work_money_mult:1.7},description:"Increases the amount of money the player gains from working by 70%.
Increases the amount of reputation the player gains when working for a company by 25%.
Increases the amount of reputation the player gains for a faction by 15%."},{bonuses:{crime_success_mult:2,crime_money_mult:2},description:"Increases the player's crime success rate by 100%.
Increases the amount of money the player gains from crimes by 100%."}],t=new g.b(Math.floor(u.a.lastUpdate/36e5));for(let e=0;e<5;e++)t.step();return e[Math.floor(e.length*t.random())]}(),t={name:o.a.UnstableCircadianModulator,moneyCost:5e9,repCost:362500,info:"An experimental nanobot injection. Its unstable nature leads to unpredictable results based on your circadian rhythm."};Object.keys(e.bonuses).forEach(a=>t[a]=e.bonuses[a]);const a=new n.a(t);a.addToFactions(["Speakers for the Dead"]),S(o.a.UnstableCircadianModulator)&&delete r.a[o.a.UnstableCircadianModulator],E(a);const i=new n.a({name:o.a.HemoRecirculator,moneyCost:45e6,repCost:1e4,info:"A heart implant that greatly increases the body's ability to effectively use and pump blood.",strength_mult:1.08,defense_mult:1.08,agility_mult:1.08,dexterity_mult:1.08});i.addToFactions(["Tetrads","The Dark Army","The Syndicate"]),S(o.a.HemoRecirculator)&&delete r.a[o.a.HemoRecirculator],E(i);const m=new n.a({name:o.a.Targeting1,moneyCost:15e6,repCost:5e3,info:"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates and enhances balance and hand-eye coordination.",dexterity_mult:1.1});m.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Sector-12","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.Targeting1)&&delete r.a[o.a.Targeting1],E(m);const d=new n.a({name:o.a.Targeting2,moneyCost:425e5,repCost:8750,info:"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting reality by digitally displaying weaknesses and vital signs of threats.",prereqs:[o.a.Targeting1],dexterity_mult:1.2});d.addToFactions(["The Dark Army","The Syndicate","Sector-12","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.Targeting2)&&delete r.a[o.a.Targeting2],E(d);const y=new n.a({name:o.a.Targeting3,moneyCost:115e6,repCost:27500,info:"The latest version of the 'Augmented Targeting' implant adds the ability to lock-on and track threats.",prereqs:[o.a.Targeting2],dexterity_mult:1.3});y.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(o.a.Targeting3)&&delete r.a[o.a.Targeting3],E(y);const k=new n.a({name:o.a.SyntheticHeart,moneyCost:2875e6,repCost:75e4,info:"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood more efficiently than an organic heart.",agility_mult:1.5,strength_mult:1.5});k.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati"]),S(o.a.SyntheticHeart)&&delete r.a[o.a.SyntheticHeart],E(k);const _=new n.a({name:o.a.SynfibrilMuscle,repCost:437500,moneyCost:1125e6,info:"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. Scientists have named these artificially enhanced units 'synfibrils'.",strength_mult:1.3,defense_mult:1.3});_.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati","Blade Industries"]),S(o.a.SynfibrilMuscle)&&delete r.a[o.a.SynfibrilMuscle],E(_);const w=new n.a({name:o.a.CombatRib1,repCost:7500,moneyCost:2375e4,info:"The rib cage is augmented to continuously release boosters into the bloodstream which increase the oxygen-carrying capacity of blood.",strength_mult:1.1,defense_mult:1.1});w.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Volhaven","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.CombatRib1)&&delete r.a[o.a.CombatRib1],E(w);const C=new n.a({name:o.a.CombatRib2,repCost:18750,moneyCost:65e6,info:"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which improve focus and endurance while decreasing reaction time and fatigue.",prereqs:[o.a.CombatRib1],strength_mult:1.14,defense_mult:1.14});C.addToFactions(["The Dark Army","The Syndicate","Volhaven","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.CombatRib2)&&delete r.a[o.a.CombatRib2],E(C);const x=new n.a({name:o.a.CombatRib3,repCost:35e3,moneyCost:12e7,info:"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that improve muscle mass and physical performance while being safe and free of side effects.",prereqs:[o.a.CombatRib2],strength_mult:1.18,defense_mult:1.18});x.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(o.a.CombatRib3)&&delete r.a[o.a.CombatRib3],E(x);const O=new n.a({name:o.a.NanofiberWeave,repCost:37500,moneyCost:125e6,info:"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, which improves its regenerative and extracellular homeostasis abilities.",strength_mult:1.2,defense_mult:1.2});O.addToFactions(["Tian Di Hui","The Syndicate","The Dark Army","Speakers for the Dead","Blade Industries","Fulcrum Secret Technologies","OmniTek Incorporated"]),S(o.a.NanofiberWeave)&&delete r.a[o.a.NanofiberWeave],E(O);const M=new n.a({name:o.a.SubdermalArmor,repCost:875e3,moneyCost:325e7,info:"The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. The material is implanted underneath the skin, and is the most advanced form of defensive enhancement that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to mitigate damage from any fire or electrical traumas.",defense_mult:2.2});M.addToFactions(["The Syndicate","Fulcrum Secret Technologies","Illuminati","Daedalus","The Covenant"]),S(o.a.SubdermalArmor)&&delete r.a[o.a.SubdermalArmor],E(M);const T=new n.a({name:o.a.WiredReflexes,repCost:1250,moneyCost:25e5,info:"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, supercharging the spread of neural signals and increasing reflex speed.",agility_mult:1.05,dexterity_mult:1.05});T.addToFactions(["Tian Di Hui","Slum Snakes","Sector-12","Volhaven","Aevum","Ishima","The Syndicate","The Dark Army","Speakers for the Dead"]),S(o.a.WiredReflexes)&&delete r.a[o.a.WiredReflexes],E(T);const R=new n.a({name:o.a.GrapheneBoneLacings,repCost:1125e3,moneyCost:425e7,info:"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.",strength_mult:1.7,defense_mult:1.7});R.addToFactions(["Fulcrum Secret Technologies","The Covenant"]),S(o.a.GrapheneBoneLacings)&&delete r.a[o.a.GrapheneBoneLacings],E(R);const A=new n.a({name:o.a.BionicSpine,repCost:45e3,moneyCost:125e6,info:"The spine is reconstructed using plasteel and carbon fibers. It is now capable of stimulating and regulating neural signals passing through the spinal cord, improving senses and reaction speed. The 'Bionic Spine' also interfaces with all other 'Bionic' implants.",strength_mult:1.15,defense_mult:1.15,agility_mult:1.15,dexterity_mult:1.15});A.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(o.a.BionicSpine)&&delete r.a[o.a.BionicSpine],E(A);const P=new n.a({name:o.a.GrapheneBionicSpine,repCost:1625e3,moneyCost:6e9,info:"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene which enhances durability and supercharges all body functions.",prereqs:[o.a.BionicSpine],strength_mult:1.6,defense_mult:1.6,agility_mult:1.6,dexterity_mult:1.6});P.addToFactions(["Fulcrum Secret Technologies","ECorp"]),S(o.a.GrapheneBionicSpine)&&delete r.a[o.a.GrapheneBionicSpine],E(P);const N=new n.a({name:o.a.BionicLegs,repCost:15e4,moneyCost:375e6,info:"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.",agility_mult:1.6});N.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(o.a.BionicLegs)&&delete r.a[o.a.BionicLegs],E(N);const I=new n.a({name:o.a.GrapheneBionicLegs,repCost:75e4,moneyCost:45e8,info:"An upgrade to the 'Bionic Legs' augmentation. The legs are fused with graphene, greatly enhancing jumping ability.",prereqs:[o.a.BionicLegs],agility_mult:2.5});I.addToFactions(["MegaCorp","ECorp","Fulcrum Secret Technologies"]),S(o.a.GrapheneBionicLegs)&&delete r.a[o.a.GrapheneBionicLegs],E(I);const F=new n.a({name:o.a.SpeechProcessor,repCost:7500,moneyCost:5e7,info:"A cochlear implant with an embedded computer that analyzes incoming speech. The embedded computer processes characteristics of incoming speech, such as tone and inflection, to pick up on subtle cues and aid in social interactions.",charisma_mult:1.2});F.addToFactions(["Tian Di Hui","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Silhouette"]),S(o.a.SpeechProcessor)&&delete r.a[o.a.SpeechProcessor],E(F);const D=new n.a({name:o.a.TITN41Injection,repCost:25e3,moneyCost:19e7,info:"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that control personality. The TITN-41 strain alters these genes so that the subject becomes more outgoing and socialable.",charisma_mult:1.15,charisma_exp_mult:1.15});D.addToFactions(["Silhouette"]),S(o.a.TITN41Injection)&&delete r.a[o.a.TITN41Injection],E(D);const j=new n.a({name:o.a.EnhancedSocialInteractionImplant,repCost:375e3,moneyCost:1375e6,info:"A cranial implant that greatly assists in the user's ability to analyze social situations and interactions. The system uses a wide variety of factors such as facial expressions, body language, and the voice tone, and inflection to determine the best course of action during socialsituations. The implant also uses deep learning software to continuously learn new behaviorpatterns and how to best respond.",charisma_mult:1.6,charisma_exp_mult:1.6});j.addToFactions(["Bachman & Associates","NWO","Clarke Incorporated","OmniTek Incorporated","Four Sigma"]),S(o.a.EnhancedSocialInteractionImplant)&&delete r.a[o.a.EnhancedSocialInteractionImplant],E(j);const B=new n.a({name:o.a.BitWire,repCost:3750,moneyCost:1e7,info:"A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing capabilities.",hacking_mult:1.05});B.addToFactions(["CyberSec","NiteSec"]),S(o.a.BitWire)&&delete r.a[o.a.BitWire],E(B);const G=new n.a({name:o.a.ArtificialBioNeuralNetwork,repCost:275e3,moneyCost:3e9,info:"A network consisting of millions of nanoprocessors is embedded into the brain. The network is meant to mimic the way a biological brain solves a problem, with each nanoprocessor acting similar to the way a neuron would in a neural network. However, these nanoprocessors are programmed to perform computations much faster than organic neurons, allowing the user to solve much more complex problems at a much faster rate.",hacking_speed_mult:1.03,hacking_money_mult:1.15,hacking_mult:1.12});G.addToFactions(["BitRunners","Fulcrum Secret Technologies"]),S(o.a.ArtificialBioNeuralNetwork)&&delete r.a[o.a.ArtificialBioNeuralNetwork],E(G);const L=new n.a({name:o.a.ArtificialSynapticPotentiation,repCost:6250,moneyCost:8e7,info:"The body is injected with a chemical that artificially induces synaptic potentiation, otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.",hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_exp_mult:1.05});L.addToFactions(["The Black Hand","NiteSec"]),S(o.a.ArtificialSynapticPotentiation)&&delete r.a[o.a.ArtificialSynapticPotentiation],E(L);const W=new n.a({name:o.a.EnhancedMyelinSheathing,repCost:1e5,moneyCost:1375e6,info:"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. This process results in the proliferation of new, synthetic myelin sheaths in the nervous system. These myelin sheaths can propogate neuro-signals much faster than their organic counterparts, leading to greater processing speeds and better brain function.",hacking_speed_mult:1.03,hacking_exp_mult:1.1,hacking_mult:1.08});W.addToFactions(["Fulcrum Secret Technologies","BitRunners","The Black Hand"]),S(o.a.EnhancedMyelinSheathing)&&delete r.a[o.a.EnhancedMyelinSheathing],E(W);const H=new n.a({name:o.a.SynapticEnhancement,repCost:2e3,moneyCost:75e5,info:"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and induce stronger synaptic activity. This improves the user's cognitive abilities.",hacking_speed_mult:1.03});H.addToFactions(["CyberSec","Aevum"]),S(o.a.SynapticEnhancement)&&delete r.a[o.a.SynapticEnhancement],E(H);const U=new n.a({name:o.a.NeuralRetentionEnhancement,repCost:2e4,moneyCost:25e7,info:"Chemical injections are used to permanently alter and strengthen the brain's neuronal circuits, strengthening the ability to retain information.",hacking_exp_mult:1.25});U.addToFactions(["NiteSec"]),S(o.a.NeuralRetentionEnhancement)&&delete r.a[o.a.NeuralRetentionEnhancement],E(U);const q=new n.a({name:o.a.DataJack,repCost:112500,moneyCost:45e7,info:"A brain implant that provides an interface for direct, wireless communication between a computer's main memory and the mind. This implant allows the user to not only access a computer's memory, but also alter and delete it.",hacking_money_mult:1.25});q.addToFactions(["BitRunners","The Black Hand","NiteSec","Chongqing","New Tokyo"]),S(o.a.DataJack)&&delete r.a[o.a.DataJack],E(q);const K=new n.a({name:o.a.ENM,repCost:15e3,moneyCost:25e7,info:"A thin device embedded inside the arm containing a wireless module capable of connecting to nearby networks. Once connected, the Netburner Module is capable of capturing and processing all of the traffic on that network. By itself, the Embedded Netburner Module does not do much, but a variety of very powerful upgrades can be installed that allow you to fully control the traffic on a network.",hacking_mult:1.08});K.addToFactions(["BitRunners","The Black Hand","NiteSec","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(o.a.ENM)&&delete r.a[o.a.ENM],E(K);const z=new n.a({name:o.a.ENMCore,repCost:175e3,moneyCost:25e8,info:"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgrade allows the Embedded Netburner Module to generate its own data on a network.",prereqs:[o.a.ENM],hacking_speed_mult:1.03,hacking_money_mult:1.1,hacking_chance_mult:1.03,hacking_exp_mult:1.07,hacking_mult:1.07});z.addToFactions(["BitRunners","The Black Hand","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(o.a.ENMCore)&&delete r.a[o.a.ENMCore],E(z);const $=new n.a({name:o.a.ENMCoreV2,repCost:1e6,moneyCost:45e8,info:"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to control information on a network by re-routing traffic, spoofing IP addresses, and altering the data inside network packets.",prereqs:[o.a.ENMCore],hacking_speed_mult:1.05,hacking_money_mult:1.3,hacking_chance_mult:1.05,hacking_exp_mult:1.15,hacking_mult:1.08});$.addToFactions(["BitRunners","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries","OmniTek Incorporated","KuaiGong International"]),S(o.a.ENMCoreV2)&&delete r.a[o.a.ENMCoreV2],E($);const Y=new n.a({name:o.a.ENMCoreV3,repCost:175e4,moneyCost:75e8,info:"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into any device on a network.",prereqs:[o.a.ENMCoreV2],hacking_speed_mult:1.05,hacking_money_mult:1.4,hacking_chance_mult:1.1,hacking_exp_mult:1.25,hacking_mult:1.1});Y.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMCoreV3)&&delete r.a[o.a.ENMCoreV3],E(Y);const V=new n.a({name:o.a.ENMAnalyzeEngine,repCost:625e3,moneyCost:6e9,info:"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster that vastly outperforms the Netburner Module's native single-core processor.",prereqs:[o.a.ENM],hacking_speed_mult:1.1});V.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMAnalyzeEngine)&&delete r.a[o.a.ENMAnalyzeEngine],E(V);const J=new n.a({name:o.a.ENMDMA,repCost:1e6,moneyCost:7e9,info:"This implant installs a Direct Memory Access (DMA) controller into the Embedded Netburner Module. This allows the Module to send and receive data directly to and from the main memory of devices on a network.",prereqs:[o.a.ENM],hacking_money_mult:1.4,hacking_chance_mult:1.2});J.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMDMA)&&delete r.a[o.a.ENMDMA],E(J);const X=new n.a({name:o.a.Neuralstimulator,repCost:5e4,moneyCost:3e9,info:"A cranial implant that intelligently stimulates certain areas of the brain in order to improve cognitive functions.",hacking_speed_mult:1.02,hacking_chance_mult:1.1,hacking_exp_mult:1.12});X.addToFactions(["The Black Hand","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Bachman & Associates","Clarke Incorporated","Four Sigma"]),S(o.a.Neuralstimulator)&&delete r.a[o.a.Neuralstimulator],E(X);const Q=new n.a({name:o.a.NeuralAccelerator,repCost:2e5,moneyCost:175e7,info:"A microprocessor that accelerates the processing speed of biological neural networks. This is a cranial implant that is embedded inside the brain.",hacking_mult:1.1,hacking_exp_mult:1.15,hacking_money_mult:1.2});Q.addToFactions(["BitRunners"]),S(o.a.NeuralAccelerator)&&delete r.a[o.a.NeuralAccelerator],E(Q);const Z=new n.a({name:o.a.CranialSignalProcessorsG1,repCost:1e4,moneyCost:7e7,info:"The first generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",hacking_speed_mult:1.01,hacking_mult:1.05});Z.addToFactions(["CyberSec"]),S(o.a.CranialSignalProcessorsG1)&&delete r.a[o.a.CranialSignalProcessorsG1],E(Z);const ee=new n.a({name:o.a.CranialSignalProcessorsG2,repCost:18750,moneyCost:125e6,info:"The second generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG1],hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_mult:1.07});ee.addToFactions(["CyberSec","NiteSec"]),S(o.a.CranialSignalProcessorsG2)&&delete r.a[o.a.CranialSignalProcessorsG2],E(ee);const te=new n.a({name:o.a.CranialSignalProcessorsG3,repCost:5e4,moneyCost:55e7,info:"The third generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG2],hacking_speed_mult:1.02,hacking_money_mult:1.15,hacking_mult:1.09});te.addToFactions(["NiteSec","The Black Hand","BitRunners"]),S(o.a.CranialSignalProcessorsG3)&&delete r.a[o.a.CranialSignalProcessorsG3],E(te);const ae=new n.a({name:o.a.CranialSignalProcessorsG4,repCost:125e3,moneyCost:11e8,info:"The fourth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG3],hacking_speed_mult:1.02,hacking_money_mult:1.2,hacking_grow_mult:1.25});ae.addToFactions(["The Black Hand","BitRunners"]),S(o.a.CranialSignalProcessorsG4)&&delete r.a[o.a.CranialSignalProcessorsG4],E(ae);const ne=new n.a({name:o.a.CranialSignalProcessorsG5,repCost:25e4,moneyCost:225e7,info:"The fifth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG4],hacking_mult:1.3,hacking_money_mult:1.25,hacking_grow_mult:1.75});ne.addToFactions(["BitRunners"]),S(o.a.CranialSignalProcessorsG5)&&delete r.a[o.a.CranialSignalProcessorsG5],E(ne);const re=new n.a({name:o.a.NeuronalDensification,repCost:187500,moneyCost:1375e6,info:"The brain is surgically re-engineered to have increased neuronal density by decreasing the neuron gap junction. Then, the body is genetically modified to enhance the production and capabilities of its neural stem cells.",hacking_mult:1.15,hacking_exp_mult:1.1,hacking_speed_mult:1.03});re.addToFactions(["Clarke Incorporated"]),S(o.a.NeuronalDensification)&&delete r.a[o.a.NeuronalDensification],E(re);const ie=new n.a({name:o.a.NuoptimalInjectorImplant,repCost:5e3,moneyCost:2e7,info:"This torso implant automatically injects nootropic supplements into the bloodstream to improve memory, increase focus, and provide other cognitive enhancements.",company_rep_mult:1.2});ie.addToFactions(["Tian Di Hui","Volhaven","New Tokyo","Chongqing","Clarke Incorporated","Four Sigma","Bachman & Associates"]),S(o.a.NuoptimalInjectorImplant)&&delete r.a[o.a.NuoptimalInjectorImplant],E(ie);const oe=new n.a({name:o.a.SpeechEnhancement,repCost:2500,moneyCost:125e5,info:"An advanced neural implant that improves your speaking abilities, making you more convincing and likable in conversations and overall improving your social interactions.",company_rep_mult:1.1,charisma_mult:1.1});oe.addToFactions(["Tian Di Hui","Speakers for the Dead","Four Sigma","KuaiGong International","Clarke Incorporated","Bachman & Associates"]),S(o.a.SpeechEnhancement)&&delete r.a[o.a.SpeechEnhancement],E(oe);const se=new n.a({name:o.a.FocusWire,repCost:75e3,moneyCost:9e8,info:"A cranial implant that stops procrastination by blocking specific neural pathways in the brain.",hacking_exp_mult:1.05,strength_exp_mult:1.05,defense_exp_mult:1.05,dexterity_exp_mult:1.05,agility_exp_mult:1.05,charisma_exp_mult:1.05,company_rep_mult:1.1,work_money_mult:1.2});se.addToFactions(["Bachman & Associates","Clarke Incorporated","Four Sigma","KuaiGong International"]),S(o.a.FocusWire)&&delete r.a[o.a.FocusWire],E(se);const le=new n.a({name:o.a.PCDNI,repCost:375e3,moneyCost:375e7,info:"Installs a Direct-Neural Interface jack into your arm that is compatible with most computers. Connecting to a computer through this jack allows you to interface with it using the brain's electrochemical signals.",company_rep_mult:1.3,hacking_mult:1.08});le.addToFactions(["Four Sigma","OmniTek Incorporated","ECorp","Blade Industries"]),S(o.a.PCDNI)&&delete r.a[o.a.PCDNI],E(le);const ce=new n.a({name:o.a.PCDNIOptimizer,repCost:5e5,moneyCost:45e8,info:"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It improves the performance of the interface and gives the user more control options to a connected computer.",prereqs:[o.a.PCDNI],company_rep_mult:1.75,hacking_mult:1.1});ce.addToFactions(["Fulcrum Secret Technologies","ECorp","Blade Industries"]),S(o.a.PCDNIOptimizer)&&delete r.a[o.a.PCDNIOptimizer],E(ce);const ue=new n.a({name:o.a.PCDNINeuralNetwork,repCost:15e5,moneyCost:75e8,info:"This is an additional installation that upgrades the functionality of the PC Direct-Neural Interface augmentation. When connected to a computer, The Neural Network upgrade allows the user to use their own brain's processing power to aid the computer in computational tasks.",prereqs:[o.a.PCDNI],company_rep_mult:2,hacking_mult:1.1,hacking_speed_mult:1.05});ue.addToFactions(["Fulcrum Secret Technologies"]),S(o.a.PCDNINeuralNetwork)&&delete r.a[o.a.PCDNINeuralNetwork],E(ue);const me=new n.a({name:o.a.ADRPheromone1,repCost:3750,moneyCost:175e5,info:"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, triggers feelings of admiration and approval in other people.",company_rep_mult:1.1,faction_rep_mult:1.1});me.addToFactions(["Tian Di Hui","The Syndicate","NWO","MegaCorp","Four Sigma"]),S(o.a.ADRPheromone1)&&delete r.a[o.a.ADRPheromone1],E(me);const he=new n.a({name:o.a.ADRPheromone2,repCost:62500,moneyCost:55e7,info:"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, which is similar to but more potent than ADR-V1. This pheromone, when excreted, triggers feelings of admiration, approval, and respect in others.",company_rep_mult:1.2,faction_rep_mult:1.2});he.addToFactions(["Silhouette","Four Sigma","Bachman & Associates","Clarke Incorporated"]),S(o.a.ADRPheromone2)&&delete r.a[o.a.ADRPheromone2],E(he);const pe=new n.a({name:o.a.ShadowsSimulacrum,repCost:37500,moneyCost:4e8,info:"A crude but functional matter phase-shifter module that is embedded in the brainstem and cerebellum. This augmentation was developed by criminal organizations and allows the user to project and control holographic simulacrums within a large radius. These simulacrums are commonly used for espionage and surveillance work.",company_rep_mult:1.15,faction_rep_mult:1.15});pe.addToFactions(["The Syndicate","The Dark Army","Speakers for the Dead"]),S(o.a.ShadowsSimulacrum)&&delete r.a[o.a.ShadowsSimulacrum],E(pe);const de=new n.a({name:o.a.HacknetNodeCPUUpload,repCost:3750,moneyCost:11e6,info:"Uploads the architecture and design details of a Hacknet Node's CPU into the brain. This allows the user to engineer custom hardware and software for the Hacknet Node that provides better performance.",hacknet_node_money_mult:1.15,hacknet_node_purchase_cost_mult:.85});de.addToFactions(["Netburners"]),S(o.a.HacknetNodeCPUUpload)&&delete r.a[o.a.HacknetNodeCPUUpload],E(de);const fe=new n.a({name:o.a.HacknetNodeCacheUpload,repCost:2500,moneyCost:55e5,info:"Uploads the architecture and design details of a Hacknet Node's main-memory cache into the brain. This allows the user to engineer custom cache hardware for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_level_cost_mult:.85});fe.addToFactions(["Netburners"]),S(o.a.HacknetNodeCacheUpload)&&delete r.a[o.a.HacknetNodeCacheUpload],E(fe);const ge=new n.a({name:o.a.HacknetNodeNICUpload,repCost:1875,moneyCost:45e5,info:"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_purchase_cost_mult:.9});ge.addToFactions(["Netburners"]),S(o.a.HacknetNodeNICUpload)&&delete r.a[o.a.HacknetNodeNICUpload],E(ge);const ye=new n.a({name:o.a.HacknetNodeKernelDNI,repCost:7500,moneyCost:4e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's kernel using electrochemical signals.",hacknet_node_money_mult:1.25});ye.addToFactions(["Netburners"]),S(o.a.HacknetNodeKernelDNI)&&delete r.a[o.a.HacknetNodeKernelDNI],E(ye);const be=new n.a({name:o.a.HacknetNodeCoreDNI,repCost:12500,moneyCost:6e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using electrochemical signals.",hacknet_node_money_mult:1.45});be.addToFactions(["Netburners"]),S(o.a.HacknetNodeCoreDNI)&&delete r.a[o.a.HacknetNodeCoreDNI],E(be);const Ee=new n.a({name:o.a.NeuroFluxGovernor,repCost:1250,moneyCost:375e4,info:"A device that is embedded in the back of the neck. The NeuroFlux Governor monitors and regulates nervous impulses coming to and from the spinal column, essentially 'governing' the body. By doing so, it improves the functionality of the body's nervous system.",stats:b.a.createElement(b.a.Fragment,null,"This special augmentation can be leveled up infinitely. Each level of this augmentation increases ALL multipliers by 1%, stacking multiplicatively."),hacking_chance_mult:1.01,hacking_speed_mult:1.01,hacking_money_mult:1.01,hacking_grow_mult:1.01,hacking_mult:1.01,strength_mult:1.01,defense_mult:1.01,dexterity_mult:1.01,agility_mult:1.01,charisma_mult:1.01,hacking_exp_mult:1.01,strength_exp_mult:1.01,defense_exp_mult:1.01,dexterity_exp_mult:1.01,agility_exp_mult:1.01,charisma_exp_mult:1.01,company_rep_mult:1.01,faction_rep_mult:1.01,crime_money_mult:1.01,crime_success_mult:1.01,hacknet_node_money_mult:1.01,hacknet_node_purchase_cost_mult:.99,hacknet_node_ram_cost_mult:.99,hacknet_node_core_cost_mult:.99,hacknet_node_level_cost_mult:.99,work_money_mult:1.01});let ke=0;for(let e=0;e=0;e--)if(u.a.queuedAugmentations[e].name===o.a.NeuroFluxGovernor){t=e;break}for(let a=0;a"}return u.a.queuedAugmentations=[],Object(d.a)("You slowly drift to sleep as scientists put you under in order to install the following Augmentations:
"+e+"
You wake up in your home...you feel different..."),Object(m.a)(),!0}function S(e){return r.a.hasOwnProperty(e)}function C(e){return(e instanceof n.a?e.name:e)===o.a.NeuroFluxGovernor}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return o})),a.d(t,"d",(function(){return s})),a.d(t,"f",(function(){return l})),a.d(t,"e",(function(){return c})),a.d(t,"g",(function(){return m})),a.d(t,"h",(function(){return h}));var n=a(93);let r={},i={};function o(e){r=""===e?{}:JSON.parse(e)}function s(e){i=""===e?{}:JSON.parse(e)}function l(){for(const e in r)r.hasOwnProperty(e)&&n.a.print("alias "+e+"="+r[e]);for(const e in i)i.hasOwnProperty(e)&&n.a.print("global alias "+e+"="+i[e])}function c(e,t=!1){const a=e.match(/^([_|\w|!|%|,|@]+)="(.+)"$/);return null!=a&&3==a.length&&(t?function(e,t){e in r&&delete r[e];i[e]=t.trim()}(a[1],a[2]):function(e,t){e in i&&delete i[e];r[e]=t.trim()}(a[1],a[2]),!0)}function u(e){return i.hasOwnProperty(e)?i[e]:null}function m(e){return r.hasOwnProperty(e)?(delete r[e],!0):!!i.hasOwnProperty(e)&&(delete i[e],!0)}function h(e){const t=e.split(" ");if(t.length>0){if("unalias"===t[0]||"alias"===t[0])return t.join(" ");let e=!0,o=0;for(;e&&o<10;){var a;o++,e=!1;const s=null===(i=t[0],a=r.hasOwnProperty(i)?r[i]:null)||void 0===a?void 0:a.split(" ");null!=s&&(e=!0,t.splice(0,1,...s));for(let a=0;a{i=!0;let t=e.source.value;t.startsWith("./")&&(t=t.slice(2));const a=function(e){for(let t=0;t{a.push(e.id.name),n.push(e)}}),r+="var "+t+";\n(function (namespace) {\n",n.forEach(e=>{r+=Object(E.generate)(e),r+="\n"}),a.forEach(e=>{r+="namespace."+e+" = "+e,r+="\n"}),r+="})("+t+" || ("+t+" = {}));\n"}else{const t=[];e.specifiers.forEach(e=>{t.push(e.local.name)});const a=[];Object(x.b)(o,{FunctionDeclaration:e=>{t.includes(e.id.name)&&a.push(e)}}),a.forEach(e=>{r+=Object(E.generate)(e),r+="\n"})}}}),!i)return{code:e,lineOffset:0};let o=0;if("Program"!==a.type||null==a.body)throw new Error("Code could not be properly parsed");for(let e=a.body.length-1;e>=0;--e)"ImportDeclaration"===a.body[e].type&&(a.body.splice(e,1),++o);const s=(r.match(/\n/g)||[]).length-o;e=Object(E.generate)(a);return{code:e=r+e,lineOffset:s}}(t,e);a=n.code,i=n.lineOffset}catch(t){return Object(k.a)("Error processing Imports in "+e.name+":
"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}const o=function(t,a){const n=Object(m.a)(e);for(const e in n){const i=n[e];if("function"==typeof i)if(["hack","grow","weaken","sleep","prompt","manualHack","scp","write"].includes(e)){const n=function(...e){const a=[];for(let n=0;n"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}return new Promise((function(t,a){try{!function n(){try{if(e.env.stopFlag)return a(e);let r=!0,i=0;for(;i<3&&r;)r=r&&s.step(),i++;r?setTimeout(n,b.a.CodeInstructionRunTime):t(e)}catch(t){return t=t.toString(),Object(u.a)(t)||(t=Object(u.b)(e,t)),e.errorMessage=t,a(e)}}()}catch(t){return Object(w.a)(t)?(e.errorMessage=t,a(e)):t instanceof r.a?a(t):a(e)}}))}function P(e,t,a){return N(e,t,a)?(t.runScript(e),e.pid):0}function N(e,t,a){let l=1;e.threads&&!isNaN(e.threads)?l=e.threads:e.threads=1;const c=Object(f.a)(e),p=Object(_.a)(c*l);if(p>t.maxRam-t.ramUsed)return Object(k.a)(`Not enough RAM to run script ${e.filename} with args `+Object(v.a)(e.args)+". This likely occurred because you re-loaded the game and the script's RAM usage increased (either because of an update to the game or your changes to the script.)"),!1;t.updateRamUsed(Object(_.a)(t.ramUsed+p),M.a);const d=Object(s.a)();if(-1===d)throw new Error("Failed to start script because could not find available PID. This is most because you have too many scripts running.");const g=new r.a(e,d,m.a);g.ramUsage=c,i.a.set(d,g),o.a.emit();let y=null;if(g.name.endsWith(".js")||g.name.endsWith(".ns"))y=function(e){e.running=!0;let t=null;function a(a,n){return function(...r){if(e.env.stopFlag)throw e;if("asleep"===a)return n(...r);if(t)throw e.errorMessage=Object(u.b)(e,Object(S.sprintf)("Concurrent calls to Netscript functions not allowed! Did you forget to await hack(), grow(), or some other promise-returning function? (Currently running: %s tried to run: %s)",t,a)),e;let i;t=a;try{i=n(...r)}catch(e){throw t=null,e}return i&&void 0!==i.finally?i.finally((function(){t=null})):(t=null,i)}}for(const t in e.env.vars)"function"==typeof e.env.vars[t]&&(e.env.vars[t]=a(t,e.env.vars[t]));return e.env.vars.stanek.charge=a("stanek.prop",e.env.vars.stanek.charge),new Promise((t,a)=>{Object(h.b)(e.getServer().scripts,e).then(()=>{t(e)}).catch(e=>a(e))}).catch(t=>{if(t instanceof Error)throw t instanceof SyntaxError?e.errorMessage=Object(u.b)(e,t.message+" (sorry we can't be more helpful)"):e.errorMessage=Object(u.b)(e,t.message+(t.stack&&"\nstack:\n"+t.stack.toString()||"")),e;if(Object(u.a)(t))throw e.errorMessage=t,e;throw t})}(g);else if(y=A(g),!(y instanceof Promise))return!1;return y.then((function(t){void 0!==a&&a.running&&(a.scriptRef.onlineExpGained+=e.onlineExpGained,a.scriptRef.onlineMoneyMade+=e.onlineMoneyMade),Object(n.a)(g),t.log("",()=>"Script finished running")})).catch((function(e){if(e instanceof Error)return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: "+e.toString());if(e instanceof r.a){if(!Object(u.a)(e.errorMessage))return void e.log("",()=>"Script killed");{const t=e.errorMessage.split("|DELIMITER|");if(4!=t.length)return console.error("ERROR: Something wrong with Error text in evaluator..."),void console.error("Error text: "+e.errorMessage);const a=t[1],n=t[2],r=t[3];let i=`RUNTIME ERROR
${n}@${a}
`;e.args.length>0&&(i+=`Args: ${Object(v.a)(e.args)}
`),i+="
",i+=r,Object(k.a)(i),e.log("",()=>"Script crashed with runtime error")}e.running=!1,e.env.stopFlag=!0}else{if(Object(u.a)(e))return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: "+e.toString());Object(k.a)("An unknown script died for an unknown reason. This is a bug please contact game dev"),console.error(e)}Object(n.a)(g)})),!0}function I(e=1){const t=e*l.a._idleSpeed/1e3;for(const e of i.a.values())e.scriptRef.onlineRunningTime+=t}function F(){const e=-1!==window.location.href.toLowerCase().indexOf("?noscripts");e&&console.info("Skipping the load of any scripts during startup");for(const t of Object(y.c)()){t.ramUsed=0;for(let e=0;e`Invalid arguments: scriptname='${a} args='${n}'`),console.error("runScriptFromScript() failed due to invalid arguments"),0;n.forEach(e=>{if("string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e)throw new Error("Only strings, numbers, and booleans can be passed as arguments to otherscripts.")});if(null!=t.getRunningScript(a,n))return i.log(e,()=>`'${a}' is already running on '${t.hostname}'`),0;for(let t=0;t"Cannot execute a script with null/undefined as an argument"),0;for(let r=0;r`You do not have root access on '${t.hostname}'`),0;if(l>c)return i.log(e,()=>`Cannot run script '${a}' (t=${o}) on '${t.hostname}' because there is not enough available RAM!`),0;{i.log(e,()=>`'${a}' on '${t.hostname}' with ${o} threads and args: ${Object(v.a)(n)}.`);const r=new d.a(s,n);return r.threads=o,P(r,t,i)}}return i.log(e,()=>`Could not find script '${a}' on '${t.hostname}'`),0}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a){this.title=e,this.fn=t,this.txt=a}}},,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n),i=a(1),o=a(26);function s(e){const[t,a]=Object(n.useState)(!1);return r.a.createElement(o.a,{open:t,title:r.a.createElement(i.a,null,"Copied!")},r.a.createElement(i.a,{variant:e.variant,color:e.color,onClick:function(){const t=document.createElement("textarea");t.value=e.value,document.body.appendChild(t),t.select(),t.setSelectionRange(0,1e10),document.execCommand("copy"),document.body.removeChild(t),a(!0),setTimeout(()=>a(!1),1e3)}},e.value))}},,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r})),function(e){e.Weapon="w",e.Armor="a",e.Vehicle="v",e.Rootkit="r",e.Augmentation="g"}(n||(n={}));const r=[{cost:1e6,mults:{str:1.04,def:1.04},name:"Baseball Bat",upgType:n.Weapon},{cost:12e6,mults:{str:1.08,def:1.08,dex:1.08},name:"Katana",upgType:n.Weapon},{cost:25e6,mults:{str:1.1,def:1.1,dex:1.1,agi:1.1},name:"Glock 18C",upgType:n.Weapon},{cost:5e7,mults:{str:1.12,def:1.1,agi:1.1},name:"P90C",upgType:n.Weapon},{cost:6e7,mults:{str:1.2,def:1.15},name:"Steyr AUG",upgType:n.Weapon},{cost:1e8,mults:{str:1.25,def:1.2},name:"AK-47",upgType:n.Weapon},{cost:15e7,mults:{str:1.3,def:1.25},name:"M15A10 Assault Rifle",upgType:n.Weapon},{cost:225e6,mults:{str:1.3,dex:1.25,agi:1.3},name:"AWM Sniper Rifle",upgType:n.Weapon},{cost:2e6,mults:{def:1.04},name:"Bulletproof Vest",upgType:n.Armor},{cost:5e6,mults:{def:1.08},name:"Full Body Armor",upgType:n.Armor},{cost:25e6,mults:{def:1.15,agi:1.15},name:"Liquid Body Armor",upgType:n.Armor},{cost:4e7,mults:{def:1.2},name:"Graphene Plating Armor",upgType:n.Armor},{cost:3e6,mults:{agi:1.04,cha:1.04},name:"Ford Flex V20",upgType:n.Vehicle},{cost:9e6,mults:{agi:1.08,cha:1.08},name:"ATX1070 Superbike",upgType:n.Vehicle},{cost:18e6,mults:{agi:1.12,cha:1.12},name:"Mercedes-Benz S9001",upgType:n.Vehicle},{cost:3e7,mults:{agi:1.16,cha:1.16},name:"White Ferrari",upgType:n.Vehicle},{cost:5e6,mults:{hack:1.05},name:"NUKE Rootkit",upgType:n.Rootkit},{cost:25e6,mults:{hack:1.1},name:"Soulstealer Rootkit",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Demon Rootkit",upgType:n.Rootkit},{cost:4e7,mults:{hack:1.12},name:"Hmap Node",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Jack the Ripper",upgType:n.Rootkit},{cost:1e10,mults:{str:1.3,dex:1.3},name:"Bionic Arms",upgType:n.Augmentation},{cost:1e10,mults:{agi:1.6},name:"Bionic Legs",upgType:n.Augmentation},{cost:15e9,mults:{str:1.15,def:1.15,dex:1.15,agi:1.15},name:"Bionic Spine",upgType:n.Augmentation},{cost:2e10,mults:{str:1.4,def:1.4},name:"BrachiBlades",upgType:n.Augmentation},{cost:12e9,mults:{str:1.2,def:1.2},name:"Nanofiber Weave",upgType:n.Augmentation},{cost:25e9,mults:{str:1.5,agi:1.5},name:"Synthetic Heart",upgType:n.Augmentation},{cost:15e9,mults:{str:1.3,def:1.3},name:"Synfibril Muscle",upgType:n.Augmentation},{cost:5e9,mults:{hack:1.05},name:"BitWire",upgType:n.Augmentation},{cost:1e10,mults:{hack:1.15},name:"Neuralstimulator",upgType:n.Augmentation},{cost:75e8,mults:{hack:1.1},name:"DataJack",upgType:n.Augmentation},{cost:5e10,mults:{str:1.7,def:1.7},name:"Graphene Bone Lacings",upgType:n.Augmentation}]},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new Map},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Water:.05,Energy:.01,Food:.03,Plants:.05,Metal:.1,Hardware:.06,Chemicals:.05,Drugs:.02,Robots:.5,AICores:.1,RealEstate:.005,"Real Estate":.005,"AI Cores":.1}},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"d",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(36);function i(e,t,a,i,o){return r.b.HashesPerLevel*e*Math.pow(1.07,Math.log2(a))*(1+(i-1)/5)*(1-t/a)*o*n.a.HacknetNodeMoney}function o(e,t=1,a=1){const n=Math.round(t);if(isNaN(n)||n<1)return 0;if(e>=r.b.MaxLevel)return 1/0;const i=r.b.UpgradeLevelMult;let o=0,s=e;for(let e=0;e=r.b.MaxRam)return 1/0;let i=0,o=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.b.MaxCores)return 1/0;const i=r.b.UpgradeCoreMult;let o=0,s=e;for(let e=0;e=r.b.MaxCache)return 1/0;const n=r.b.UpgradeCacheMult;let i=0,o=e;for(let e=0;e=r.b.MaxServers?1/0:r.b.BaseCost*Math.pow(r.b.PurchaseMult,e-1)*t}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Field=0]="Field",e[e.Hacking=1]="Hacking",e[e.None=2]="None",e[e.Security=3]="Security"}(n||(n={}))},function(e,t,a){"use strict";function n(e,t=1){return Math.max(Math.floor(t*(32*Math.log(e+534.5)-200)),1)}function r(e,t=1){return Math.exp((e/t+200)/32)-534.6}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}))},,,function(e,t,a){"use strict";function n(e){const t=Object.assign({},{progress:0,totalTicks:20},e);t.progress=Math.max(Math.min(t.progress,1),0);const a=Math.max(Math.floor(t.progress/(1/t.totalTicks)),1),n=Math.max(t.totalTicks-a,0);return`[${"|".repeat(a)}${"-".repeat(n)}]`}a.d(t,"a",(function(){return n}))},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={}){r(this,"name","InitName"),r(this,"qty",0),r(this,"qlt",0),r(this,"dmd",0),r(this,"dmdR",[0,0]),r(this,"cmp",0),r(this,"cmpR",[0,0]),r(this,"mv",0),r(this,"mku",0),r(this,"buy",0),r(this,"sll",0),r(this,"prd",0),r(this,"imp",0),r(this,"exp",[]),r(this,"totalExp",0),r(this,"bCost",0),r(this,"sCost",0),r(this,"prdman",[!1,0]),r(this,"sllman",[!1,0]),r(this,"marketTa1",!1),r(this,"marketTa2",!1),r(this,"marketTa2Price",0),e.name&&(this.name=e.name),this.init()}getMarkupLimit(){return this.qlt/this.mku}init(){switch(this.name){case"Water":this.dmd=75,this.dmdR=[65,85],this.cmp=50,this.cmpR=[40,60],this.bCost=1500,this.mv=.2,this.mku=6;break;case"Energy":this.dmd=90,this.dmdR=[80,99],this.cmp=80,this.cmpR=[65,95],this.bCost=2e3,this.mv=.2,this.mku=6;break;case"Food":this.dmd=80,this.dmdR=[70,90],this.cmp=60,this.cmpR=[35,85],this.bCost=5e3,this.mv=1,this.mku=3;break;case"Plants":this.dmd=70,this.dmdR=[20,90],this.cmp=50,this.cmpR=[30,70],this.bCost=3e3,this.mv=.6,this.mku=3.75;break;case"Metal":this.dmd=80,this.dmdR=[75,85],this.cmp=70,this.cmpR=[60,80],this.bCost=2650,this.mv=1,this.mku=6;break;case"Hardware":this.dmd=85,this.dmdR=[80,90],this.cmp=80,this.cmpR=[65,95],this.bCost=8e3,this.mv=.5,this.mku=1;break;case"Chemicals":this.dmd=55,this.dmdR=[40,70],this.cmp=60,this.cmpR=[40,80],this.bCost=9e3,this.mv=1.2,this.mku=2;break;case"Real Estate":this.dmd=50,this.dmdR=[5,99],this.cmp=50,this.cmpR=[25,75],this.bCost=8e4,this.mv=1.5,this.mku=1.5;break;case"Drugs":this.dmd=60,this.dmdR=[45,75],this.cmp=70,this.cmpR=[40,99],this.bCost=4e4,this.mv=1.6,this.mku=1;break;case"Robots":this.dmd=90,this.dmdR=[80,9],this.cmp=90,this.cmpR=[80,9],this.bCost=75e3,this.mv=.5,this.mku=1;break;case"AI Cores":this.dmd=90,this.dmdR=[80,99],this.cmp=90,this.cmpR=[80,9],this.bCost=15e3,this.mv=.8,this.mku=.5;break;case"Scientific Research":case"InitName":break;default:console.error("Invalid material type in init(): "+this.name)}}processMarket(){const e=1+Math.random()*this.mv/300,t=1+Math.random()*this.mv/100;Math.random()<.5?(this.cmp*=t,this.cmp>this.cmpR[1]&&(this.cmp=this.cmpR[1]),this.bCost*=1/e):(this.cmp*=1/t,this.cmpthis.dmdR[1]&&(this.dmd=this.dmdR[1]),this.bCost*=e):(this.dmd*=1/a,this.dmdf.b.emit("Game Saved!","info")).catch(e=>console.error(e))}exportGame(){const e=this.getSaveString(),t=Math.round(Date.now()/1e3),a=c.a.bitNodeN;O(`bitburnerSave_${t}_BN${a}x${h.a[a]}.json`,e)}toJSON(){return Object(b.b)("BitburnerSaveObject",this)}static fromJSON(e){return Object(b.a)(S,e.data)}}function C(e){if(!e)return!1;e=decodeURIComponent(escape(atob(e)));const t=JSON.parse(e,b.c);if(Object(c.b)(t.PlayerSave),Object(u.h)(t.AllServersSave),Object(r.c)(t.CompaniesSave),Object(o.d)(t.FactionsSave),t.hasOwnProperty("StaneksGiftSave")?Object(d.a)(t.StaneksGiftSave):(console.warn("Could not load Staneks Gift from save"),Object(d.a)("")),t.hasOwnProperty("AliasesSave"))try{Object(n.c)(t.AliasesSave)}catch(e){console.warn("Could not load Aliases from save"),Object(n.c)("")}else console.warn("Save file did not contain an Aliases property"),Object(n.c)("");if(t.hasOwnProperty("GlobalAliasesSave"))try{Object(n.d)(t.GlobalAliasesSave)}catch(e){console.warn("Could not load GlobalAliases from save"),Object(n.d)("")}else console.warn("Save file did not contain a GlobalAliases property"),Object(n.d)("");if(t.hasOwnProperty("MessagesSave"))try{Object(l.d)(t.MessagesSave)}catch(e){console.warn("Could not load Messages from save"),Object(l.c)()}else console.warn("Save file did not contain a Messages property"),Object(l.c)();if(t.hasOwnProperty("StockMarketSave"))try{Object(p.i)(t.StockMarketSave)}catch(e){Object(p.i)("")}else Object(p.i)("");if(t.hasOwnProperty("SettingsSave"))try{m.a.load(t.SettingsSave)}catch(e){console.error("ERROR: Failed to parse Settings. Re-initing default values"),m.a.init()}else m.a.init();if(t.hasOwnProperty("LastExportBonus"))try{g.d(JSON.parse(t.LastExportBonus))}catch(e){g.d((new Date).getTime()),console.error("ERROR: Failed to parse last export bonus Settings "+e)}if(c.a.inGang()&&t.hasOwnProperty("AllGangsSave"))try{Object(s.b)(t.AllGangsSave)}catch(e){console.error("ERROR: Failed to parse AllGangsSave: "+e)}if(t.hasOwnProperty("VersionSave"))try{const e=JSON.parse(t.VersionSave,b.c);!function(e){const t=c.a;if("string"==typeof e){if(e<="0.41.2"){null!=t.companyPosition&&"string"!=typeof t.companyPosition&&(t.companyPosition=t.companyPosition.data.positionName,null==t.companyPosition&&(t.companyPosition=""));for(const e in r.a){const t=r.a[e];if(0==t.name&&null!=t.companyName&&(t.name=t.companyName),t.companyPositions instanceof Array){const e={};for(let a=0;ae.name===v.a.NeuroFluxGovernor);if(e)e.level+=10;else{const e=new _.a(v.a.NeuroFluxGovernor);e.level=10,c.a.augmentations.push(e)}c.a.reapplyAllAugmentations(!0),c.a.reapplyAllSourceFiles()}if(e<3&&(t.money=parseFloat(t.money),t.corporation)){t.corporation.funds=parseFloat(t.corporation.funds),t.corporation.revenue=parseFloat(t.corporation.revenue),t.corporation.expenses=parseFloat(t.corporation.expenses);for(let e=0;ePlease report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) or the Bitburner subreddit (reddit.com/r/bitburner).
"+i.a.LatestUpdate):e!==i.a.VersionNumber&&x()}catch(e){x()}else x();return!0}function x(){setTimeout(()=>Object(y.a)("New update!
Please report any bugs/issues through the github repository or the Bitburner subreddit (reddit.com/r/bitburner).
"+i.a.LatestUpdate),1e3)}function O(e,t){const a=new Blob([t],{type:"text/plain"}),n=window.navigator;if(n.msSaveOrOpenBlob)n.msSaveOrOpenBlob(a,e);else{const t=document.createElement("a"),n=URL.createObjectURL(a);t.href=n,t.download=e,document.body.appendChild(t),t.click(),setTimeout((function(){document.body.removeChild(t),window.URL.revokeObjectURL(n)}),0)}}b.c.constructors.BitburnerSaveObject=S;const M=new S},function(e,t,a){"use strict";let n,r;a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),function(e){e[e.Cost=0]="Cost",e[e.Default=1]="Default",e[e.Reputation=2]="Reputation",e[e.Purchasable=3]="Purchasable"}(n||(n={})),function(e){e[e.Alphabetically=0]="Alphabetically",e[e.AcquirementTime=1]="AcquirementTime"}(r||(r={}))},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"a",(function(){return l})),a.d(t,"d",(function(){return c}));var n=a(5),r=a(36);function i(e,t,a,i){return e*r.a.MoneyGainPerLevel*Math.pow(1.035,t-1)*((a+5)/6)*i*n.a.HacknetNodeMoney}function o(e,t=1,a=1){const n=Math.round(t);if(isNaN(n)||n<1)return 0;if(e>=r.a.MaxLevel)return 1/0;const i=r.a.UpgradeLevelMult;let o=0,s=e;for(let e=0;e=r.a.MaxRam)return 1/0;let i=0,o=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.a.MaxCores)return 1/0;const i=r.a.CoreBaseCost,o=r.a.UpgradeCoreMult;let s=0,l=e;for(let e=0;e1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}class s extends n.Component{win(e,t){e.gainMoney(t,"casino")}reachedLimit(e){const t=e.getCasinoWinnings()>1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));const n=!1,r=!0,i={O:[[r,r],[r,r]],I:[[r,r,r,r]],L:[[n,n,r],[r,r,r]],J:[[r,n,n],[r,r,r]],S:[[n,r,r],[r,r,n]],Z:[[r,r,n],[n,r,r]],T:[[r,r,r],[n,r,n]]}},,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n);function i(e){return Object(n.useEffect)(()=>{function t(t){if(!t.isTrusted)return;e.onKeyDown.bind(this)(t)}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)}),r.a.createElement(r.a.Fragment,null)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(1319),r=a(0),i=a.n(r),o=a(1317),s=a(46);const l=Object(o.a)(e=>({root:{backgroundColor:e.palette.background.paper},bar:{transition:"none",backgroundColor:e.palette.primary.main}}))(n.a);function c(e){const[t,a]=Object(r.useState)(100);return Object(r.useEffect)(()=>{const t=setInterval(()=>{a(t=>(t<=0&&e.onExpire(),t-200/e.millis*100))},200);return()=>{clearInterval(t)}},[]),i.a.createElement(s.a,{item:!0,xs:12},i.a.createElement(l,{variant:"determinate",value:t,color:"primary"}))}},function(e,t,a){"use strict";function n(e,t,a){function n(e,t,n){function r(e,t,a){return(1-a)*e+a*t}for(const i of Object.keys(e))a[i]=r(e[i],t[i],n);return e}return t<0?n(e.Trivial,e.Trivial,0):t>=0&&t<1?n(e.Trivial,e.Normal,t):t>=1&&t<2?n(e.Normal,e.Hard,t-1):t>=2&&t<3?n(e.Hard,e.Impossible,t-2):n(e.Impossible,e.Impossible,0)}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"a",(function(){return w})),a.d(t,"c",(function(){return C}));var n=a(0),r=a.n(n),i=a(118),o=a(131),s=a(1),l=a(32),c=a(10),u=a(73),m=a(481),h=a.n(m),p=a(784),d=a(126),f=a(154),g=a(512),y=a.n(g),b=a(163),E=a(144),k=a(27);let v=0;const _=new i.a,w=new i.a;let S=[];function C(){const e=Object(n.useState)(!0)[1];function t(){e(e=>!e)}return Object(n.useEffect)(()=>_.subscribe(e=>{const a=e.server+"-"+e.filename+e.args.map(e=>""+e).join("-");S.find(e=>e.id===a)||(S.push({id:a,script:e}),t())}),[]),Object(n.useEffect)(()=>w.subscribe(()=>{S=[],t()})),r.a.createElement(r.a.Fragment,null,S.map(e=>r.a.createElement(O,{key:e.id,script:e.script,id:e.id,onClose:()=>{return a=e.id,S=S.filter(e=>e.id!==a),void t();var a}})))}const x=Object(d.a)(e=>Object(f.a)({logs:{overflowY:"scroll",overflowX:"hidden",scrollbarWidth:"auto",display:"flex",flexDirection:"column-reverse"},success:{color:e.colors.success},error:{color:e.palette.error.main},primary:{color:e.palette.primary.main},info:{color:e.palette.info.main},warning:{color:e.palette.warning.main}}));function O(e){const t=x(),a=Object(n.useRef)(null),i=Object(n.useState)(!1)[1];function m(){i(e=>!e)}function d(){const e=a.current;null!==e&&(e.style.zIndex=1500+v+"",v++,m())}return Object(n.useEffect)(()=>{d();const e=setInterval(m,1e3);return()=>clearInterval(e)},[]),r.a.createElement(h.a,{handle:".drag"},r.a.createElement(u.a,{style:{display:"flex",flexFlow:"column",position:"fixed",left:"40%",top:"30%",zIndex:1400},ref:a},r.a.createElement("div",{onMouseDown:d},r.a.createElement(u.a,{style:{cursor:"grab"}},r.a.createElement(l.a,{className:"drag",display:"flex",alignItems:"center"},r.a.createElement(s.a,{color:"primary",variant:"h6"},function(){const t=`${e.script.filename} ${e.script.args.map(e=>""+e).join(" ")}`;return t.length<=30?t:t.slice(0,27)+"..."}()),r.a.createElement(l.a,{position:"absolute",right:0},!b.a.has(e.script.pid)&&r.a.createElement(c.a,{onClick:function(){const t=Object(k.d)(e.script.server);null!==t&&Object(E.e)(e.script,t)}},"Run"),b.a.has(e.script.pid)&&r.a.createElement(c.a,{onClick:function(){Object(o.a)(e.script,e.script.server,!0)}},"Kill"),r.a.createElement(c.a,{onClick:e.onClose},"Close")))),r.a.createElement(u.a,{sx:{overflow:"scroll",overflowWrap:"break-word",whiteSpace:"pre-wrap"}},r.a.createElement(p.ResizableBox,{className:t.logs,height:500,width:500,handle:r.a.createElement("span",{style:{position:"absolute",right:"-10px",bottom:"-13px",cursor:"nw-resize"}},r.a.createElement(y.a,{color:"primary",style:{transform:"rotate(45deg)"}}))},r.a.createElement(l.a,null,e.script.logs.map((e,a)=>{return r.a.createElement(s.a,{key:a,className:(n=e,n.match(/(^\[[^\]]+\] )?ERROR/)||n.match(/(^\[[^\]]+\] )?FAIL/)?t.error:n.match(/(^\[[^\]]+\] )?SUCCESS/)?t.success:n.match(/(^\[[^\]]+\] )?WARN/)?t.warning:n.match(/(^\[[^\]]+\] )?INFO/)?t.info:t.primary)},e,r.a.createElement("br",null));var n})))))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(225),r=a(120);const i={};i[r.a.BladesIntuition]=new n.a({name:r.a.BladesIntuition,desc:"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%",baseCost:3,costInc:2.1,successChanceAll:3}),i[r.a.Cloak]=new n.a({name:r.a.Cloak,desc:"Each level of this skill increases your success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%",baseCost:2,costInc:1.1,successChanceStealth:5.5}),i[r.a.ShortCircuit]=new n.a({name:r.a.ShortCircuit,desc:"Each level of this skill increases your success chance in Contracts, Operations, and BlackOps that involve retirement by 5.5%",baseCost:2,costInc:2.1,successChanceKill:5.5}),i[r.a.DigitalObserver]=new n.a({name:r.a.DigitalObserver,desc:"Each level of this skill increases your success chance in all Operations and BlackOps by 4%",baseCost:2,costInc:2.1,successChanceOperation:4}),i[r.a.Tracer]=new n.a({name:r.a.Tracer,desc:"Each level of this skill increases your success chance in all Contracts by 4%",baseCost:2,costInc:2.1,successChanceContract:4}),i[r.a.Overclock]=new n.a({name:r.a.Overclock,desc:"Each level of this skill decreases the time it takes to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)",baseCost:3,costInc:1.4,maxLvl:90,actionTime:1}),i[r.a.Reaper]=new n.a({name:r.a.Reaper,desc:"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%",baseCost:2,costInc:2.1,effStr:2,effDef:2,effDex:2,effAgi:2}),i[r.a.EvasiveSystem]=new n.a({name:r.a.EvasiveSystem,desc:"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%",baseCost:2,costInc:2.1,effDex:4,effAgi:4}),i[r.a.Datamancer]=new n.a({name:r.a.Datamancer,desc:"Each level of this skill increases your effectiveness in synthoid population analysis and investigation by 5%. This affects all actions that can potentially increase the accuracy of your synthoid population/community estimates.",baseCost:3,costInc:1,successChanceEstimate:5}),i[r.a.CybersEdge]=new n.a({name:r.a.CybersEdge,desc:"Each level of this skill increases your max stamina by 2%",baseCost:1,costInc:3,stamina:2}),i[r.a.HandsOfMidas]=new n.a({name:r.a.HandsOfMidas,desc:"Each level of this skill increases the amount of money you receive from Contracts by 10%",baseCost:2,costInc:2.5,money:10}),i[r.a.Hyperdrive]=new n.a({name:r.a.Hyperdrive,desc:"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%",baseCost:1,costInc:2.5,expGain:10})},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(160),r=a(774);const i={};n.b.forEach(e=>{i[e.name]=new r.a(e.name,e.cost,e.upgType,e.mults)})},function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(136),r=a(68),i=a(8);function o(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);return a===r.a.Long?t*e.getAskPrice()+i.a.StockMarketCommission:t*e.getBidPrice()+i.a.StockMarketCommission}function s(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);if(a===r.a.Long)return t*e.getBidPrice()-i.a.StockMarketCommission;return t*e.playerAvgShortPx+((e.playerAvgShortPx-e.getAskPrice())*t-i.a.StockMarketCommission)}function l(e,t){if(isNaN(t)||t<=0||!(e instanceof n.a))return;t=Math.min(t,e.maxShares);const a=e.shareTxUntilMovement;if(t<=a)return e.shareTxUntilMovement-=t,void(e.shareTxUntilMovement<=0&&(e.shareTxUntilMovement=e.shareTxForMovement,e.influenceForecast(.006),e.influenceForecastForecast(e.mv/100*.006)));const r=t-a;let i=1+Math.ceil(r/e.shareTxForMovement);e.shareTxUntilMovement=e.shareTxForMovement-(t-e.shareTxUntilMovement)%e.shareTxForMovement,(e.shareTxUntilMovement===e.shareTxForMovement||e.shareTxUntilMovement<=0)&&(++i,e.shareTxUntilMovement=e.shareTxForMovement);const o=.006*(i-1),s=o*(e.mv/100);e.influenceForecast(o),e.influenceForecastForecast(s)}function c(e,t,a){if(!(e instanceof n.a))return 0;const o=t===r.a.Long,s=a-i.a.StockMarketCommission,l=o?e.getAskPrice():e.getBidPrice();return Math.floor(s/l)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return u}));var n=a(5),r=a(23),i=a(8),o=a(167),s=a(287);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(){return{hack:0,str:0,def:0,dex:0,agi:0,cha:0,money:0}}class u{constructor(){l(this,"hacking",1),l(this,"strength",1),l(this,"defense",1),l(this,"dexterity",1),l(this,"agility",1),l(this,"charisma",1),l(this,"intelligence",1),l(this,"hp",10),l(this,"max_hp",10),l(this,"hacking_exp",0),l(this,"strength_exp",0),l(this,"defense_exp",0),l(this,"dexterity_exp",0),l(this,"agility_exp",0),l(this,"charisma_exp",0),l(this,"intelligence_exp",0),l(this,"hacking_mult",1),l(this,"strength_mult",1),l(this,"defense_mult",1),l(this,"dexterity_mult",1),l(this,"agility_mult",1),l(this,"charisma_mult",1),l(this,"hacking_exp_mult",1),l(this,"strength_exp_mult",1),l(this,"defense_exp_mult",1),l(this,"dexterity_exp_mult",1),l(this,"agility_exp_mult",1),l(this,"charisma_exp_mult",1),l(this,"hacking_chance_mult",1),l(this,"hacking_speed_mult",1),l(this,"hacking_money_mult",1),l(this,"hacking_grow_mult",1),l(this,"company_rep_mult",1),l(this,"faction_rep_mult",1),l(this,"crime_money_mult",1),l(this,"crime_success_mult",1),l(this,"work_money_mult",1),l(this,"hacknet_node_money_mult",1),l(this,"hacknet_node_purchase_cost_mult",1),l(this,"hacknet_node_ram_cost_mult",1),l(this,"hacknet_node_core_cost_mult",1),l(this,"hacknet_node_level_cost_mult",1),l(this,"bladeburner_max_stamina_mult",1),l(this,"bladeburner_stamina_gain_mult",1),l(this,"bladeburner_analysis_mult",1),l(this,"bladeburner_success_chance_mult",1),l(this,"augmentations",[]),l(this,"queuedAugmentations",[]),l(this,"city",r.a.Sector12)}applyAugmentation(e){for(const t in e.mults)null==this[t]?console.warn("Augmentation has unrecognized multiplier property: "+t):this[t]*=e.mults[t]}calculateStat(e,t=1){return Object(o.b)(e,t)}getFactionFieldWorkRepGain(){return.9*(this.hacking/i.a.MaxSkillLevel+this.strength/i.a.MaxSkillLevel+this.defense/i.a.MaxSkillLevel+this.dexterity/i.a.MaxSkillLevel+this.agility/i.a.MaxSkillLevel+this.charisma/i.a.MaxSkillLevel)/5.5*this.faction_rep_mult}getFactionHackingWorkRepGain(){return this.hacking/i.a.MaxSkillLevel*this.faction_rep_mult}getFactionSecurityWorkRepGain(){return.9*(this.hacking/i.a.MaxSkillLevel+this.strength/i.a.MaxSkillLevel+this.defense/i.a.MaxSkillLevel+this.dexterity/i.a.MaxSkillLevel+this.agility/i.a.MaxSkillLevel)/4.5*this.faction_rep_mult}resetMultipliers(){this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.work_money_mult=1}updateStatLevels(){this.hacking=Math.max(1,Math.floor(this.calculateStat(this.hacking_exp,this.hacking_mult*n.a.HackingLevelMultiplier))),this.strength=Math.max(1,Math.floor(this.calculateStat(this.strength_exp,this.strength_mult*n.a.StrengthLevelMultiplier))),this.defense=Math.max(1,Math.floor(this.calculateStat(this.defense_exp,this.defense_mult*n.a.DefenseLevelMultiplier))),this.dexterity=Math.max(1,Math.floor(this.calculateStat(this.dexterity_exp,this.dexterity_mult*n.a.DexterityLevelMultiplier))),this.agility=Math.max(1,Math.floor(this.calculateStat(this.agility_exp,this.agility_mult*n.a.AgilityLevelMultiplier))),this.charisma=Math.max(1,Math.floor(this.calculateStat(this.charisma_exp,this.charisma_mult*n.a.CharismaLevelMultiplier)));const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}getIntelligenceBonus(e){return Object(s.a)(this.intelligence,e)}}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(0),r=a.n(n),i=a(5);class o{constructor(e,t,a,n="",i=r.a.createElement(r.a.Fragment,null)){this.number=e,this.difficulty=t,this.name=a,this.desc=n,this.info=i}}const s={};function l(e){null==e.bitNodeN&&(e.bitNodeN=1);for(const e in i.a)i.a.hasOwnProperty(e)&&(i.a[e]=1);switch(i.a.StaneksGiftExtraSize=0,e.bitNodeN){case 1:break;case 2:i.a.HackingLevelMultiplier=.8,i.a.ServerGrowthRate=.8,i.a.ServerMaxMoney=.2,i.a.ServerStartingMoney=.4,i.a.CrimeMoney=3,i.a.InfiltrationMoney=3,i.a.FactionWorkRepGain=.5,i.a.FactionPassiveRepGain=0,i.a.StaneksGiftPowerMultiplier=2,i.a.StaneksGiftExtraSize=-6,i.a.PurchasedServerSoftcap=1.3,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=5;break;case 3:i.a.HackingLevelMultiplier=.8,i.a.RepToDonateToFaction=.5,i.a.AugmentationRepCost=3,i.a.AugmentationMoneyCost=3,i.a.ServerMaxMoney=.2,i.a.ServerStartingMoney=.2,i.a.ServerGrowthRate=.2,i.a.ScriptHackMoney=.2,i.a.CompanyWorkMoney=.25,i.a.CrimeMoney=.25,i.a.HacknetNodeMoney=.25,i.a.HomeComputerRamCost=1.5,i.a.PurchasedServerCost=2,i.a.StaneksGiftPowerMultiplier=.75,i.a.StaneksGiftExtraSize=-2,i.a.PurchasedServerSoftcap=1.3,i.a.GangSoftcap=.9,i.a.WorldDaemonDifficulty=2;break;case 4:i.a.ServerMaxMoney=.15,i.a.ServerStartingMoney=.75,i.a.ScriptHackMoney=.2,i.a.CompanyWorkMoney=.1,i.a.CrimeMoney=.2,i.a.HacknetNodeMoney=.05,i.a.CompanyWorkExpGain=.5,i.a.ClassGymExpGain=.5,i.a.FactionWorkExpGain=.5,i.a.HackExpGain=.4,i.a.CrimeExpGain=.5,i.a.FactionWorkRepGain=.75,i.a.StaneksGiftPowerMultiplier=1.5,i.a.StaneksGiftExtraSize=0,i.a.PurchasedServerSoftcap=1.2,i.a.WorldDaemonDifficulty=3;break;case 5:i.a.ServerMaxMoney=2,i.a.ServerStartingSecurity=2,i.a.ServerStartingMoney=.5,i.a.ScriptHackMoney=.15,i.a.HacknetNodeMoney=.2,i.a.CrimeMoney=.5,i.a.InfiltrationRep=1.5,i.a.InfiltrationMoney=1.5,i.a.AugmentationMoneyCost=2,i.a.HackExpGain=.5,i.a.CorporationValuation=.5,i.a.StaneksGiftPowerMultiplier=1.3,i.a.StaneksGiftExtraSize=0,i.a.PurchasedServerSoftcap=1.2,i.a.WorldDaemonDifficulty=1.5;break;case 6:i.a.HackingLevelMultiplier=.35,i.a.ServerMaxMoney=.4,i.a.ServerStartingMoney=.5,i.a.ServerStartingSecurity=1.5,i.a.ScriptHackMoney=.75,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.75,i.a.InfiltrationMoney=.75,i.a.CorporationValuation=.2,i.a.HacknetNodeMoney=.2,i.a.FactionPassiveRepGain=0,i.a.HackExpGain=.25,i.a.DaedalusAugsRequirement=1.166,i.a.PurchasedServerSoftcap=2,i.a.StaneksGiftPowerMultiplier=.5,i.a.StaneksGiftExtraSize=2,i.a.GangSoftcap=.7,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 7:i.a.BladeburnerRank=.6,i.a.BladeburnerSkillCost=2,i.a.AugmentationMoneyCost=3,i.a.HackingLevelMultiplier=.35,i.a.ServerMaxMoney=.4,i.a.ServerStartingMoney=.5,i.a.ServerStartingSecurity=1.5,i.a.ScriptHackMoney=.5,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.75,i.a.InfiltrationMoney=.75,i.a.CorporationValuation=.2,i.a.HacknetNodeMoney=.2,i.a.FactionPassiveRepGain=0,i.a.HackExpGain=.25,i.a.FourSigmaMarketDataCost=2,i.a.FourSigmaMarketDataApiCost=2,i.a.DaedalusAugsRequirement=1.166,i.a.PurchasedServerSoftcap=2,i.a.StaneksGiftPowerMultiplier=.9,i.a.StaneksGiftExtraSize=-1,i.a.GangSoftcap=.7,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 8:i.a.ScriptHackMoney=.3,i.a.ScriptHackMoneyGain=0,i.a.ManualHackMoney=0,i.a.CompanyWorkMoney=0,i.a.CrimeMoney=0,i.a.HacknetNodeMoney=0,i.a.InfiltrationMoney=0,i.a.RepToDonateToFaction=0,i.a.CorporationValuation=0,i.a.CodingContractMoney=0,i.a.StaneksGiftExtraSize=-7,i.a.PurchasedServerSoftcap=4,i.a.GangSoftcap=0,i.a.CorporationSoftCap=0;break;case 9:i.a.HackingLevelMultiplier=.5,i.a.StrengthLevelMultiplier=.45,i.a.DefenseLevelMultiplier=.45,i.a.DexterityLevelMultiplier=.45,i.a.AgilityLevelMultiplier=.45,i.a.CharismaLevelMultiplier=.45,i.a.PurchasedServerLimit=0,i.a.HomeComputerRamCost=5,i.a.CrimeMoney=.5,i.a.ScriptHackMoney=.1,i.a.HackExpGain=.05,i.a.ServerStartingMoney=.1,i.a.ServerMaxMoney=.1,i.a.ServerStartingSecurity=2.5,i.a.CorporationValuation=.5,i.a.FourSigmaMarketDataCost=5,i.a.FourSigmaMarketDataApiCost=4,i.a.BladeburnerRank=.9,i.a.BladeburnerSkillCost=1.2,i.a.StaneksGiftPowerMultiplier=.5,i.a.StaneksGiftExtraSize=2,i.a.GangSoftcap=.8,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 10:i.a.HackingLevelMultiplier=.35,i.a.StrengthLevelMultiplier=.4,i.a.DefenseLevelMultiplier=.4,i.a.DexterityLevelMultiplier=.4,i.a.AgilityLevelMultiplier=.4,i.a.CharismaLevelMultiplier=.4,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.5,i.a.HacknetNodeMoney=.5,i.a.ManualHackMoney=.5,i.a.ScriptHackMoney=.5,i.a.CodingContractMoney=.5,i.a.InfiltrationMoney=.5,i.a.CorporationValuation=.5,i.a.AugmentationMoneyCost=5,i.a.AugmentationRepCost=2,i.a.HomeComputerRamCost=1.5,i.a.PurchasedServerCost=5,i.a.PurchasedServerLimit=.6,i.a.PurchasedServerMaxRam=.5,i.a.BladeburnerRank=.8,i.a.StaneksGiftPowerMultiplier=.75,i.a.StaneksGiftExtraSize=-3,i.a.PurchasedServerSoftcap=1.1,i.a.GangSoftcap=.9,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 11:i.a.HackingLevelMultiplier=.6,i.a.HackExpGain=.5,i.a.ServerMaxMoney=.1,i.a.ServerStartingMoney=.1,i.a.ServerGrowthRate=.2,i.a.ServerWeakenRate=2,i.a.CrimeMoney=3,i.a.CompanyWorkMoney=.5,i.a.HacknetNodeMoney=.1,i.a.AugmentationMoneyCost=2,i.a.InfiltrationMoney=2.5,i.a.InfiltrationRep=2.5,i.a.CorporationValuation=.1,i.a.CodingContractMoney=.25,i.a.FourSigmaMarketDataCost=4,i.a.FourSigmaMarketDataApiCost=4,i.a.PurchasedServerSoftcap=2,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=1.5;break;case 12:{let t=0;for(let a=0;aObject(o.a)({money:{color:e.colors.money}}));function l({hashes:e}){const t=s();return n.createElement("span",{className:t.money},"number"==typeof e?r.a.formatHashes(e):e)}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return I}));var n=a(21),r=a(233),i=a(38),o=a(462),s=a(244),l=a(125),c=a(314),u=a(557),m=a(231),h=a(22),p=a(202),d=a(225),f=a(375),g=a(25),y=a(558),b=a(242),E=a(31),k=a(57),v=a(4),_=a(5),w=a(269),S=a(181),C=a(24),x=a(356),O=a(15),M=a(13),T=a(20),R=a(6),A=a(769),P=a(113);function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class I{constructor(e){N(this,"numHosp",0),N(this,"moneyLost",0),N(this,"rank",0),N(this,"maxRank",0),N(this,"skillPoints",0),N(this,"totalSkillPoints",0),N(this,"teamSize",0),N(this,"teamLost",0),N(this,"hpLost",0),N(this,"storedCycles",0),N(this,"randomEventCounter",Object(E.a)(240,600)),N(this,"actionTimeToComplete",0),N(this,"actionTimeCurrent",0),N(this,"actionTimeOverflow",0),N(this,"action",new r.a({type:i.a.Idle})),N(this,"cities",{}),N(this,"city",k.a.CityNames[2]),N(this,"skills",{}),N(this,"skillMultipliers",{}),N(this,"staminaBonus",0),N(this,"maxStamina",0),N(this,"stamina",0),N(this,"contracts",{}),N(this,"operations",{}),N(this,"blackops",{}),N(this,"logging",{general:!0,contracts:!0,ops:!0,blackops:!0,events:!0}),N(this,"automateEnabled",!1),N(this,"automateActionHigh",new r.a({type:i.a.Idle})),N(this,"automateThreshHigh",0),N(this,"automateActionLow",new r.a({type:i.a.Idle})),N(this,"automateThreshLow",0),N(this,"consoleHistory",[]),N(this,"consoleLogs",["Bladeburner Console","Type 'help' to see console commands"]);for(let e=0;e50&&this.consoleHistory.splice(0,1));const a=t.split(";");for(let t=0;t100&&this.consoleLogs.shift())}log(e){this.postToConsole(`[${Object(A.a)()}] ${e}`)}resetAction(){this.action=new r.a({type:i.a.Idle})}clearConsole(){this.consoleLogs.length=0}prestige(){this.resetAction();const e=C.a.Bladeburners;this.rank>=k.a.RankNeededForFaction&&Object(P.d)(e)}storeCycles(e=0){this.storedCycles+=e}getActionIdFromTypeAndName(e="",t=""){if(""===e||""===t)return null;const a=new r.a,n=e.toLowerCase().trim(),o=t.toLowerCase().trim();switch(n){case"contract":case"contracts":case"contr":return a.type=i.a.Contract,this.contracts.hasOwnProperty(t)?(a.name=t,a):null;case"operation":case"operations":case"op":case"ops":return a.type=i.a.Operation,this.operations.hasOwnProperty(t)?(a.name=t,a):null;case"blackoperation":case"black operation":case"black operations":case"black op":case"black ops":case"blackop":case"blackops":return a.type=i.a.BlackOp,s.a.hasOwnProperty(t)?(a.name=t,a):null;case"general":case"general action":case"gen":break;default:return null}if(n.startsWith("gen")){switch(o){case"training":a.type=i.a.Training,a.name="Training";break;case"recruitment":case"recruit":a.type=i.a.Recruitment,a.name="Recruitment";break;case"field analysis":case"fieldanalysis":a.type=i.a["Field Analysis"],a.name="Field Analysis";break;case"diplomacy":a.type=i.a.Diplomacy,a.name="Diplomacy";break;case"hyperbolic regeneration chamber":a.type=i.a["Hyperbolic Regeneration Chamber"],a.name="Hyperbolic Regeneration Chamber";break;case"incite violence":a.type=i.a["Incite Violence"],a.name="Incite Violence";break;default:return null}return a}return null}executeStartConsoleCommand(e,t){if(3!==t.length)return this.postToConsole("Invalid usage of 'start' console command: start [type] [name]"),void this.postToConsole("Use 'help start' for more info");const a=t[2];switch(t[1].toLowerCase()){case"general":case"gen":null!=m.a[a]?(this.action.type=i.a[a],this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid action name specified: "+t[2]);break;case"contract":case"contracts":null!=this.contracts[a]?(this.action.type=i.a.Contract,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid contract name specified: "+t[2]);break;case"ops":case"op":case"operations":case"operation":null!=this.operations[a]?(this.action.type=i.a.Operation,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid Operation name specified: "+t[2]);break;case"blackops":case"blackop":case"black operations":case"black operation":null!=s.a[a]?(this.action.type=i.a.BlackOperation,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid BlackOp name specified: "+t[2]);break;default:this.postToConsole("Invalid action/event type specified: "+t[1]),this.postToConsole("Examples of valid action/event identifiers are: [general, contract, op, blackop]")}}executeSkillConsoleCommand(e){switch(e.length){case 1:this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info");break;case 2:if("list"===e[1].toLowerCase()){this.postToConsole("Skills: ");const e=Object.keys(p.a);for(let t=0;t=n?(this.skillPoints-=n,this.upgradeSkill(a),this.log(a.name+" upgraded to Level "+this.skills[t])):this.postToConsole("You do not have enough Skill Points to upgrade this. You need "+Object(h.c)(n,0))}else this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info");break}default:this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info")}}executeLogConsoleCommand(e){if(e.length<3)return this.postToConsole("Invalid usage of log command: log [enable/disable] [action/event]"),void this.postToConsole("Use 'help log' for more details and examples");let t=!0;switch(e[1].toLowerCase().includes("d")&&(t=!1),e[2].toLowerCase()){case"general":case"gen":this.logging.general=t,this.log("Logging "+(t?"enabled":"disabled")+" for general actions");break;case"contract":case"contracts":this.logging.contracts=t,this.log("Logging "+(t?"enabled":"disabled")+" for Contracts");break;case"ops":case"op":case"operations":case"operation":this.logging.ops=t,this.log("Logging "+(t?"enabled":"disabled")+" for Operations");break;case"blackops":case"blackop":case"black operations":case"black operation":this.logging.blackops=t,this.log("Logging "+(t?"enabled":"disabled")+" for BlackOps");break;case"event":case"events":this.logging.events=t,this.log("Logging "+(t?"enabled":"disabled")+" for events");break;case"all":this.logging.general=t,this.logging.contracts=t,this.logging.ops=t,this.logging.blackops=t,this.logging.events=t,this.log("Logging "+(t?"enabled":"disabled")+" for everything");break;default:this.postToConsole("Invalid action/event type specified: "+e[2]),this.postToConsole("Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]")}}executeHelpConsoleCommand(e){if(1===e.length)for(const e of y.a.helpList)this.postToConsole(e);else for(let t=1;t0&&(i*=Object(E.a)(2,4),--n.comms,++a.comms);const o=Math.round(n.pop*i);n.pop-=o,a.pop+=o}triggerPotentialMigration(e,t){(null==t||isNaN(t))&&console.error("Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()"),t>1&&(t/=100),Math.random()1&&(u=Math.pow(u,.8)),e.gainIntelligenceExp(u)}getDiplomacyEffectiveness(e){return(100-(Math.pow(e.charisma,.045)+e.charisma/1e3))/100}getRecruitmentSuccessChance(e){return Math.pow(e.charisma,.45)/(this.teamSize+1)}getRecruitmentTime(e){const t=e.charisma*this.skillMultipliers.effCha,a=Math.pow(t,.81)+t/90;return Math.max(10,Math.round(k.a.BaseRecruitmentTimeNeeded-a))}resetSkillMultipliers(){this.skillMultipliers={successChanceAll:1,successChanceStealth:1,successChanceKill:1,successChanceContract:1,successChanceOperation:1,successChanceEstimate:1,actionTime:1,effHack:1,effStr:1,effDef:1,effDex:1,effAgi:1,effCha:1,effInt:1,stamina:1,money:1,expGain:1}}updateSkillMultipliers(){this.resetSkillMultipliers();for(const e in this.skills)if(this.skills.hasOwnProperty(e)){const t=p.a[e];if(null==t)throw new Error("Could not find Skill Object for: "+e);const a=this.skills[e];if(null==a||a<=0)continue;const n=Object.keys(this.skillMultipliers);for(let e=0;e=1){let n;n=e?Math.ceil(a/2):Math.floor(a);const r=Object(E.a)(0,n);this.teamSize-=r,this.teamLost+=r,this.logging.ops&&r>0&&this.log("Lost "+Object(h.c)(r,0)+" team members during this "+t.name)}const n=this.getCurrentCity();switch(t.name){case"Investigation":e?n.improvePopulationEstimateByPercentage(.4*this.skillMultipliers.successChanceEstimate):this.triggerPotentialMigration(this.city,.1);break;case"Undercover Operation":e?n.improvePopulationEstimateByPercentage(.8*this.skillMultipliers.successChanceEstimate):this.triggerPotentialMigration(this.city,.15);break;case"Sting Operation":e&&n.changePopulationByPercentage(-.1,{changeEstEqually:!0,nonZero:!0}),n.changeChaosByCount(.1);break;case"Raid":if(e)n.changePopulationByPercentage(-1,{changeEstEqually:!0,nonZero:!0}),--n.comms;else{const e=Object(E.a)(-10,-5)/10;n.changePopulationByPercentage(e,{nonZero:!0,changeEstEqually:!1})}n.changeChaosByPercentage(Object(E.a)(1,5));break;case"Stealth Retirement Operation":e&&n.changePopulationByPercentage(-.5,{changeEstEqually:!0,nonZero:!0}),n.changeChaosByPercentage(Object(E.a)(-3,-1));break;case"Assassination":e&&n.changePopulationByCount(-1,{estChange:-1,estOffset:0}),n.changeChaosByPercentage(Object(E.a)(-5,5));break;default:throw new Error("Invalid Action name in completeOperation: "+this.action.name)}}getActionObject(e){switch(e.type){case i.a.Contract:return this.contracts[e.name];case i.a.Operation:return this.operations[e.name];case i.a.BlackOp:case i.a.BlackOperation:return s.a[e.name];case i.a.Training:return m.a.Training;case i.a["Field Analysis"]:return m.a["Field Analysis"];case i.a.Recruitment:return m.a.Recruitment;case i.a.Diplomacy:return m.a.Diplomacy;case i.a["Hyperbolic Regeneration Chamber"]:return m.a["Hyperbolic Regeneration Chamber"];case i.a["Incite Violence"]:return m.a["Incite Violence"];default:return null}}completeContract(e){if(this.action.type!==i.a.Contract)throw new Error("completeContract() called even though current action is not a Contract");const t=this.getCurrentCity();if(e)switch(this.action.name){case"Tracking":t.improvePopulationEstimateByCount(Object(E.a)(100,1e3));break;case"Bounty Hunter":t.changePopulationByCount(-1,{estChange:-1,estOffset:0}),t.changeChaosByCount(.02);break;case"Retirement":t.changePopulationByCount(-1,{estChange:-1,estOffset:0}),t.changeChaosByCount(.04);break;default:throw new Error("Invalid Action name in completeContract: "+this.action.name)}}completeAction(e,t){switch(this.action.type){case i.a.Contract:case i.a.Operation:try{const e=this.action.type===i.a.Operation,a=this.getActionObject(this.action);if(null==a)throw new Error("Failed to get Contract/Operation Object for: "+this.action.name);const n=a.getDifficulty(),r=Math.pow(n,k.a.DiffMultExponentialFactor)+n/k.a.DiffMultLinearFactor,o=Math.pow(a.rewardFac,a.level-1);if(this.stamina-=k.a.BaseStaminaLoss*r,this.stamina<0&&(this.stamina=0),a.attempt(this)){this.gainActionStats(t,a,!0),++a.successes,--a.count;let n=0;if(e||(n=k.a.ContractBaseMoneyGain*o*this.skillMultipliers.money,t.gainMoney(n,"bladeburner")),e?a.setMaxLevel(k.a.OperationSuccessesPerLevel):a.setMaxLevel(k.a.ContractSuccessesPerLevel),a.rankGain){const r=Object(w.a)(a.rankGain*o*_.a.BladeburnerRank,10);this.changeRank(t,r),e&&this.logging.ops?this.log(a.name+" successfully completed! Gained "+Object(h.c)(r,3)+" rank"):!e&&this.logging.contracts&&this.log(a.name+" contract successfully completed! Gained "+Object(h.c)(r,3)+" rank and "+v.a.formatMoney(n))}e?this.completeOperation(!0):this.completeContract(!0)}else{this.gainActionStats(t,a,!1),++a.failures;let n=0,i=0;if(a.rankLoss&&(n=Object(w.a)(a.rankLoss*o,10),this.changeRank(t,-1*n)),a.hpLoss){i=a.hpLoss*r,i=Math.ceil(Object(w.a)(i,10)),this.hpLost+=i;const e=Object(x.a)(t,i);t.takeDamage(i)&&(++this.numHosp,this.moneyLost+=e)}let s="";n>0&&(s+="Lost "+Object(h.c)(n,3)+" rank. "),i>0&&(s+="Took "+Object(h.c)(i,0)+" damage."),e&&this.logging.ops?this.log(a.name+" failed! "+s):!e&&this.logging.contracts&&this.log(a.name+" contract failed! "+s),e?this.completeOperation(!1):this.completeContract(!1)}a.autoLevel&&(a.level=a.maxLevel),this.startAction(t,this.action)}catch(e){Object(b.a)(e)}break;case i.a.BlackOp:case i.a.BlackOperation:try{const a=this.getActionObject(this.action);if(null==a||!(a instanceof l.a))throw new Error("Failed to get BlackOperation Object for: "+this.action.name);const n=a.getDifficulty(),r=Math.pow(n,k.a.DiffMultExponentialFactor)+n/k.a.DiffMultLinearFactor;this.stamina-=k.a.BaseStaminaLoss*r,this.stamina<0&&(this.stamina=0);const i=a.teamCount;let o;if(a.attempt(this)){this.gainActionStats(t,a,!0),a.count=0,this.blackops[a.name]=!0;let n=0;if(a.rankGain&&(n=Object(w.a)(a.rankGain*_.a.BladeburnerRank,10),this.changeRank(t,n)),o=Math.ceil(i/2),"Operation Daedalus"===a.name)return this.resetAction(),e.toBitVerse(!1,!1);this.logging.blackops&&this.log(a.name+" successful! Gained "+Object(h.c)(n,1)+" rank")}else{this.gainActionStats(t,a,!1);let e=0,n=0;if(a.rankLoss&&(e=Object(w.a)(a.rankLoss,10),this.changeRank(t,-1*e)),a.hpLoss){n=a.hpLoss*r,n=Math.ceil(Object(w.a)(n,10));const e=Object(x.a)(t,n);t.takeDamage(n)&&(++this.numHosp,this.moneyLost+=e)}o=Math.floor(i),this.logging.blackops&&this.log(a.name+" failed! Lost "+Object(h.c)(e,1)+" rank and took "+Object(h.c)(n,0)+" damage")}if(this.resetAction(),i>=1){const e=Object(E.a)(1,o);this.teamSize-=e,this.teamLost+=e,this.logging.blackops&&this.log("You lost "+Object(h.c)(e,0)+" team members during "+a.name)}}catch(e){Object(b.a)(e)}break;case i.a.Training:{this.stamina-=.5*k.a.BaseStaminaLoss;const e=30*t.strength_exp_mult,a=30*t.defense_exp_mult,n=30*t.dexterity_exp_mult,r=30*t.agility_exp_mult,i=.04*this.skillMultipliers.stamina;t.gainStrengthExp(e),t.gainDefenseExp(a),t.gainDexterityExp(n),t.gainAgilityExp(r),this.staminaBonus+=i,this.logging.general&&this.log("Training completed. Gained: "+Object(h.c)(e,1)+" str exp, "+Object(h.c)(a,1)+" def exp, "+Object(h.c)(n,1)+" dex exp, "+Object(h.c)(r,1)+" agi exp, "+Object(h.c)(i,3)+" max stamina"),this.startAction(t,this.action);break}case i.a.FieldAnalysis:case i.a["Field Analysis"]:{let e=.04*Math.pow(t.hacking,.3)+.04*Math.pow(t.intelligence,.9)+.02*Math.pow(t.charisma,.3);if(e*=t.bladeburner_analysis_mult,isNaN(e)||e<0)throw new Error("Field Analysis Effectiveness calculated to be NaN or negative");const a=20*t.hacking_exp_mult,n=20*t.charisma_exp_mult;t.gainHackingExp(a),t.gainIntelligenceExp(k.a.BaseIntGain),t.gainCharismaExp(n),this.changeRank(t,.1*_.a.BladeburnerRank),this.getCurrentCity().improvePopulationEstimateByPercentage(e*this.skillMultipliers.successChanceEstimate),this.logging.general&&this.log("Field analysis completed. Gained 0.1 rank, "+Object(h.c)(a,1)+" hacking exp, and "+Object(h.c)(n,1)+" charisma exp"),this.startAction(t,this.action);break}case i.a.Recruitment:{const e=this.getRecruitmentSuccessChance(t);if(Math.random()=a){const e=Math.floor((this.maxRank-a)/k.a.RanksPerSkillPoint+1);this.skillPoints+=e,this.totalSkillPoints+=e}}processAction(e,t,a){if(this.action.type!==i.a.Idle){if(this.actionTimeToComplete<=0)throw new Error(`Invalid actionTimeToComplete value: ${this.actionTimeToComplete}, type; ${this.action.type}`);if(!(this.action instanceof r.a))throw new Error("Bladeburner.action is not an ActionIdentifier Object");return this.actionTimeCurrent+=a+this.actionTimeOverflow,this.actionTimeOverflow=0,this.actionTimeCurrent>=this.actionTimeToComplete?(this.actionTimeOverflow=this.actionTimeCurrent-this.actionTimeToComplete,this.completeAction(e,t)):void 0}}calculateStaminaGainPerSecond(e){const t=e.agility*this.skillMultipliers.effAgi,a=this.maxStamina/k.a.MaxStaminaToGainFactor;return(k.a.StaminaGainPerSecond+a)*Math.pow(t,.17)*(this.skillMultipliers.stamina*e.bladeburner_stamina_gain_mult)}calculateMaxStamina(e){const t=e.agility*this.skillMultipliers.effAgi,a=(Math.pow(t,.8)+this.staminaBonus)*this.skillMultipliers.stamina*e.bladeburner_max_stamina_mult;if(this.maxStamina!==a){const e=this.maxStamina;this.maxStamina=a,this.stamina=this.maxStamina*this.stamina/e}if(isNaN(a))throw new Error("Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()")}create(){this.contracts.Tracking=new u.a({name:"Tracking",baseDifficulty:125,difficultyFac:1.02,rewardFac:1.041,rankGain:.3,hpLoss:.5,count:Object(E.a)(25,150),weights:{hack:0,str:.05,def:.05,dex:.35,agi:.35,cha:.1,int:.05},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.9,int:1},isStealth:!0}),this.contracts["Bounty Hunter"]=new u.a({name:"Bounty Hunter",baseDifficulty:250,difficultyFac:1.04,rewardFac:1.085,rankGain:.9,hpLoss:1,count:Object(E.a)(5,150),weights:{hack:0,str:.15,def:.15,dex:.25,agi:.25,cha:.1,int:.1},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.8,int:.9},isKill:!0}),this.contracts.Retirement=new u.a({name:"Retirement",baseDifficulty:200,difficultyFac:1.03,rewardFac:1.065,rankGain:.6,hpLoss:1,count:Object(E.a)(5,150),weights:{hack:0,str:.2,def:.2,dex:.2,agi:.2,cha:.1,int:.1},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.8,int:.9},isKill:!0}),this.operations.Investigation=new c.a({name:"Investigation",baseDifficulty:400,difficultyFac:1.03,rewardFac:1.07,reqdRank:25,rankGain:2.2,rankLoss:.2,count:Object(E.a)(1,100),weights:{hack:.25,str:.05,def:.05,dex:.2,agi:.1,cha:.25,int:.1},decays:{hack:.85,str:.9,def:.9,dex:.9,agi:.9,cha:.7,int:.9},isStealth:!0}),this.operations["Undercover Operation"]=new c.a({name:"Undercover Operation",baseDifficulty:500,difficultyFac:1.04,rewardFac:1.09,reqdRank:100,rankGain:4.4,rankLoss:.4,hpLoss:2,count:Object(E.a)(1,100),weights:{hack:.2,str:.05,def:.05,dex:.2,agi:.2,cha:.2,int:.1},decays:{hack:.8,str:.9,def:.9,dex:.9,agi:.9,cha:.7,int:.9},isStealth:!0}),this.operations["Sting Operation"]=new c.a({name:"Sting Operation",baseDifficulty:650,difficultyFac:1.04,rewardFac:1.095,reqdRank:500,rankGain:5.5,rankLoss:.5,hpLoss:2.5,count:Object(E.a)(1,150),weights:{hack:.25,str:.05,def:.05,dex:.25,agi:.1,cha:.2,int:.1},decays:{hack:.8,str:.85,def:.85,dex:.85,agi:.85,cha:.7,int:.9},isStealth:!0}),this.operations.Raid=new c.a({name:"Raid",baseDifficulty:800,difficultyFac:1.045,rewardFac:1.1,reqdRank:3e3,rankGain:55,rankLoss:2.5,hpLoss:50,count:Object(E.a)(1,150),weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.7,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.9},isKill:!0}),this.operations["Stealth Retirement Operation"]=new c.a({name:"Stealth Retirement Operation",baseDifficulty:1e3,difficultyFac:1.05,rewardFac:1.11,reqdRank:2e4,rankGain:22,rankLoss:2,hpLoss:10,count:Object(E.a)(1,150),weights:{hack:.1,str:.1,def:.1,dex:.3,agi:.3,cha:0,int:.1},decays:{hack:.7,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.9},isStealth:!0,isKill:!0}),this.operations.Assassination=new c.a({name:"Assassination",baseDifficulty:1500,difficultyFac:1.06,rewardFac:1.14,reqdRank:5e4,rankGain:44,rankLoss:4,hpLoss:5,count:Object(E.a)(1,150),weights:{hack:.1,str:.1,def:.1,dex:.3,agi:.3,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.8},isStealth:!0,isKill:!0})}process(e,t){if(e.page()!==g.a.BitVerse&&this.blackops.hasOwnProperty("Operation Daedalus"))return e.toBitVerse(!1,!1);if(!1===T.a[R.a.BladesSimulacrum].owned&&t.isWorking){if(this.action.type!==i.a.Idle){let e="Your Bladeburner action was cancelled because you started doing something else.";this.automateEnabled&&(e+="
Your automation was disabled as well. You will have to re-enable it through the Bladeburner console",this.automateEnabled=!1),M.a.SuppressBladeburnerPopup||Object(O.a)(e)}this.resetAction()}if(this.stamina<=0&&(this.log("Your Bladeburner action was cancelled because your stamina hit 0"),this.resetAction()),this.storedCycles>=k.a.CyclesPerSecond){let a=Math.floor(this.storedCycles/k.a.CyclesPerSecond);a=Math.min(a,5),this.storedCycles-=a*k.a.CyclesPerSecond,this.calculateMaxStamina(t),this.stamina+=this.calculateStaminaGainPerSecond(t)*a,this.stamina=Math.min(this.maxStamina,this.stamina);for(const e of Object.values(this.contracts)){const t=o.a[e.name];if(void 0===t)throw new Error(`growth formula for action '${e.name}' is undefined`);e.count+=a*t()/k.a.ActionCountGrowthPeriod}for(const e of Object.values(this.operations)){const t=o.a[e.name];if(void 0===t)throw new Error(`growth formula for action '${e.name}' is undefined`);void 0!==t&&(e.count+=a*t()/k.a.ActionCountGrowthPeriod)}for(const e of k.a.CityNames){const t=this.cities[e];if(!(t instanceof f.a))throw new Error("Invalid City object when processing passive chaos reduction in Bladeburner.process");t.chaos-=1e-4*a,t.chaos=Math.max(0,t.chaos)}this.randomEventCounter-=a,this.randomEventCounter<=0&&(this.randomEvent(),this.randomEventCounter+=Object(E.a)(240,600)),this.processAction(e,t,a),this.automateEnabled&&(this.stamina<=this.automateThreshLow?this.action.name===this.automateActionLow.name&&this.action.type===this.automateActionLow.type||(this.action=new r.a({type:this.automateActionLow.type,name:this.automateActionLow.name}),this.startAction(t,this.action)):this.stamina>=this.automateThreshHigh&&(this.action.name===this.automateActionHigh.name&&this.action.type===this.automateActionHigh.type||(this.action=new r.a({type:this.automateActionHigh.type,name:this.automateActionHigh.name}),this.startAction(t,this.action))))}}getTypeAndNameFromActionId(e){const t={type:"",name:""},a=Object.keys(i.a);for(let n=0;nr),!1;if(o.type===i.a.BlackOp){const e=this.getActionObject(o);if(null==e)throw new Error(`Action not found ${o.type}, ${o.name}`);if(!(e instanceof l.a))throw new Error("Action should be BlackOperation but isn't");if(e.reqdRank>this.rank)return n.log("bladeburner.startAction",()=>`Insufficient rank to start Black Op '${o.name}'.`),!1;if(null!=this.blackops[o.name])return n.log("bladeburner.startAction",()=>`Black Op ${o.name} has already been completed.`),!1;const t=[];for(const e in s.a)s.a.hasOwnProperty(e)&&t.push(e);t.sort((function(e,t){return s.a[e].reqdRank-s.a[t].reqdRank}));const r=t.indexOf(o.name);if(-1===r)return n.log("bladeburner.startAction",()=>`Invalid Black Op: '${a}'`),!1;if(r>0&&null==this.blackops[t[r-1]])return n.log("bladeburner.startAction",()=>`Preceding Black Op must be completed before starting '${o.name}'.`),!1}try{return this.startAction(e,o),n.log("bladeburner.startAction",()=>`Starting bladeburner action with type '${t}' and name ${a}"`),!0}catch(e){return this.resetAction(),n.log("bladeburner.startAction",()=>r),!1}}getActionTimeNetscriptFn(e,t,a,n){const r=`Invalid action: type='${t}' name='${a}'`,o=this.getActionIdFromTypeAndName(t,a);if(null==o)return n.log("bladeburner.getActionTime",()=>r),-1;const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.getActionTime",()=>r),-1;switch(o.type){case i.a.Contract:case i.a.Operation:case i.a.BlackOp:case i.a.BlackOperation:return 1e3*s.getActionTime(this);case i.a.Training:case i.a["Field Analysis"]:case i.a.FieldAnalysis:return 3e4;case i.a.Recruitment:return 1e3*this.getRecruitmentTime(e);case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return 6e4;default:return n.log("bladeburner.getActionTime",()=>r),-1}}getActionEstimatedSuccessChanceNetscriptFn(e,t,a,n){const r=`Invalid action: type='${t}' name='${a}'`,o=this.getActionIdFromTypeAndName(t,a);if(null==o)return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1];const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1];switch(o.type){case i.a.Contract:case i.a.Operation:case i.a.BlackOp:case i.a.BlackOperation:return s.getEstSuccessChance(this);case i.a.Training:case i.a["Field Analysis"]:case i.a.FieldAnalysis:case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return[1,1];case i.a.Recruitment:{const t=this.getRecruitmentSuccessChance(e);return[t,t]}default:return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1]}}getActionCountRemainingNetscriptFn(e,t,a){const n=`Invalid action: type='${e}' name='${t}'`,r=this.getActionIdFromTypeAndName(e,t);if(null==r)return a.log("bladeburner.getActionCountRemaining",()=>n),-1;const o=this.getActionObject(r);if(null==o)return a.log("bladeburner.getActionCountRemaining",()=>n),-1;switch(r.type){case i.a.Contract:case i.a.Operation:return Math.floor(o.count);case i.a.BlackOp:case i.a.BlackOperation:return null!=this.blackops[t]?0:1;case i.a.Training:case i.a.Recruitment:case i.a["Field Analysis"]:case i.a.FieldAnalysis:case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return 1/0;default:return a.log("bladeburner.getActionCountRemaining",()=>n),-1}}getSkillLevelNetscriptFn(e,t){return""!==e&&p.a.hasOwnProperty(e)?null==this.skills[e]?0:this.skills[e]:(t.log("bladeburner.getSkillLevel",()=>`Invalid skill: '${e}'`),-1)}getSkillUpgradeCostNetscriptFn(e,t){if(""===e||!p.a.hasOwnProperty(e))return t.log("bladeburner.getSkillUpgradeCost",()=>`Invalid skill: '${e}'`),-1;const a=p.a[e];return null==this.skills[e]?a.calculateCost(0):a.calculateCost(this.skills[e])}upgradeSkillNetscriptFn(e,t){const a=`Invalid skill: '${e}'`;if(!p.a.hasOwnProperty(e))return t.log("bladeburner.upgradeSkill",()=>a),!1;const n=p.a[e];let r=0;this.skills[e]&&!isNaN(this.skills[e])&&(r=this.skills[e]);const i=n.calculateCost(r);return n.maxLvl&&r>=n.maxLvl?(t.log("bladeburner.upgradeSkill",()=>`Skill '${e}' is already maxed.`),!1):this.skillPoints`You do not have enough skill points to upgrade ${e} (You have ${this.skillPoints}, you need ${i})`),!1):(this.skillPoints-=i,this.upgradeSkill(n),t.log("bladeburner.upgradeSkill",()=>`'${e}' upgraded to level ${this.skills[e]}`),!0)}getTeamSizeNetscriptFn(e,t,a){if(""===e&&""===t)return this.teamSize;const n=`Invalid action: type='${e}' name='${t}'`,r=this.getActionIdFromTypeAndName(e,t);if(null==r)return a.log("bladeburner.getTeamSize",()=>n),-1;const o=this.getActionObject(r);return null==o?(a.log("bladeburner.getTeamSize",()=>n),-1):r.type===i.a.Operation||r.type===i.a.BlackOp||r.type===i.a.BlackOperation?o.teamCount:0}setTeamSizeNetscriptFn(e,t,a,n){const r=`Invalid action: type='${e}' name='${t}'`,o=this.getActionIdFromTypeAndName(e,t);if(null==o)return n.log("bladeburner.setTeamSize",()=>r),-1;if(o.type!==i.a.Operation&&o.type!==i.a.BlackOp&&o.type!==i.a.BlackOperation)return n.log("bladeburner.setTeamSize",()=>"Only valid for 'Operations' and 'BlackOps'"),-1;const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.setTeamSize",()=>r),-1;let l=Math.round(a);return isNaN(l)||l<0?(n.log("bladeburner.setTeamSize",()=>"Invalid size: "+a),-1):(this.teamSize`Team size for '${t}' set to ${l}.`),l)}joinBladeburnerFactionNetscriptFn(e){const t=C.a.Bladeburners;return!!t.isMember||(this.rank>=k.a.RankNeededForFaction?(Object(P.d)(t),e.log("bladeburner.joinBladeburnerFaction",()=>"Joined Bladeburners faction."),!0):(e.log("bladeburner.joinBladeburnerFaction",()=>`You do not have the required rank (${this.rank}/${k.a.RankNeededForFaction}).`),!1))}toJSON(){return Object(n.b)("Bladeburner",this)}static fromJSON(e){return Object(n.a)(I,e.data)}}n.c.constructors.Bladeburner=I},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(322),r=a(28),i=a(8),o=a(21);const s={name:"",info:"",companyPositions:{},expMultiplier:1,salaryMultiplier:1,jobStatReqOffset:0};class l{constructor(e=s){this.name=e.name,this.info=e.info,this.companyPositions=e.companyPositions,this.expMultiplier=e.expMultiplier,this.salaryMultiplier=e.salaryMultiplier,this.jobStatReqOffset=e.jobStatReqOffset,this.isPlayerEmployed=!1,this.playerReputation=1,this.favor=0,this.rolloverRep=0,this.isMegacorp=!1,e.isMegacorp&&(this.isMegacorp=!0)}hasPosition(e){return e instanceof n.a?null!=this.companyPositions[e.name]:null!=this.companyPositions[e]}hasAgentPositions(){return null!=this.companyPositions[r.a[0]]}hasBusinessConsultantPositions(){return null!=this.companyPositions[r.c[0]]}hasBusinessPositions(){return null!=this.companyPositions[r.b[0]]}hasEmployeePositions(){return null!=this.companyPositions[r.e[1]]}hasITPositions(){return null!=this.companyPositions[r.d[0]]}hasSecurityPositions(){return null!=this.companyPositions[r.h[2]]}hasSoftwareConsultantPositions(){return null!=this.companyPositions[r.k[0]]}hasSoftwarePositions(){return null!=this.companyPositions[r.j[0]]}hasWaiterPositions(){return null!=this.companyPositions[r.e[0]]}gainFavor(){null==this.favor&&(this.favor=0),null==this.rolloverRep&&(this.rolloverRep=0);const e=this.getFavorGain();2==e.length?(this.favor+=e[0],this.rolloverRep=e[1]):console.error("Invalid result from getFavorGain() function")}getFavorGain(){null==this.favor&&(this.favor=0),null==this.rolloverRep&&(this.rolloverRep=0);let e=0,t=this.playerReputation+this.rolloverRep,a=i.a.CompanyReputationToFavorBase*Math.pow(i.a.CompanyReputationToFavorMult,this.favor);for(;t>0&&t>=a;)++e,t-=a,a*=i.a.FactionReputationToFavorMult;return[e,t]}toJSON(){return Object(o.b)("Company",this)}static fromJSON(e){return Object(o.a)(l,e.data)}}o.c.constructors.Company=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"e",(function(){return h})),a.d(t,"d",(function(){return p}));var n=a(27),r=a(119),i=a(5),o=a(8),s=a(15),l=a(782);function c(e){const t=Math.round(e);if(isNaN(t)||!Object(l.a)(t))return 1/0;if(t>m())return 1/0;const a=Math.max(0,Math.log(t)/Math.log(2)-6);return t*o.a.BaseCostFor1GBOfRamServer*i.a.PurchasedServerCost*Math.pow(i.a.PurchasedServerSoftcap,a)}function u(){return Math.round(o.a.PurchasedServerLimit*i.a.PurchasedServerLimit)}function m(){const e=Math.round(o.a.PurchasedServerMaxRam*i.a.PurchasedServerMaxRam);return 1<<31-Math.clz32(e)}function h(e,t,a,i){if(!i.canAfford(a))return void Object(s.a)("You don't have enough money to purchase this server!");if(i.purchasedServers.length>=u())return void Object(s.a)("You have reached the maximum limit of "+u()+" servers. You cannot purchase any more. You can delete some of your purchased servers using the deleteServer() Netscript function in a script");if(""==e)return void Object(s.a)("You must enter a hostname for your new server!");const o=Object(r.f)({adminRights:!0,hostname:e,ip:Object(n.e)(),isConnectedTo:!1,maxRam:t,organizationName:"",purchasedByPlayer:!0});Object(n.a)(o),i.purchasedServers.push(o.hostname);const l=i.getHomeComputer();l.serversOnNetwork.push(o.hostname),o.serversOnNetwork.push(l.hostname),i.loseMoney(a,"servers"),Object(s.a)("Server successfully purchased with hostname "+e)}function p(e){const t=e.getUpgradeHomeRamCost();if(!e.canAfford(t))return void Object(s.a)("You do not have enough money to purchase additional RAM for your home computer");const a=e.getHomeComputer();a.maxRam>=o.a.HomeComputerMaxRam?Object(s.a)("You cannot upgrade your home computer RAM because it is at its maximum possible value"):(a.maxRam*=2,e.loseMoney(t,"servers"))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(175),r=a(164),i=a(21),o=a(242);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l{constructor(e={}){var t;s(this,"level",1),s(this,"sizeUsed",0),s(this,"smartSupplyEnabled",!1),s(this,"smartSupplyUseLeftovers",{}),s(this,"smartSupplyStore",0),this.loc=e.loc?e.loc:"",this.size=e.size?e.size:0,this.materials={Water:new n.a({name:"Water"}),Energy:new n.a({name:"Energy"}),Food:new n.a({name:"Food"}),Plants:new n.a({name:"Plants"}),Metal:new n.a({name:"Metal"}),Hardware:new n.a({name:"Hardware"}),Chemicals:new n.a({name:"Chemicals"}),Drugs:new n.a({name:"Drugs"}),Robots:new n.a({name:"Robots"}),AICores:new n.a({name:"AI Cores"}),RealEstate:new n.a({name:"Real Estate"})},this.smartSupplyUseLeftovers={Water:!0,Energy:!0,Food:!0,Plants:!0,Metal:!0,Hardware:!0,Chemicals:!0,Drugs:!0,Robots:!0,AICores:!0,RealEstate:!0},e.corp&&e.industry&&this.updateSize(e.corp,e.industry),null!==(t=e.corp)&&void 0!==t&&t.unlockUpgrades[1]&&(this.smartSupplyEnabled=!0)}updateMaterialSizeUsed(){this.sizeUsed=0;for(const e in this.materials){const t=this.materials[e];r.a.hasOwnProperty(e)&&(this.sizeUsed+=t.qty*r.a[e])}this.sizeUsed>this.size&&console.warn("Warehouse size used greater than capacity, something went wrong")}updateSize(e,t){try{this.size=100*this.level*e.getStorageMultiplier()*t.getStorageMultiplier()}catch(e){Object(o.a)(e)}}toJSON(){return Object(i.b)("Warehouse",this)}static fromJSON(e){return Object(i.a)(l,e.data)}}i.c.constructors.Warehouse=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(772),r=a(506);const i={};n.a.forEach(e=>{i[e.name]=new r.a(e.name,e.desc,e.isHacking,e.isCombat,e.params)})},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(69),r=a(187);const i=[];class o{constructor(e,t,a,n,r){this.id=e,this.shape=t,this.type=a,this.power=n,this.limit=r}fullAt(e,t,a){if(t<0)return!1;if(t>=this.height(a))return!1;if(e<0)return!1;if(e>=this.width(a))return!1;let[n,r,i,o]=[0,0,1,1];1===a?[n,r,i,o]=[this.width(a)-1,0,-1,1]:2===a?[n,r,i,o]=[this.width(a)-1,this.height(a)-1,-1,-1]:3===a&&([n,r,i,o]=[0,this.height(a)-1,1,-1]);let[s,l]=[n+i*e,r+o*t];return a%2==1&&([s,l]=[l,s]),this.shape[l][s]}width(e){return e%2==0?this.shape[0].length:this.shape.length}height(e){return e%2==0?this.shape.length:this.shape[0].length}neighboors(e){const t=[],a=(a,n)=>{this.fullAt(a,n,e)||t.some(e=>e[0]===a&&e[1]===n)||t.push([a,n])};for(let t=0;tt[0]===e[0]&&t[1]===e[1])||n.push(e);return n}copy(){return new o(this.id,this.shape.map(e=>e.slice()),this.type,this.power,this.limit)}}function s(e){for(const t of i)if(t.id===e)return t;return null}!function(){const e=!1,t=!0;i.push(new o(0,r.a.S,n.b.Hacking,1,1)),i.push(new o(1,r.a.Z,n.b.Hacking,1,1)),i.push(new o(5,r.a.T,n.b.HackingSpeed,1.3,1)),i.push(new o(6,r.a.I,n.b.HackingMoney,2,1)),i.push(new o(7,r.a.J,n.b.HackingGrow,.5,1)),i.push(new o(10,r.a.T,n.b.Strength,2,1)),i.push(new o(12,r.a.L,n.b.Defense,2,1)),i.push(new o(14,r.a.L,n.b.Dexterity,2,1)),i.push(new o(16,r.a.S,n.b.Agility,2,1)),i.push(new o(18,r.a.S,n.b.Charisma,3,1)),i.push(new o(20,r.a.I,n.b.HacknetMoney,1,1)),i.push(new o(21,r.a.O,n.b.HacknetCost,-1,1)),i.push(new o(25,r.a.J,n.b.Rep,.5,1)),i.push(new o(27,r.a.J,n.b.WorkMoney,10,1)),i.push(new o(28,r.a.L,n.b.Crime,2,1)),i.push(new o(30,r.a.S,n.b.Bladeburner,.4,1)),i.push(new o(100,[[e,t,t],[t,t,e],[e,t,e]],n.b.Booster,1.1,99)),i.push(new o(101,[[t,t,t,t],[t,e,e,e]],n.b.Booster,1.1,99)),i.push(new o(102,[[e,t,t,t],[t,t,e,e]],n.b.Booster,1.1,99)),i.push(new o(103,[[t,t,t,e],[e,e,t,t]],n.b.Booster,1.1,99)),i.push(new o(104,[[e,t,t],[e,t,e],[t,t,e]],n.b.Booster,1.1,99)),i.push(new o(105,[[e,e,t],[e,t,t],[t,t,e]],n.b.Booster,1.1,99)),i.push(new o(106,[[t,e,e],[t,t,t],[t,e,e]],n.b.Booster,1.1,99)),i.push(new o(107,[[e,t,e],[t,t,t],[e,t,e]],n.b.Booster,1.1,99))}();const l=new o(-2,[],n.b.None,0,1/0),c=new o(-2,[],n.b.Delete,0,1/0)},function(e,t,a){"use strict";a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return l}));var n=a(8),r=a(5);function i(e){let t=1+e.favor/100;return isNaN(t)&&(t=1),t*r.a.FactionWorkRepGain}function o(e,t){return(e.hacking+e.intelligence/3)/n.a.MaxSkillLevel*e.faction_rep_mult*e.getIntelligenceBonus(1)*i(t)}function s(e,t){return.9*(e.hacking/n.a.MaxSkillLevel+e.strength/n.a.MaxSkillLevel+e.defense/n.a.MaxSkillLevel+e.dexterity/n.a.MaxSkillLevel+e.agility/n.a.MaxSkillLevel+e.intelligence/n.a.MaxSkillLevel)/4.5*e.faction_rep_mult*i(t)*e.getIntelligenceBonus(1)}function l(e,t){return.9*(e.hacking/n.a.MaxSkillLevel+e.strength/n.a.MaxSkillLevel+e.defense/n.a.MaxSkillLevel+e.dexterity/n.a.MaxSkillLevel+e.agility/n.a.MaxSkillLevel+e.charisma/n.a.MaxSkillLevel+e.intelligence/n.a.MaxSkillLevel)/5.5*e.faction_rep_mult*i(t)*e.getIntelligenceBonus(1)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"d",(function(){return p})),a.d(t,"b",(function(){return d}));var n=a(204),r=a(68),i=a(8),o=a(2),s=a(4),l=a(16),c=a(15),u=a(0);function m(e,t,a=null,m={}){if((t=Math.round(t))<=0)return!1;if(null==e||isNaN(t))return a?a.log("stock.buy",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==m.suppressDialog&&Object(c.a)("Failed to buy stock. This may be a bug, contact developer"),!1;const h=Object(n.b)(e,t,r.a.Long);if(null==h)return!1;if(o.a.money`You do not have enough money to purchase this position. You need ${s.a.formatMoney(h)}.`):!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"You do not have enough money to purchase this. You need ",u.createElement(l.a,{money:h}))),!1;if(t+e.playerShares+e.playerShortShares>e.maxShares)return a?a.log("stock.buy",()=>`Purchasing '${t+e.playerShares+e.playerShortShares}' shares would exceed ${e.symbol}'s maximum (${e.maxShares}) number of shares`):!0!==m.suppressDialog&&Object(c.a)(`You cannot purchase this many shares. ${e.symbol} has a maximum of ${s.a.formatShares(e.maxShares)} shares.`),!1;const p=e.playerShares*e.playerAvgPx;o.a.loseMoney(h,"stock");const d=p+h-i.a.StockMarketCommission;if(e.playerShares=Math.round(e.playerShares+t),e.playerAvgPx=d/e.playerShares,Object(n.d)(e,t),null!=m.rerenderFn&&"function"==typeof m.rerenderFn&&m.rerenderFn(),a){const n=`Bought ${s.a.formatShares(t)} shares of ${e.symbol} for ${s.a.formatMoney(h)}. Paid ${s.a.formatMoney(i.a.StockMarketCommission)} in commission fees.`;a.log("stock.buy",()=>n)}else!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"Bought ",s.a.formatShares(t)," shares of ",e.symbol," for ",u.createElement(l.a,{money:h}),". Paid"," ",u.createElement(l.a,{money:i.a.StockMarketCommission})," in commission fees."));return!0}function h(e,t,a=null,i={}){if(null==e||t<0||isNaN(t))return a?a.log("stock.sell",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==i.suppressDialog&&Object(c.a)("Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer"),!1;if((t=Math.round(t))>e.playerShares&&(t=e.playerShares),0===t)return!1;const m=Object(n.c)(e,t,r.a.Long);if(null==m)return!1;let h=m-e.playerAvgPx*t;if(isNaN(h)&&(h=0),o.a.gainMoney(m,"stock"),a&&(a.scriptRef.onlineMoneyMade+=h,o.a.scriptProdSinceLastAug+=h),e.playerShares=Math.round(e.playerShares-t),0===e.playerShares&&(e.playerAvgPx=0),Object(n.d)(e,t),null!=i.rerenderFn&&"function"==typeof i.rerenderFn&&i.rerenderFn(),a){const n=`Sold ${s.a.formatShares(t)} shares of ${e.symbol}. After commissions, you gained a total of ${s.a.formatMoney(m)}.`;a.log("stock.sell",()=>n)}else!0!==i.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"Sold ",s.a.formatShares(t)," shares of ",e.symbol,". After commissions, you gained a total of"," ",u.createElement(l.a,{money:m}),"."));return!0}function p(e,t,a=null,m={}){if((t=Math.round(t))<=0)return!1;if(null==e||isNaN(t))return a?a.log("stock.short",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==m.suppressDialog&&Object(c.a)("Failed to initiate a short position in a stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, so contact developer"),!1;const h=Object(n.b)(e,t,r.a.Short);if(null==h)return!1;if(o.a.money"You do not have enough money to purchase this short position. You need "+s.a.formatMoney(h)):!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"You do not have enough money to purchase this short position. You need ",u.createElement(l.a,{money:h}))),!1;if(t+e.playerShares+e.playerShortShares>e.maxShares)return a?a.log("stock.short",()=>`This '${t+e.playerShares+e.playerShortShares}' short shares would exceed ${e.symbol}'s maximum (${e.maxShares}) number of shares.`):!0!==m.suppressDialog&&Object(c.a)(`You cannot purchase this many shares. ${e.symbol} has a maximum of ${e.maxShares} shares.`),!1;const p=e.playerShortShares*e.playerAvgShortPx;o.a.loseMoney(h,"stock");const d=p+h-i.a.StockMarketCommission;if(e.playerShortShares=Math.round(e.playerShortShares+t),e.playerAvgShortPx=d/e.playerShortShares,Object(n.d)(e,t),null!=m.rerenderFn&&"function"==typeof m.rerenderFn&&m.rerenderFn(),a){const n=`Bought a short position of ${s.a.formatShares(t)} shares of ${e.symbol} for ${s.a.formatMoney(h)}. Paid ${s.a.formatMoney(i.a.StockMarketCommission)} in commission fees.`;a.log("stock.short",()=>n)}else m.suppressDialog||Object(c.a)(u.createElement(u.Fragment,null,"Bought a short position of ",s.a.formatShares(t)," shares of ",e.symbol," for"," ",u.createElement(l.a,{money:h}),". Paid ",u.createElement(l.a,{money:i.a.StockMarketCommission})," in commission fees."));return!0}function d(e,t,a=null,i={}){if(null==e||isNaN(t)||t<0)return a?a.log("stock.sellShort",()=>`Invalid arguments: stock='${e}' shares='${t}'`):i.suppressDialog||Object(c.a)("Failed to sell a short position in a stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, so contact developer"),!1;if((t=Math.round(t))>e.playerShortShares&&(t=e.playerShortShares),0===t)return!1;const m=t*e.playerAvgShortPx,h=Object(n.c)(e,t,r.a.Short);if(null==h||isNaN(h)||null==m)return a?a.log("stock.sellShort",()=>"Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug"):i.suppressDialog||Object(c.a)("Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug"),!1;let p=h-m;if(isNaN(p)&&(p=0),o.a.gainMoney(h,"stock"),a&&(a.scriptRef.onlineMoneyMade+=p,o.a.scriptProdSinceLastAug+=p),e.playerShortShares=Math.round(e.playerShortShares-t),0===e.playerShortShares&&(e.playerAvgShortPx=0),Object(n.d)(e,t),null!=i.rerenderFn&&"function"==typeof i.rerenderFn&&i.rerenderFn(),a){const n=`Sold your short position of ${s.a.formatShares(t)} shares of ${e.symbol}. After commissions, you gained a total of `+s.a.formatMoney(h);a.log("stock.sellShort",()=>n)}else i.suppressDialog||Object(c.a)(u.createElement(u.Fragment,null,"Sold your short position of ",s.a.formatShares(t)," shares of ",e.symbol,". After commissions, you gained a total of ",u.createElement(l.a,{money:h})));return!0}},function(e,t,a){"use strict";a.d(t,"b",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"d",(function(){return u}));var n=a(0),r=a.n(n),i=a(13),o=a(329);class s{constructor(e,t){i.a.TimestampsFormat&&(e="["+Object(o.a)(i.a.TimestampsFormat)+"] "+e),this.text=e,this.color=t}}class l{constructor(e){i.a.TimestampsFormat&&(e=r.a.createElement(r.a.Fragment,null,"[",Object(o.a)(i.a.TimestampsFormat),"] ",e)),this.raw=e}}class c{constructor(e,t){i.a.TimestampsFormat&&(e="["+Object(o.a)(i.a.TimestampsFormat)+"] "+e),this.hostname=t,this.dashes=e}}class u{constructor(e,t){this.time=e,this.timeLeft=e,this.action=t}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(5);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={name:"foo",desc:"foo"}){if(r(this,"baseCost",1),r(this,"costInc",1),r(this,"maxLvl",0),r(this,"successChanceAll",0),r(this,"successChanceStealth",0),r(this,"successChanceKill",0),r(this,"successChanceContract",0),r(this,"successChanceOperation",0),r(this,"successChanceEstimate",0),r(this,"actionTime",0),r(this,"effHack",0),r(this,"effStr",0),r(this,"effDef",0),r(this,"effDex",0),r(this,"effAgi",0),r(this,"effCha",0),r(this,"stamina",0),r(this,"money",0),r(this,"expGain",0),!e.name)throw new Error("Failed to initialize Bladeburner Skill. No name was specified in ctor");if(!e.desc)throw new Error("Failed to initialize Bladeburner Skills. No desc was specified in ctor");this.name=e.name,this.desc=e.desc,this.baseCost=e.baseCost?e.baseCost:1,this.costInc=e.costInc?e.costInc:1,e.maxLvl&&(this.maxLvl=e.maxLvl),e.successChanceAll&&(this.successChanceAll=e.successChanceAll),e.successChanceStealth&&(this.successChanceStealth=e.successChanceStealth),e.successChanceKill&&(this.successChanceKill=e.successChanceKill),e.successChanceContract&&(this.successChanceContract=e.successChanceContract),e.successChanceOperation&&(this.successChanceOperation=e.successChanceOperation),e.successChanceEstimate&&(this.successChanceEstimate=e.successChanceEstimate),e.actionTime&&(this.actionTime=e.actionTime),e.effHack&&(this.effHack=e.effHack),e.effStr&&(this.effStr=e.effStr),e.effDef&&(this.effDef=e.effDef),e.effDex&&(this.effDex=e.effDex),e.effAgi&&(this.effAgi=e.effAgi),e.effCha&&(this.effCha=e.effCha),e.stamina&&(this.stamina=e.stamina),e.money&&(this.money=e.money),e.expGain&&(this.expGain=e.expGain)}calculateCost(e){return Math.floor((this.baseCost+e*this.costInc)*n.a.BladeburnerSkillCost)}getMultiplier(e){return"successChanceAll"===e?this.successChanceAll:"successChanceStealth"===e?this.successChanceStealth:"successChanceKill"===e?this.successChanceKill:"successChanceContract"===e?this.successChanceContract:"successChanceOperation"===e?this.successChanceOperation:"successChanceEstimate"===e?this.successChanceEstimate:"actionTime"===e?this.actionTime:"effHack"===e?this.effHack:"effStr"===e?this.effStr:"effDef"===e?this.effDef:"effDex"===e?this.effDex:"effAgi"===e?this.effAgi:"effCha"===e?this.effCha:"stamina"===e?this.stamina:"money"===e?this.money:"expGain"===e?this.expGain:0}}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(377),r=a(137),i=a(627),o=a(23),s=a(811);const l={};function c(e){if(!e.name)throw new Error("Invalid constructor parameters for Location. No 'name' property");return l[e.name]instanceof i.a&&console.warn(`Property with name ${e.name} already exists and is being overwritten`),l[e.name]=new i.a(e),l[e.name]}r.a[o.a.Aevum]=new n.a(o.a.Aevum),r.a[o.a.Chongqing]=new n.a(o.a.Chongqing),r.a[o.a.Ishima]=new n.a(o.a.Ishima),r.a[o.a.NewTokyo]=new n.a(o.a.NewTokyo),r.a[o.a.Sector12]=new n.a(o.a.Sector12),r.a[o.a.Volhaven]=new n.a(o.a.Volhaven),r.a[o.a.Aevum].asciiArt="\n [aevum police headquarters] 26 \n o \n I \\ [bachman & associates] \n \\ 56 B \n x \\ [summit university] \n \\ \\ 28 \n \\ [snap fitness gym] x o--L-----------N \n K \\ / \n \\ \\ Q [casino] \n x 58 \\ / [travel agency] \n \\ 94 95 o \n 90 x 59 o------o | \n \\ / \\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\ | \\ / \n [hospital] \\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\ [rho construction] \n H [netlink tech.] | J \n | | \\ \n | 34 x \\ \n [clarke inc.] C | \\ [world stock exchange] \n | | \\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P ",r.a[o.a.Chongqing].asciiArt="\n | \n 75 o \n \\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\ o 78 [kuaigong international] \n \\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D ",r.a[o.a.Ishima].asciiArt="\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\ x 57 \n / / | \\ | \n / / | \\ | \n o 22 o | \\| 29/56 \n | | o \n | [hospital] D / \\ 3 2 1 \n o | / \\ o-------x------o \n / o / \\ / \n 48 o / 55 x \\ / \n \\ / / x [glitch] \n \\ / [nova medical] / 4/30 \\ \n 49 x A \\ H \n / \\ / \\ \n / \\ [travel agency] F o 31 \n / \\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E ",r.a[o.a.NewTokyo].asciiArt="\n \n \n o \n \\ \n \\ [defcomm] \n \\ \n o--x---A--x--o [travel agency] \n 7 8 10 G \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\ 24 25 26 27 \n \\ \n [noodle bar] x 14 \n \\ \n \\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--E--x-----x-----x---+---x----x--H--x-o \n | \n | \n o 17 \n \n \n \n F [the slums] \n ",r.a[o.a.Sector12].asciiArt="\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\ | \\ / \n | \\ | [iron gym] x 95 \n (79) x \\ | / \\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\ / \n | C [cia] \\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\ \n | o------------o 34 / \\ \n (29) | / [carmichael sec.] D \\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] ",r.a[o.a.Volhaven].asciiArt="\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\ / \\ \n \\ o 65 o 69 \n [syscore sec.] H | | \n \\ | | [millenium fitness gym] \n \\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K ";for(const e of s.a){const t=c(e),a=t.city;if(null===a)for(const e in r.a)r.a[e].addLocation(t.name);else r.a[a].addLocation(t.name)}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(8),r=a(184),i=a(36),o=a(15),s=a(21);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c{constructor(e="",t=1){l(this,"cores",1),l(this,"level",1),l(this,"moneyGainRatePerSecond",0),l(this,"onlineTimeSeconds",0),l(this,"ram",1),l(this,"totalMoneyGenerated",0),this.name=e,this.updateMoneyGainRate(t)}calculateCoreUpgradeCost(e=1,t){return Object(r.a)(this.cores,e,t)}calculateLevelUpgradeCost(e=1,t){return Object(r.b)(this.level,e,t)}calculateRamUpgradeCost(e=1,t){return Object(r.e)(this.ram,e,t)}process(e=1){const t=e*n.a.MilliPerCycle/1e3;let a=this.moneyGainRatePerSecond*t;return isNaN(a)&&(console.error(`Hacknet Node ${this.name} calculated earnings of NaN`),a=0),this.totalMoneyGenerated+=a,this.onlineTimeSeconds+=t,a}upgradeCore(e=1,t){this.cores=Math.min(i.a.MaxCores,Math.round(this.cores+e)),this.updateMoneyGainRate(t)}upgradeLevel(e=1,t){this.level=Math.min(i.a.MaxLevel,Math.round(this.level+e)),this.updateMoneyGainRate(t)}upgradeRam(e=1,t){for(let t=0;t13)throw new Error("Card instantiated with improper value: "+e)}formatValue(){switch(this.value){case 1:return"A";case 11:return"J";case 12:return"Q";case 13:return"K";default:return""+this.value}}isRedSuit(){return this.suit===n.Hearts||this.suit===n.Diamonds}getStringRepresentation(){return`${this.formatValue()} of ${this.suit}`}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={}){r(this,"name",""),r(this,"type",-1),e.name&&(this.name=e.name),e.type&&(this.type=e.type)}toJSON(){return Object(n.b)("ActionIdentifier",this)}static fromJSON(e){return Object(n.a)(i,e.data)}}n.c.constructors.ActionIdentifier=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(211);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e,t){r(this,"lvl",1),r(this,"owned",!1);const a="BitNode"+e,i=n.a[a];if(null==i)throw new Error("Invalid Bit Node for this Source File");this.n=e,this.name=`Source-File ${e}: ${i.name}`,this.info=t}}},,,,function(e,t,a){"use strict";function n(e,t){return Math.random()*(t-e)+e}function r(e){switch(e.key){case"ArrowUp":case"w":return"↑";case"ArrowLeft":case"a":return"←";case"ArrowDown":case"s":return"↓";case"ArrowRight":case"d":return"→"}return""}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}))},,function(e,t,a){"use strict";a.d(t,"c",(function(){return u})),a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return h}));var n=a(8),r=a(2),i=a(45),o=a(119),s=a(27),l=a(4),c=a(286);function u(e){const t=((new Date).getTime()-r.a.lastUpdate)/1e3;let a=e.onlineRunningTime/14400;a>=1&&(a=1);for(const a in e.dataMap)if(e.dataMap.hasOwnProperty(a)){if(0==e.dataMap[a][2]||null==e.dataMap[a][2])continue;const n=Object(s.d)(a);if(null==n)continue;const c=Math.round(.5*e.dataMap[a][2]/e.onlineRunningTime*t);e.log(`Called on ${n.hostname} ${c} times while offline`);const u=Object(s.d)(e.server);if(null===u)throw new Error("getServer of null key?");if(!(n instanceof i.a))throw new Error("trying to grow a non-normal server");const m=Object(o.e)(n,c,r.a,u.cpuCores);e.log(`'${n.hostname}' grown by ${l.a.format(100*m-100,"0.000000%")} while offline`)}const c=a*(e.onlineExpGained/e.onlineRunningTime)*t;r.a.gainHackingExp(c),e.offlineRunningTime+=t,e.offlineExpGained+=c;for(const a in e.dataMap)if(e.dataMap.hasOwnProperty(a)){if(0==e.dataMap[a][3]||null==e.dataMap[a][3])continue;const r=Object(s.d)(a);if(null==r)continue;if(!(r instanceof i.a))throw new Error("trying to weaken a non-normal server");const o=Object(s.d)(e.server);if(null===o)throw new Error("getServer of null key?");const l=Math.round(.5*e.dataMap[a][3]/e.onlineRunningTime*t);e.log(`Called weaken() on ${r.hostname} ${l} times while offline`);const c=1+(o.cpuCores-1)/16;r.weaken(n.a.ServerWeakenAmount*l*c)}}function m(e,t,a){for(let n=0;n{document.body.removeChild(e),window.URL.revokeObjectURL(a)},0)}}read(){return this.text}show(){Object(n.a)(`${this.fn}
${this.text}`)}toJSON(){return Object(r.b)("TextFile",this)}write(e){this.text=e}static fromJSON(e){return Object(r.a)(i,e.data)}}function o(e,t){const a=e.endsWith(".txt")?e:e+".txt";for(const e of t.textFiles)if(e.fn===a)return e;return null}function s(e,t,a){if(null!==o(e,a))return void console.error(`A file named "${e}" already exists on server ${a.hostname}.`);const n=new i(e,t);return a.textFiles.push(n),n}r.c.constructors.TextFile=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(15);function r(e){console.error(e),Object(n.a)("Caught an exception: "+e+"
Filename: "+(e.fileName||"UNKNOWN FILE NAME")+"
Line Number: "+(e.lineNumber||"UNKNOWN LINE NUMBER")+"
This is a bug, please report to game developer with this message as well as details about how to reproduce the bug.
If you want to be safe, I suggest refreshing the game WITHOUT saving so that your safe doesn't get corrupted")}},function(e,t,a){"use strict";a.d(t,"a",(function(){return y})),a.d(t,"b",(function(){return f})),a.d(t,"e",(function(){return d})),a.d(t,"d",(function(){return b})),a.d(t,"c",(function(){return k}));var n=a(298),r=a(20),i=a(6),o=a(60),s=a(2),l=a(267),c=a(27),u=a(13),m=a(15),h=a(21);function p(e,t=!1){e.recvd=!0,!t&&u.a.SuppressMessages||d(e.filename),function(e,t){const a=Object(c.d)(t);if(null==a)return void console.warn("Could not find server "+t);for(let t=0;t
This message was saved as "+t.filename+" onto your home computer.";Object(m.a)(a)}function f(){if(l.b)return;const e=y[E.Jumper0],t=y[E.Jumper1],a=y[E.Jumper2],n=y[E.Jumper3],c=y[E.Jumper4],u=y[E.CyberSecTest],m=y[E.NiteSecTest],h=y[E.BitRunnersTest],d=y[E.RedPill];let f=!1;if(r.a[i.a.TheRedPill].owned&&(f=!0),d&&f&&0===s.a.sourceFiles.length&&!l.b)p(d,!0);else if(d&&f)l.b||p(d);else if(e&&!e.recvd&&s.a.hacking>=25){p(e);const t=o.a.Flight.name,a=s.a.getHomeComputer();a.programs.includes(t)||a.programs.push(t)}else t&&!t.recvd&&s.a.hacking>=40?p(t):u&&!u.recvd&&s.a.hacking>=50?p(u):a&&!a.recvd&&s.a.hacking>=175?p(a):m&&!m.recvd&&s.a.hacking>=200?p(m):n&&!n.recvd&&s.a.hacking>=350?p(n):c&&!c.recvd&&s.a.hacking>=490?p(c):h&&!h.recvd&&s.a.hacking>=500&&p(h)}function g(e){y[e.filename]=e}let y={};function b(e){y=JSON.parse(e,h.c)}const E={Jumper0:"j0.msg",Jumper1:"j1.msg",Jumper2:"j2.msg",Jumper3:"j3.msg",Jumper4:"j4.msg",CyberSecTest:"csec-test.msg",NiteSecTest:"nitesec-test.msg",BitRunnersTest:"19dfj3l1nd.msg",RedPill:"icarus.msg"};function k(){y={},g(new n.a(E.Jumper0,"I know you can sense it. I know you're searching for it. It's why you spend night after night at your computer.
It's real, I've seen it. And I can help you find it. But not right now. You're not ready yet.
Use this program to track your progress
The fl1ght.exe program was added to your home computer
-jump3R")),g(new n.a(E.Jumper1,"Soon you will be contacted by a hacking group known as CyberSec. They can help you with your search.
You should join them, garner their favor, and exploit them for their Augmentations. But do not trust them. They are not what they seem. No one is.
-jump3R")),g(new n.a(E.Jumper2,"Do not try to save the world. There is no world to save. If you want to find the truth, worry only about yourself. Ethics and morals will get you killed.
Watch out for a hacking group known as NiteSec.
-jump3R")),g(new n.a(E.Jumper3,"You must learn to walk before you can run. And you must run before you can fly. Look for the black hand.
I.I.I.I
-jump3R")),g(new n.a(E.Jumper4,"To find what you are searching for, you must understand the bits. The bits are all around us. The runners will help you.
-jump3R")),g(new n.a(E.CyberSecTest,"We've been watching you. Your skills are very impressive. But you're wasting your talents. If you join us, you can put your skills to good use and change the world for the better. If you join us, we can unlock your full potential.
But first, you must pass our test. Find and install the backdoor on our server.
-CyberSec")),g(new n.a(E.NiteSecTest,"People say that the corrupted governments and corporations rule the world. Yes, maybe they do. But do you know who everyone really fears? People like us. Because they can't hide from us. Because they can't fight shadows and ideas with bullets.
Join us, and people will fear you, too.
Find and install the backdoor on our server. Then, we will contact you again.
-NiteSec")),g(new n.a(E.BitRunnersTest,"We know what you are doing. We know what drives you. We know what you are looking for.
We can help you find the answers.
run4theh111z")),g(new n.a(E.RedPill,"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*%
)@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B)
@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB
DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(125);const r={};r["Operation Typhoon"]=new n.a({name:"Operation Typhoon",baseDifficulty:2e3,reqdRank:2500,rankGain:50,rankLoss:10,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Zero"]=new n.a({name:"Operation Zero",baseDifficulty:2500,reqdRank:5e3,rankGain:60,rankLoss:15,hpLoss:50,weights:{hack:.2,str:.15,def:.15,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation X"]=new n.a({name:"Operation X",baseDifficulty:3e3,reqdRank:7500,rankGain:75,rankLoss:15,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Titan"]=new n.a({name:"Operation Titan",baseDifficulty:4e3,reqdRank:1e4,rankGain:100,rankLoss:20,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Ares"]=new n.a({name:"Operation Ares",baseDifficulty:5e3,reqdRank:12500,rankGain:125,rankLoss:20,hpLoss:200,weights:{hack:0,str:.25,def:.25,dex:.25,agi:.25,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Archangel"]=new n.a({name:"Operation Archangel",baseDifficulty:7500,reqdRank:15e3,rankGain:200,rankLoss:20,hpLoss:25,weights:{hack:0,str:.2,def:.2,dex:.3,agi:.3,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Juggernaut"]=new n.a({name:"Operation Juggernaut",baseDifficulty:1e4,reqdRank:2e4,rankGain:300,rankLoss:40,hpLoss:300,weights:{hack:0,str:.25,def:.25,dex:.25,agi:.25,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Red Dragon"]=new n.a({name:"Operation Red Dragon",baseDifficulty:12500,reqdRank:25e3,rankGain:500,rankLoss:50,hpLoss:500,weights:{hack:.05,str:.2,def:.2,dex:.25,agi:.25,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation K"]=new n.a({name:"Operation K",baseDifficulty:15e3,reqdRank:3e4,rankGain:750,rankLoss:60,hpLoss:1e3,weights:{hack:.05,str:.2,def:.2,dex:.25,agi:.25,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Deckard"]=new n.a({name:"Operation Deckard",baseDifficulty:2e4,reqdRank:4e4,rankGain:1e3,rankLoss:75,hpLoss:200,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Tyrell"]=new n.a({name:"Operation Tyrell",baseDifficulty:25e3,reqdRank:5e4,rankGain:1500,rankLoss:100,hpLoss:500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Wallace"]=new n.a({name:"Operation Wallace",baseDifficulty:3e4,reqdRank:75e3,rankGain:2e3,rankLoss:150,hpLoss:1500,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Shoulder of Orion"]=new n.a({name:"Operation Shoulder of Orion",baseDifficulty:35e3,reqdRank:1e5,rankGain:2500,rankLoss:500,hpLoss:1500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation Hyron"]=new n.a({name:"Operation Hyron",baseDifficulty:4e4,reqdRank:125e3,rankGain:3e3,rankLoss:1e3,hpLoss:500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Morpheus"]=new n.a({name:"Operation Morpheus",baseDifficulty:45e3,reqdRank:15e4,rankGain:4e3,rankLoss:1e3,hpLoss:100,weights:{hack:.05,str:.15,def:.15,dex:.3,agi:.3,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation Ion Storm"]=new n.a({name:"Operation Ion Storm",baseDifficulty:5e4,reqdRank:175e3,rankGain:5e3,rankLoss:1e3,hpLoss:5e3,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Annihilus"]=new n.a({name:"Operation Annihilus",baseDifficulty:55e3,reqdRank:2e5,rankGain:7500,rankLoss:1e3,hpLoss:1e4,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Ultron"]=new n.a({name:"Operation Ultron",baseDifficulty:6e4,reqdRank:25e4,rankGain:1e4,rankLoss:2e3,hpLoss:1e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Centurion"]=new n.a({name:"Operation Centurion",baseDifficulty:7e4,reqdRank:3e5,rankGain:15e3,rankLoss:5e3,hpLoss:1e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}}),r["Operation Vindictus"]=new n.a({name:"Operation Vindictus",baseDifficulty:75e3,reqdRank:35e4,rankGain:2e4,rankLoss:2e4,hpLoss:2e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}}),r["Operation Daedalus"]=new n.a({name:"Operation Daedalus",baseDifficulty:8e4,reqdRank:4e5,rankGain:4e4,rankLoss:1e4,hpLoss:1e5,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}})},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(8);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e="",t="",a=0,n=0,i=0,o=0,s={}){r(this,"difficulty",0),r(this,"karma",0),r(this,"kills",0),r(this,"money",0),r(this,"name",""),r(this,"time",0),r(this,"type",""),r(this,"hacking_success_weight",0),r(this,"strength_success_weight",0),r(this,"defense_success_weight",0),r(this,"dexterity_success_weight",0),r(this,"agility_success_weight",0),r(this,"charisma_success_weight",0),r(this,"hacking_exp",0),r(this,"strength_exp",0),r(this,"defense_exp",0),r(this,"dexterity_exp",0),r(this,"agility_exp",0),r(this,"charisma_exp",0),r(this,"intelligence_exp",0),this.name=e,this.type=t,this.time=a,this.money=n,this.difficulty=i,this.karma=o,this.hacking_success_weight=s.hacking_success_weight?s.hacking_success_weight:0,this.strength_success_weight=s.strength_success_weight?s.strength_success_weight:0,this.defense_success_weight=s.defense_success_weight?s.defense_success_weight:0,this.dexterity_success_weight=s.dexterity_success_weight?s.dexterity_success_weight:0,this.agility_success_weight=s.agility_success_weight?s.agility_success_weight:0,this.charisma_success_weight=s.charisma_success_weight?s.charisma_success_weight:0,this.hacking_exp=s.hacking_exp?s.hacking_exp:0,this.strength_exp=s.strength_exp?s.strength_exp:0,this.defense_exp=s.defense_exp?s.defense_exp:0,this.dexterity_exp=s.dexterity_exp?s.dexterity_exp:0,this.agility_exp=s.agility_exp?s.agility_exp:0,this.charisma_exp=s.charisma_exp?s.charisma_exp:0,this.intelligence_exp=s.intelligence_exp?s.intelligence_exp:0,this.kills=s.kills?s.kills:0}commit(e,t,a=1,n=null){return a<=0&&(a=1),t.startCrime(e,this.type,this.hacking_exp/a,this.strength_exp/a,this.defense_exp/a,this.dexterity_exp/a,this.agility_exp/a,this.charisma_exp/a,this.money/a,this.time,n),this.time}successRate(e){let t=this.hacking_success_weight*e.hacking+this.strength_success_weight*e.strength+this.defense_success_weight*e.defense+this.dexterity_success_weight*e.dexterity+this.agility_success_weight*e.agility+this.charisma_success_weight*e.charisma+n.a.IntelligenceCrimeWeight*e.intelligence;return t/=n.a.MaxSkillLevel,t/=this.difficulty,t*=e.crime_success_mult,t*=e.getIntelligenceBonus(1),Math.min(t,1)}}},,,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(625),o=a(118),s=a(1311),l=a(73);function c(e){return r.a.createElement(i.a,{dense:!0,maxSnack:9,anchorOrigin:{horizontal:"right",vertical:"bottom"},autoHideDuration:2e3},e.children)}const u=new o.a;function m(){const{enqueueSnackbar:e}=Object(i.b)();return Object(n.useEffect)(()=>u.subscribe((t,a)=>e(r.a.createElement(s.a,{severity:a},t),{content:(e,t)=>r.a.createElement(l.a,{key:e},t),variant:a}))),r.a.createElement(r.a.Fragment,null)}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(779),r=a(780);const i={};for(const e of r.a)i[(o=e).name]=new n.a(o);var o},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(5),r=a(8);function i(){return r.a.MarketData4SCost*n.a.FourSigmaMarketDataCost}function o(){return r.a.MarketDataTixApi4SCost*n.a.FourSigmaMarketDataApiCost}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(452),i=a(29),o=a(10),s=a(26);function l(e){const t=i.b.Player();return n.createElement(n.Fragment,null,n.createElement(s.a,{title:n.createElement("span",{dangerouslySetInnerHTML:{__html:function(){const a=t.getNextCompanyPosition(e.company,e.entryPosType);return null==a?"":e.company.hasPosition(a)?Object(r.a)(e.company,a,!0):""}()}})},n.createElement(o.a,{onClick:e.onClick},e.text)),n.createElement("br",null))}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(118).a)},,,function(e,t,a){"use strict";a.d(t,"b",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a(0),r=a.n(n),i=a(2),o=a(321),s=a(507),l=a(74),c=a(323),u=a(15);let m=!1;function h(e){m=e}function p(e,t,a,n){t?0===l.a[5]&&5!==n&&(i.a.intelligence=0,i.a.intelligence_exp=0):function(e){const t="SourceFile"+e.toString(),a=c.a[t];if(null==a)return void console.error("Could not find source file for Bit node: "+e);let n=!1,o=null;for(let t=0;t=3&&12!==o.n?Object(u.a)("The Source-File for the BitNode you just destroyed, "+a.name+", is already at max level!"):(++o.lvl,Object(u.a)(a.name+" was upgraded to level "+o.lvl+" for destroying its corresponding BitNode!"));else{const t=new s.a(e,1);i.a.sourceFiles.push(t),5===e&&0===i.a.intelligence&&(i.a.intelligence=1),Object(u.a)(r.a.createElement(r.a.Fragment,null,"You received a Source-File for destroying a BitNode!",r.a.createElement("br",null),r.a.createElement("br",null),a.name,r.a.createElement("br",null),r.a.createElement("br",null),a.info))}}(a),5===n&&0===i.a.intelligence&&(i.a.intelligence=1),m=!1,i.a.bitNodeN=n,6===n?e.toBladeburnerCinematic():e.toTerminal(),Object(o.b)(t)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a(0),r=a.n(n),i=a(551),o=a(692),s=a(1284),l=a(118),c=a(13);const u=new l.a;let m;function h(){m=Object(i.a)({colors:{hp:c.a.theme.hp,money:c.a.theme.money,hack:c.a.theme.hack,combat:c.a.theme.combat,cha:c.a.theme.cha,int:c.a.theme.int,rep:c.a.theme.rep,backgroundprimary:c.a.theme.backgroundprimary,backgroundsecondary:c.a.theme.backgroundsecondary,button:c.a.theme.button,successlight:c.a.theme.successlight,success:c.a.theme.success,successdark:c.a.theme.successdark},palette:{primary:{light:c.a.theme.primarylight,main:c.a.theme.primary,dark:c.a.theme.primarydark},secondary:{light:c.a.theme.secondarylight,main:c.a.theme.secondary,dark:c.a.theme.secondarydark},error:{light:c.a.theme.errorlight,main:c.a.theme.error,dark:c.a.theme.errordark},info:{light:c.a.theme.infolight,main:c.a.theme.info,dark:c.a.theme.infodark},warning:{light:c.a.theme.warninglight,main:c.a.theme.warning,dark:c.a.theme.warningdark},background:{default:c.a.theme.backgroundprimary,paper:c.a.theme.well},action:{disabled:c.a.theme.disabled}},typography:{fontFamily:"Lucida Console, Lucida Sans Unicode, Fira Mono, Consolas, Courier New, Courier, monospace, Times New Roman",button:{textTransform:"none"}},components:{MuiInputBase:{styleOverrides:{root:{backgroundColor:c.a.theme.well,color:c.a.theme.primary},input:{"&::placeholder":{userSelect:"none",color:c.a.theme.primarydark}}}},MuiInput:{styleOverrides:{root:{backgroundColor:c.a.theme.well,borderBottomColor:"#fff"},underline:{"&:hover":{borderBottomColor:c.a.theme.primarydark},"&:before":{borderBottomColor:c.a.theme.primary},"&:after":{borderBottomColor:c.a.theme.primarylight}}}},MuiInputLabel:{styleOverrides:{root:{color:c.a.theme.primarydark,userSelect:"none","&:before":{color:c.a.theme.primarylight}}}},MuiButton:{styleOverrides:{root:{backgroundColor:c.a.theme.button,border:"1px solid "+c.a.theme.well,"&:hover":{backgroundColor:c.a.theme.backgroundsecondary},borderRadius:0}}},MuiSelect:{styleOverrides:{icon:{color:c.a.theme.primary}},defaultProps:{variant:"standard"}},MuiTextField:{defaultProps:{variant:"standard"}},MuiTypography:{defaultProps:{color:"primary"}},MuiMenu:{styleOverrides:{list:{backgroundColor:c.a.theme.well}}},MuiMenuItem:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiAccordionSummary:{styleOverrides:{root:{backgroundColor:"#111"}}},MuiAccordionDetails:{styleOverrides:{root:{backgroundColor:c.a.theme.backgroundsecondary}}},MuiIconButton:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiTooltip:{styleOverrides:{tooltip:{fontSize:"1em",color:c.a.theme.primary,backgroundColor:c.a.theme.well,borderRadius:0,border:"2px solid white",maxWidth:"100vh"}},defaultProps:{disableInteractive:!0}},MuiSlider:{styleOverrides:{valueLabel:{color:c.a.theme.primary,backgroundColor:c.a.theme.well}}},MuiDrawer:{styleOverrides:{paper:{"&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none",backgroundColor:c.a.theme.backgroundsecondary},paperAnchorDockedLeft:{borderRight:"1px solid "+c.a.theme.welllight}}},MuiDivider:{styleOverrides:{root:{backgroundColor:c.a.theme.welllight}}},MuiFormControlLabel:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiSwitch:{styleOverrides:{switchBase:{color:c.a.theme.primarydark},track:{backgroundColor:c.a.theme.welllight}}},MuiPaper:{styleOverrides:{root:{borderRadius:0,backgroundColor:c.a.theme.backgroundsecondary,border:"1px solid "+c.a.theme.welllight}}},MuiTablePagination:{styleOverrides:{select:{color:c.a.theme.primary},selectLabel:{color:c.a.theme.primary},displayedRows:{color:c.a.theme.primary}}},MuiTab:{styleOverrides:{textColorPrimary:{color:c.a.theme.secondary,"&.Mui-selected":{color:c.a.theme.primary}}}},MuiAlert:{styleOverrides:{root:{backgroundColor:c.a.theme.black,borderRadius:0,border:"1px solid "+c.a.theme.well},standardSuccess:{color:c.a.theme.primarylight},standardError:{color:c.a.theme.errorlight},standardWarning:{color:c.a.theme.warninglight},standardInfo:{color:c.a.theme.infolight}}}}})}h();const p=({children:e})=>r.a.createElement(o.a,{injectFirst:!0},r.a.createElement(s.a,{theme:m},e))},function(e,t,a){"use strict";function n(e,t){if(t<0||t>100)return e;const a=e*(t/100);return e+(Math.random()*(2*a)-a)}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.SyntaxError=-1]="SyntaxError",e[e.ImportError=-2]="ImportError",e[e.URLImportError=-3]="URLImportError"}(n||(n={}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a){this.program=e,this.price=t,this.description=a}}},,,,,,,function(e,t,a){"use strict";function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return r}));class r{constructor(e=""){n(this,"level",1),n(this,"name",""),this.name=e}}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(441),r=a(21),i=a(442);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}let s=0;class l{constructor(e="",t="",a="",n=[]){o(this,"code",""),o(this,"filename",""),o(this,"url",""),o(this,"module",""),o(this,"dependencies",[]),o(this,"ramUsage",0),o(this,"server",""),this.filename=e,this.code=t,this.ramUsage=0,this.server=a,this.module="",this.moduleSequenceNumber=++s,""!==this.code&&this.updateRamUsage(n)}download(){const e=this.filename,t=new Blob([this.code],{type:"text/plain"}),a=window.navigator;if(a.msSaveOrOpenBlob)a.msSaveOrOpenBlob(t,e);else{const a=document.createElement("a"),n=URL.createObjectURL(t);a.href=n,a.download=e,document.body.appendChild(a),a.click(),setTimeout((function(){document.body.removeChild(a),window.URL.revokeObjectURL(n)}),0)}}markUpdated(){this.module="",this.moduleSequenceNumber=++s}saveScript(e,t,a,n){this.code=t.replace(/^\s+|\s+$/g,""),this.filename=e,this.server=a,this.updateRamUsage(n),this.markUpdated()}async updateRamUsage(e){const t=await Object(n.a)(this.code,e);t>0&&(this.ramUsage=Object(i.a)(t)),this.markUpdated()}imports(){return[]}toJSON(){return Object(r.b)("Script",this)}static fromJSON(e){return Object(r.a)(l,e.data)}}r.c.constructors.Script=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(461);function r(){return Object(n.a)(99)+"."+Object(n.a)(9)+"."+Object(n.a)(9)+"."+Object(n.a)(9)}},function(e,t,a){"use strict";function n(e,t){if(e.length!==t.length)return!1;for(let a=0;aObject(o.a)({favor:{color:e.colors.rep}}));function l({favor:e}){const t=s();return n.createElement("span",{className:t.favor},"number"==typeof e?r.a.formatFavor(e):e)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(272),r=a(60);const i={BruteSSHProgram:new n.a(r.a.BruteSSHProgram.name,5e5,"Opens up SSH Ports."),FTPCrackProgram:new n.a(r.a.FTPCrackProgram.name,15e5,"Opens up FTP Ports."),RelaySMTPProgram:new n.a(r.a.RelaySMTPProgram.name,5e6,"Opens up SMTP Ports."),HTTPWormProgram:new n.a(r.a.HTTPWormProgram.name,3e7,"Opens up HTTP Ports."),SQLInjectProgram:new n.a(r.a.SQLInjectProgram.name,25e7,"Opens up SQL Ports."),ServerProfiler:new n.a(r.a.ServerProfiler.name,5e5,"Displays detailed information about a server."),DeepscanV1:new n.a(r.a.DeepscanV1.name,5e5,"Enables 'scan-analyze' with a depth up to 5."),DeepscanV2:new n.a(r.a.DeepscanV2.name,25e6,"Enables 'scan-analyze' with a depth up to 10."),AutolinkProgram:new n.a(r.a.AutoLink.name,1e6,"Enables direct connect via 'scan-analyze."),FormulasProgram:new n.a(r.a.Formulas.name,5e9,"Unlock access to the formulas API.")}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={GangRespectToReputationRatio:75,MaximumGangMembers:12,CyclesPerTerritoryAndPowerUpdate:100,AscensionMultiplierRatio:.15,Names:["Slum Snakes","Tetrads","The Syndicate","The Dark Army","Speakers for the Dead","NiteSec","The Black Hand"]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return b}));var n=a(72),r=a(205),i=a(5),o=a(77),s=a(61),l=a(215),c=a(86),u=a(8),m=a(181),h=a(24),p=a(166),d=a(23),f=a(9),g=a(21);function y(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class b extends r.a{constructor(e=null){super(),y(this,"className",""),y(this,"crimeType",""),y(this,"currentTask",n.a.Idle),y(this,"currentTaskLocation",""),y(this,"currentTaskMaxTime",0),y(this,"currentTaskTime",0),y(this,"earningsForSleeves",Object(r.b)()),y(this,"earningsForPlayer",Object(r.b)()),y(this,"earningsForTask",Object(r.b)()),y(this,"factionWorkType",p.a.None),y(this,"gainRatesForTask",Object(r.b)()),y(this,"gymStatType",""),y(this,"logs",[]),y(this,"memory",1),y(this,"shock",1),y(this,"storedCycles",0),y(this,"sync",1),null!=e&&this.shockRecovery(e)}commitCrime(e,t){const a=o.a[t]||Object.values(o.a).find(e=>e.name===t);return!!a&&(this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.gainRatesForTask.hack=a.hacking_exp*this.hacking_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.str=a.strength_exp*this.strength_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.def=a.defense_exp*this.defense_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.dex=a.dexterity_exp*this.dexterity_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.agi=a.agility_exp*this.agility_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.cha=a.charisma_exp*this.charisma_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.money=a.money*this.crime_money_mult*i.a.CrimeMoney,this.currentTaskLocation=String(this.gainRatesForTask.money),this.crimeType=a.name,this.currentTaskMaxTime=a.time,this.currentTask=n.a.Crime,!0)}finishTask(e){let t=Object(r.b)();if(this.currentTask===n.a.Crime&&this.currentTaskTime>=this.currentTaskMaxTime){const a=Object.values(o.a).find(e=>e.name===this.crimeType);if(!a)return console.error("Invalid data stored in sleeve.crimeType: "+this.crimeType),this.resetTaskStatus(),t;if(Math.random()0&&(this.hacking_exp+=t.hack),t.str>0&&(this.strength_exp+=t.str),t.def>0&&(this.defense_exp+=t.def),t.dex>0&&(this.dexterity_exp+=t.dex),t.agi>0&&(this.agility_exp+=t.agi),t.cha>0&&(this.charisma_exp+=t.cha),Object(r.b)();const i=this.shock/100*(this.sync/100)*a,o=t.hack*i,s=t.str*i,l=t.def*i,c=t.dex*i,u=t.agi*i,m=t.cha*i;return o>0&&(this.hacking_exp+=o,e.gainHackingExp(o),this.earningsForPlayer.hack+=o,this.earningsForTask.hack+=o),s>0&&(this.strength_exp+=s,e.gainStrengthExp(s),this.earningsForPlayer.str+=s,this.earningsForTask.str+=s),l>0&&(this.defense_exp+=l,e.gainDefenseExp(l),this.earningsForPlayer.def+=l,this.earningsForTask.def+=l),c>0&&(this.dexterity_exp+=c,e.gainDexterityExp(c),this.earningsForPlayer.dex+=c,this.earningsForTask.dex+=c),u>0&&(this.agility_exp+=u,e.gainAgilityExp(u),this.earningsForPlayer.agi+=u,this.earningsForTask.agi+=u),m>0&&(this.charisma_exp+=m,e.gainCharismaExp(m),this.earningsForPlayer.cha+=m,this.earningsForTask.cha+=m),this.earningsForSleeves.hack+=o*(this.sync/100),this.earningsForSleeves.str+=s*(this.sync/100),this.earningsForSleeves.def+=l*(this.sync/100),this.earningsForSleeves.dex+=c*(this.sync/100),this.earningsForSleeves.agi+=u*(this.sync/100),this.earningsForSleeves.cha+=m*(this.sync/100),{hack:o*(this.sync/100),str:s*(this.sync/100),def:l*(this.sync/100),dex:c*(this.sync/100),agi:u*(this.sync/100),cha:m*(this.sync/100),money:0}}gainMoney(e,t,a=1){const n=t.money*a;this.earningsForTask.money+=n,this.earningsForPlayer.money+=n,e.gainMoney(n,"sleeves")}getMemoryUpgradeCost(e){const t=Math.round(e);if(t<0)return 0;if(this.memory+t>100)return this.getMemoryUpgradeCost(100-this.memory);let a=0,n=this.memory-1;for(let t=0;t50&&this.logs.shift()}prestige(e){this.hacking_exp=0,this.strength_exp=0,this.defense_exp=0,this.dexterity_exp=0,this.agility_exp=0,this.charisma_exp=0,this.resetTaskStatus(),this.earningsForSleeves=Object(r.b)(),this.earningsForPlayer=Object(r.b)(),this.shockRecovery(e),this.augmentations=[],this.resetMultipliers(),this.shock=1,this.storedCycles=0,this.sync=Math.max(this.memory,1),this.logs=[]}process(e,t=1){const a=1e3/u.a.MilliPerCycle;if(this.storedCycles+=t,this.storedCyclesthis.currentTaskMaxTime&&(o=this.currentTaskMaxTime-this.currentTaskTime,i=Math.floor(o/u.a.MilliPerCycle),(o<0||i<0)&&(console.warn("Sleeve.process() calculated negative cycle usage"),o=0,i=0)),this.currentTaskTime+=o,this.shock=Math.min(100,this.shock+1e-4*i);let c=Object(r.b)();switch(this.currentTask){case n.a.Idle:break;case n.a.Class:case n.a.Gym:this.updateTaskGainRates(e),c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);break;case n.a.Faction:{c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);const t=h.a[this.currentTaskLocation];if(!(t instanceof m.a)){console.error("Invalid faction for Sleeve task: "+this.currentTaskLocation);break}t.playerReputation+=this.getRepGain(e)*i;break}case n.a.Company:{c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);const t=s.a[this.currentTaskLocation];if(!(t instanceof l.a)){console.error("Invalid company for Sleeve task: "+this.currentTaskLocation);break}t.playerReputation+=this.getRepGain(e)*i;break}case n.a.Recovery:this.shock=Math.min(100,this.shock+2e-4*i),this.shock>=100&&this.resetTaskStatus();break;case n.a.Synchro:this.sync=Math.min(100,this.sync+2e-4*e.getIntelligenceBonus(.5)*i),this.sync>=100&&this.resetTaskStatus()}return 0!==this.currentTaskMaxTime&&this.currentTaskTime>=this.currentTaskMaxTime&&(this.currentTask===n.a.Crime?c=this.finishTask(e):this.finishTask(e)),this.updateStatLevels(),this.storedCycles-=i,c}resetTaskStatus(){this.earningsForTask=Object(r.b)(),this.gainRatesForTask=Object(r.b)(),this.currentTask=n.a.Idle,this.currentTaskTime=0,this.currentTaskMaxTime=0,this.factionWorkType=p.a.None,this.crimeType="",this.currentTaskLocation="",this.gymStatType="",this.className=""}shockRecovery(e){return this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.currentTask=n.a.Recovery,!0}synchronize(e){return this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.currentTask=n.a.Synchro,!0}takeUniversityCourse(e,t,a){this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();let r=1;switch(t.toLowerCase()){case f.a.AevumSummitUniversity.toLowerCase():if(this.city!==d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumSummitUniversity,r=4;break;case f.a.Sector12RothmanUniversity.toLowerCase():if(this.city!==d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12RothmanUniversity,r=3;break;case f.a.VolhavenZBInstituteOfTechnology.toLowerCase():if(this.city!==d.a.Volhaven)return!1;this.currentTaskLocation=f.a.VolhavenZBInstituteOfTechnology,r=5;break;default:return!1}switch(a.toLowerCase()){case"study computer science":break;case"data structures":this.gainRatesForTask.money=u.a.ClassDataStructuresBaseCost*r*-1;break;case"networks":this.gainRatesForTask.money=u.a.ClassNetworksBaseCost*r*-1;break;case"algorithms":this.gainRatesForTask.money=u.a.ClassAlgorithmsBaseCost*r*-1;break;case"management":this.gainRatesForTask.money=u.a.ClassManagementBaseCost*r*-1;break;case"leadership":this.gainRatesForTask.money=u.a.ClassLeadershipBaseCost*r*-1;break;default:return!1}return this.className=a,this.currentTask=n.a.Class,!0}travel(e,t){return e.loseMoney(u.a.TravelCost,"sleeves"),this.city=t,!0}tryBuyAugmentation(e,t){return!!e.canAfford(t.startingCost)&&(!this.augmentations.some(e=>e.name===t.name)&&(e.loseMoney(t.startingCost,"sleeves"),this.installAugmentation(t),!0))}updateTaskGainRates(e){if(this.currentTask!==n.a.Class)if(this.currentTask!==n.a.Gym)console.warn("Sleeve.updateTaskGainRates() called for unexpected task type "+this.currentTask);else{let t=1;switch(this.currentTaskLocation.toLowerCase()){case f.a.AevumCrushFitnessGym.toLowerCase():t=2;break;case f.a.AevumSnapFitnessGym.toLowerCase():t=5;break;case f.a.Sector12IronGym.toLowerCase():t=1;break;case f.a.Sector12PowerhouseGym.toLowerCase():t=10;break;case f.a.VolhavenMilleniumFitnessGym.toLowerCase():t=4;break;default:return}const a=1,n=e.hashManager.getTrainingMult()*t,r=this.gymStatType.toLowerCase();r.includes("str")?this.gainRatesForTask.str=a*n*this.strength_exp_mult:r.includes("def")?this.gainRatesForTask.def=a*n*this.defense_exp_mult:r.includes("dex")?this.gainRatesForTask.dex=a*n*this.dexterity_exp_mult:r.includes("agi")&&(this.gainRatesForTask.agi=a*n*this.agility_exp_mult)}else{let t=1;switch(this.currentTaskLocation.toLowerCase()){case f.a.AevumSummitUniversity.toLowerCase():t=3;break;case f.a.Sector12RothmanUniversity.toLowerCase():t=2;break;case f.a.VolhavenZBInstituteOfTechnology.toLowerCase():t=4;break;default:return}const a=t*e.hashManager.getStudyMult();switch(this.className.toLowerCase()){case"study computer science":this.gainRatesForTask.hack=u.a.ClassStudyComputerScienceBaseExp*a*this.hacking_exp_mult;break;case"data structures":this.gainRatesForTask.hack=u.a.ClassDataStructuresBaseExp*a*this.hacking_exp_mult;break;case"networks":this.gainRatesForTask.hack=u.a.ClassNetworksBaseExp*a*this.hacking_exp_mult;break;case"algorithms":this.gainRatesForTask.hack=u.a.ClassAlgorithmsBaseExp*a*this.hacking_exp_mult;break;case"management":this.gainRatesForTask.cha=u.a.ClassManagementBaseExp*a*this.charisma_exp_mult;break;case"leadership":this.gainRatesForTask.cha=u.a.ClassLeadershipBaseExp*a*this.charisma_exp_mult}}}upgradeMemory(e){e<0?console.warn("Sleeve.upgradeMemory() called with negative value: "+e):this.memory=Math.min(100,Math.round(this.memory+e))}workForCompany(e,t){if(!(s.a[t]instanceof l.a)||null==e.jobs[t])return!1;this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();const a=s.a[t],r=c.a[e.jobs[t]];return null!=a&&(null!=r&&(this.gainRatesForTask.money=r.baseSalary*a.salaryMultiplier*this.work_money_mult*i.a.CompanyWorkMoney,this.gainRatesForTask.hack=r.hackingExpGain*a.expMultiplier*this.hacking_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.str=r.strengthExpGain*a.expMultiplier*this.strength_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.def=r.defenseExpGain*a.expMultiplier*this.defense_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.dex=r.dexterityExpGain*a.expMultiplier*this.dexterity_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.agi=r.agilityExpGain*a.expMultiplier*this.agility_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.cha=r.charismaExpGain*a.expMultiplier*this.charisma_exp_mult*i.a.CompanyWorkExpGain,this.currentTaskLocation=t,this.currentTask=n.a.Company,!0))}workForFaction(e,t,a){if(""===t)return!1;if(!(h.a[t]instanceof m.a&&e.factions.includes(t)))return!1;this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();const r=h.a[t].getInfo(),o=a.toLowerCase();if(o.includes("hack")){if(!r.offerHackingWork)return!1;this.factionWorkType=p.a.Hacking,this.gainRatesForTask.hack=.15*this.hacking_exp_mult*i.a.FactionWorkExpGain}else if(o.includes("field")){if(!r.offerFieldWork)return!1;this.factionWorkType=p.a.Field,this.gainRatesForTask.hack=.1*this.hacking_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.str=.1*this.strength_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.def=.1*this.defense_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.dex=.1*this.dexterity_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.agi=.1*this.agility_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.cha=.1*this.charisma_exp_mult*i.a.FactionWorkExpGain}else{if(!o.includes("security"))return!1;if(!r.offerSecurityWork)return!1;this.factionWorkType=p.a.Security,this.gainRatesForTask.hack=.1*this.hacking_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.str=.15*this.strength_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.def=.15*this.defense_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.dex=.15*this.dexterity_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.agi=.15*this.agility_exp_mult*i.a.FactionWorkExpGain}return this.currentTaskLocation=t,this.currentTask=n.a.Faction,!0}workoutAtGym(e,t,a){this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();let r=1;switch(t.toLowerCase()){case f.a.AevumCrushFitnessGym.toLowerCase():if(this.city!=d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumCrushFitnessGym,r=3;break;case f.a.AevumSnapFitnessGym.toLowerCase():if(this.city!=d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumSnapFitnessGym,r=10;break;case f.a.Sector12IronGym.toLowerCase():if(this.city!=d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12IronGym,r=1;break;case f.a.Sector12PowerhouseGym.toLowerCase():if(this.city!=d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12PowerhouseGym,r=20;break;case f.a.VolhavenMilleniumFitnessGym.toLowerCase():if(this.city!=d.a.Volhaven)return!1;this.currentTaskLocation=f.a.VolhavenMilleniumFitnessGym,r=7;break;default:return!1}const i=a.toLowerCase();return this.gainRatesForTask.money=u.a.ClassGymBaseCost*r*-1,!!(i.includes("str")||i.includes("def")||i.includes("dex")||i.includes("agi"))&&(this.gymStatType=a,this.currentTask=n.a.Gym,!0)}toJSON(){return Object(g.b)("Sleeve",this)}static fromJSON(e){return Object(g.a)(b,e.data)}}g.c.constructors.Sleeve=b},function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i}));var n=a(118);const r=new n.a,i=new n.a},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(781),r=a(14),i=a(27);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class s{constructor(e,t,a){o(this,"code",""),o(this,"delay",null),o(this,"disableLogs",{}),o(this,"dynamicLoadedFns",{}),o(this,"dynamicRamUsage",r.a.ScriptBaseRamCost),o(this,"errorMessage",""),o(this,"loadedFns",{}),o(this,"output",""),o(this,"ramUsage",0),o(this,"running",!1),this.name=e.filename,this.hostname=e.server;const s=Math.round(t);if("number"!=typeof s||isNaN(s))throw new Error("Invalid PID when constructing WorkerScript: "+t);this.pid=s,e.pid=s;const l=Object(i.d)(this.hostname);if(null==l)throw new Error("WorkerScript constructed with invalid server ip: "+this.hostname);let c=!1;for(let e=0;e=r.price)&&p(r,n);break;case i.a.LimitSell:case i.a.StopBuy:(r.pos===o.a.Long&&e.price>=r.price||r.pos===o.a.Short&&e.price<=r.price)&&p(r,n);break;case i.a.StopSell:(r.pos===o.a.Long&&e.price<=r.price||r.pos===o.a.Short&&e.price>=r.price)&&p(r,n);break;default:return void console.warn("Invalid order type: "+r.type)}}function p(e,t){const a=t.symbolToStockMap[e.stockSymbol];if(!(a instanceof r.a))return void console.error("Could not find stock for this order: "+e.stockSymbol);const h=t.stockMarket.Orders[a.symbol],p={suppressDialog:!0};let d=!0,f=!1;switch(e.type){case i.a.LimitBuy:case i.a.StopBuy:f=!0,e.pos===o.a.Long?d=Object(n.a)(a,e.shares,null,p)&&d:e.pos===o.a.Short&&(d=Object(n.d)(a,e.shares,null,p)&&d);break;case i.a.LimitSell:case i.a.StopSell:e.pos===o.a.Long?d=Object(n.c)(a,e.shares,null,p)&&d:e.pos===o.a.Short&&(d=Object(n.b)(a,e.shares,null,p)&&d);break;default:return void console.warn("Invalid order type: "+e.type)}const g=e.pos===o.a.Long?"Long":"Short";if(d){for(let t=0;t{window.indexedDB||t("Indexed DB does not exists");const a=window.indexedDB.open("bitburnerSave",1);a.onupgradeneeded=function(){this.result.createObjectStore("savestring")},a.onerror=function(e){t("Failed to get IDB "+e)},a.onsuccess=function(){const a=this.result;a?e(a.transaction(["savestring"],"readwrite").objectStore("savestring")):t("database loadign result was undefined")}})}function r(){return new Promise((e,t)=>{n().then(t=>new Promise((e,a)=>{const n=t.get("save");n.onerror=function(e){a("Error in Database request to get savestring: "+e)},n.onsuccess=function(){e(this.result)}}).then(t=>e(t))).catch(e=>t(e))})}function i(e){return n().then(t=>new Promise((a,n)=>{const r=t.put(e,"save");r.onerror=function(e){n("Error saving game to IndexedDB: "+e)},r.onsuccess=()=>a()}))}function o(){return n().then(e=>{e.delete("save")})}a.d(t,"b",(function(){return r})),a.d(t,"c",(function(){return i})),a.d(t,"a",(function(){return o}))},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(57),r=a(393),i=a(21);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class s extends r.a{constructor(e=null){super(e),o(this,"reqdRank",100),o(this,"teamCount",0),e&&e.reqdRank&&(this.reqdRank=e.reqdRank),e&&e.teamCount&&(this.teamCount=e.teamCount)}getTeamSuccessBonus(e){if(this.teamCount&&this.teamCount>0){this.teamCount=Math.min(this.teamCount,e.teamSize);return Math.pow(this.teamCount,.05)}return 1}getActionTypeSkillSuccessBonus(e){return e.skillMultipliers.successChanceOperation}getChaosDifficultyBonus(e){const t=e.getCurrentCity();if(t.chaos>n.a.ChaosThreshold){const e=t.chaos-n.a.ChaosThreshold+1;return Math.pow(e,.5)}return 1}toJSON(){return Object(i.b)("Operation",this)}static fromJSON(e){return Object(i.a)(s,e.data)}}i.c.constructors.Operation=s},,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return N})),a.d(t,"b",(function(){return I}));var n=a(20),r=a(140),i=a(6),o=a(211),s=a(214),l=a(61),c=a(51),u=a(60),m=a(181),h=a(24),p=a(113),d=a(53),f=a(243),g=a(144),y=a(2),b=a(108),E=a(445),k=a(59),v=a(27),_=a(119),w=a(74),S=a(92),C=a(95),x=a(93),O=a(15),M=a(105),T=a(358),R=a(359),A=a(8),P=a(201);function N(){Object(o.b)(y.a);const e=y.a.factions.concat(y.a.factionInvitations).filter((function(e){return h.a[e].getInfo().keep}));y.a.prestigeAugmentation(),Object(g.c)();const t=y.a.getHomeComputer();Object(v.i)(),Object(v.a)(t),Object(_.d)(t),Object(r.b)(i.a.Neurolink)&&n.a[i.a.Neurolink].owned&&(t.programs.push(u.a.FTPCrackProgram.name),t.programs.push(u.a.RelaySMTPProgram.name)),Object(r.b)(i.a.CashRoot)&&n.a[i.a.CashRoot].owned&&(y.a.setMoney(1e6),t.programs.push(u.a.BruteSSHProgram.name)),Object(r.b)(i.a.PCMatrix)&&n.a[i.a.PCMatrix].owned&&(t.programs.push(u.a.DeepscanV1.name),t.programs.push(u.a.AutoLink.name)),(y.a.sourceFileLvl(5)>0||5===y.a.bitNodeN)&&t.programs.push(u.a.Formulas.name),Object(v.f)(y.a.getHomeComputer());for(const e in l.a)l.a.hasOwnProperty(e)&&l.a[e].gainFavor();for(const e in h.a)h.a.hasOwnProperty(e)&&h.a[e].gainFavor();null!==x.a.action&&x.a.finishAction(b.b,y.a,!0),x.a.clear(),P.a.emit(),Object(h.c)(),y.a.factionInvitations=y.a.factionInvitations.concat(e),Object(r.c)(),y.a.reapplyAllSourceFiles(),Object(l.b)(),Object(f.c)();const a=y.a.gang;if(y.a.inGang()&&null!==a){const e=h.a[a.facName];e instanceof m.a&&Object(p.d)(e)}if(y.a.bladeburner instanceof s.a&&y.a.bladeburner.prestige(),8===y.a.bitNodeN&&(y.a.money=25e7),(8===y.a.bitNodeN||w.a[8]>0)&&(y.a.hasWseAccount=!0,y.a.hasTixApiAccess=!0),y.a.hasWseAccount&&(Object(C.f)(),Object(C.h)()),Object(r.b)(i.a.TheRedPill)&&n.a[i.a.TheRedPill].owned){const e=Object(v.d)(S.a.WorldDaemon),t=Object(v.d)(S.a.DaedalusServer);e&&t&&(e.serversOnNetwork.push(t.hostname),t.serversOnNetwork.push(e.hostname))}Object(r.b)(i.a.StaneksGift1)&&n.a[i.a.StaneksGift1].owned&&Object(p.d)(h.a["Church of the Machine God"]),M.b.prestigeAugmentation(),Object(E.b)(),T.b.splice(0,T.b.length),R.b.splice(0,R.b.length)}function I(e){Object(o.b)(y.a),Object(w.b)(y.a),y.a.prestigeSourceFile(),Object(g.c)();const t=y.a.getHomeComputer();Object(v.i)(),Object(v.a)(t),Object(_.d)(t),Object(v.f)(y.a.getHomeComputer()),w.a[9]>=2?t.setMaxRam(128):w.a[1]>0?t.setMaxRam(32):t.setMaxRam(8),t.cpuCores=1;for(const e in l.a)l.a.hasOwnProperty(e)&&(l.a[e].favor=0);for(const e in h.a)h.a.hasOwnProperty(e)&&(h.a[e].favor=0);null!==x.a.action&&x.a.finishAction(b.b,y.a,!0);for(const e in n.a)n.a.hasOwnProperty(e)&&delete n.a[e];if(w.a[12]>0&&y.a.augmentations.push({name:i.a.NeuroFluxGovernor,level:w.a[12]}),Object(h.c)(),Object(r.c)(),y.a.reapplyAllSourceFiles(),Object(l.b)(),Object(f.c)(),y.a.sourceFileLvl(5)>0&&t.programs.push(u.a.Formulas.name),3===y.a.bitNodeN&&(t.messages.push(k.a.CorporationManagementHandbook),Object(O.a)("You received a copy of the Corporation Management Handbook on your home computer. Read it if you need help getting started with Corporations!")),8===y.a.bitNodeN&&(y.a.money=25e7),(8===y.a.bitNodeN||w.a[8]>0)&&(y.a.hasWseAccount=!0,y.a.hasTixApiAccess=!0),10===y.a.bitNodeN&&Object(O.a)("Visit VitaLife in New Tokyo if you'd like to purchase a new sleeve!"),13===y.a.bitNodeN&&Object(O.a)("Trouble is brewing in Chongqing"),y.a.hasWseAccount?(Object(C.f)(),Object(C.h)()):Object(C.d)(),y.a.gang=null,y.a.corporation=null,Object(c.e)(),y.a.bladeburner=null,w.a[9]>=3){const e=y.a.createHacknetServer();e.level=100,e.cores=10,e.cache=5,e.updateHashRate(y.a.hacknet_node_money_mult),e.updateHashCapacity(),Object(d.p)(y.a)}13===y.a.bitNodeN&&(y.a.money=A.a.TravelCost),M.b.prestigeSourceFile(),0===w.a[5]||e||y.a.gainIntelligenceExp(300),Object(E.b)()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(8),r=a(28);class i{constructor(e){this.name=e.name,this.nextPosition=e.nextPosition,this.baseSalary=e.baseSalary,this.repMultiplier=e.repMultiplier,this.requiredHacking=null!=e.reqdHacking?e.reqdHacking:0,this.requiredStrength=null!=e.reqdStrength?e.reqdStrength:0,this.requiredDefense=null!=e.reqdDefense?e.reqdDefense:0,this.requiredDexterity=null!=e.reqdDexterity?e.reqdDexterity:0,this.requiredAgility=null!=e.reqdAgility?e.reqdAgility:0,this.requiredCharisma=null!=e.reqdCharisma?e.reqdCharisma:0,this.requiredReputation=null!=e.reqdReputation?e.reqdReputation:0,this.hackingEffectiveness=null!=e.hackingEffectiveness?e.hackingEffectiveness:0,this.strengthEffectiveness=null!=e.strengthEffectiveness?e.strengthEffectiveness:0,this.defenseEffectiveness=null!=e.defenseEffectiveness?e.defenseEffectiveness:0,this.dexterityEffectiveness=null!=e.dexterityEffectiveness?e.dexterityEffectiveness:0,this.agilityEffectiveness=null!=e.agilityEffectiveness?e.agilityEffectiveness:0,this.charismaEffectiveness=null!=e.charismaEffectiveness?e.charismaEffectiveness:0,100!==Math.round(this.hackingEffectiveness+this.strengthEffectiveness+this.defenseEffectiveness+this.dexterityEffectiveness+this.agilityEffectiveness+this.charismaEffectiveness)&&console.error(`CompanyPosition ${this.name} parameters do not sum to 100`),this.hackingExpGain=null!=e.hackingExpGain?e.hackingExpGain:0,this.strengthExpGain=null!=e.strengthExpGain?e.strengthExpGain:0,this.defenseExpGain=null!=e.defenseExpGain?e.defenseExpGain:0,this.dexterityExpGain=null!=e.dexterityExpGain?e.dexterityExpGain:0,this.agilityExpGain=null!=e.agilityExpGain?e.agilityExpGain:0,this.charismaExpGain=null!=e.charismaExpGain?e.charismaExpGain:0}calculateJobPerformance(e,t,a,r,i,o){const s=this.hackingEffectiveness*e/n.a.MaxSkillLevel,l=this.strengthEffectiveness*t/n.a.MaxSkillLevel,c=this.defenseEffectiveness*a/n.a.MaxSkillLevel,u=this.dexterityEffectiveness*r/n.a.MaxSkillLevel,m=this.agilityEffectiveness*i/n.a.MaxSkillLevel,h=this.charismaEffectiveness*o/n.a.MaxSkillLevel;let p=this.repMultiplier*(s+l+c+u+m+h)/100;return isNaN(p)&&(console.error("Company reputation gain calculated to be NaN"),p=0),p}isSoftwareJob(){return r.j.includes(this.name)}isITJob(){return r.d.includes(this.name)}isSecurityEngineerJob(){return r.i.includes(this.name)}isNetworkEngineerJob(){return r.f.includes(this.name)}isBusinessJob(){return r.b.includes(this.name)}isSecurityJob(){return r.h.includes(this.name)}isAgentJob(){return r.a.includes(this.name)}isSoftwareConsultantJob(){return r.k.includes(this.name)}isBusinessConsultantJob(){return r.c.includes(this.name)}isPartTimeJob(){return r.g.includes(this.name)}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n),i=a(234);const o={};o.SourceFile1=new i.a(1,r.a.createElement(r.a.Fragment,null,"This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the player's multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 16%",r.a.createElement("br",null),"Level 2: 24%",r.a.createElement("br",null),"Level 3: 28%")),o.SourceFile2=new i.a(2,r.a.createElement(r.a.Fragment,null,"This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 24%",r.a.createElement("br",null),"Level 2: 36%",r.a.createElement("br",null),"Level 3: 42%")),o.SourceFile3=new i.a(3,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile4=new i.a(4,r.a.createElement(r.a.Fragment,null,"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 i.a(5,r.a.createElement(r.a.Fragment,null,"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 let you start with Formulas.exe, and will raise all of your hacking-related multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile6=new i.a(6,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile7=new i.a(7,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile8=new i.a(8,r.a.createElement(r.a.Fragment,null,"This Source-File grants the following benefits:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: Permanent access to WSE and TIX API",r.a.createElement("br",null),"Level 2: Ability to short stocks in other BitNodes",r.a.createElement("br",null),"Level 3: Ability to use limit/stop orders in other BitNodes",r.a.createElement("br",null),r.a.createElement("br",null),"This Source-File also increases your hacking growth multipliers by:",r.a.createElement("br",null),"Level 1: 12%",r.a.createElement("br",null),"Level 2: 18%",r.a.createElement("br",null),"Level 3: 21%")),o.SourceFile9=new i.a(9,r.a.createElement(r.a.Fragment,null,"This Source-File grants the following benefits:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: Permanently unlocks the Hacknet Server in other BitNodes",r.a.createElement("br",null),"Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode",r.a.createElement("br",null),"Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode",r.a.createElement("br",null),r.a.createElement("br",null),"(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing Augmentations)",r.a.createElement("br",null),r.a.createElement("br",null),"This Source-File also increases your hacknet multipliers by:",r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile10=new i.a(10,r.a.createElement(r.a.Fragment,null,"This Source-File unlocks Sleeve technology in other BitNodes. Each level of this Source-File also grants you a Duplicate Sleeve")),o.SourceFile11=new i.a(11,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 32%",r.a.createElement("br",null),"Level 2: 48%",r.a.createElement("br",null),"Level 3: 56%",r.a.createElement("br",null),r.a.createElement("br",null),"It also reduces the price increase for every aug bought by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 4%",r.a.createElement("br",null),"Level 2: 6%",r.a.createElement("br",null),"Level 3: 7%")),o.SourceFile12=new i.a(12,r.a.createElement(r.a.Fragment,null,"This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.")),o.SourceFile13=new i.a(13,r.a.createElement(r.a.Fragment,null,"Each level of this Source-File increases the size of Stanek's Gift."))},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(13),r=a(93),i=a(21),o=a(329);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l{constructor(e=null,t=[]){s(this,"args",[]),s(this,"dataMap",{}),s(this,"filename",""),s(this,"logs",[]),s(this,"logUpd",!1),s(this,"offlineExpGained",0),s(this,"offlineMoneyMade",0),s(this,"offlineRunningTime",.01),s(this,"onlineExpGained",0),s(this,"onlineMoneyMade",0),s(this,"onlineRunningTime",.01),s(this,"pid",-1),s(this,"ramUsage",0),s(this,"server",""),s(this,"threads",1),null!=e&&(this.filename=e.filename,this.args=t,this.server=e.server,this.ramUsage=e.ramUsage)}log(e){this.logs.length>n.a.MaxLogCapacity&&this.logs.shift();let t=e;n.a.TimestampsFormat&&(t="["+Object(o.a)(n.a.TimestampsFormat)+"] "+t),this.logs.push(t),this.logUpd=!0}displayLog(){for(let e=0;e{try{return r.a[e].getInfo().offerHackingWork}catch(e){return console.error("Error when trying to filter Hacking Factions for Coding Contract Generation: "+e),!1}});return t===n.c.FactionReputation&&0===a.length&&(t=n.c.CompanyReputation),t===n.c.FactionReputationAll&&0===a.length&&(t=n.c.CompanyReputation),t===n.c.CompanyReputation&&0===Object.keys(i.a.jobs).length&&(t=n.c.Money),t}(e.type);const t=i.a.factions.filter(e=>r.a[e].getInfo().offerHackingWork);switch(e.type){case n.c.FactionReputation:{const a=t.length,n=t[Object(c.a)(0,a-1)];e.name=n;break}case n.c.CompanyReputation:{const t=Object.keys(i.a.jobs);t.length>0?e.name=t[Object(c.a)(0,t.length-1)]:e.type=n.c.Money;break}}return e}function f(){const e=Object(o.c)();let t=Object(c.a)(0,e.length-1),a=e[t];for(let n=0;n<200&&(!(a instanceof l.a)||a.purchasedByPlayer||a.hostname===s.a.WorldDaemon);++n)t=Object(c.a)(0,e.length-1),a=e[t];return a}function g(e,t){let a="contract-"+Object(c.a)(0,1e6);for(let t=0;t<1e3&&!(e.contracts.filter(e=>e.fn===a).length<=0);++t)a="contract-"+Object(c.a)(0,1e6);return t.name&&(a+="-"+t.name.replace(/\s/g,"")),a}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(118).a)},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(77),r=a(15);function i(e,t){let a=0,i=!1;for(const r in n.a){const o=n.a[r];if(o.type==t){a=o.successRate(e),i=!0;break}}return i?Math.random()<=a:(Object(r.a)(`ERR: Unrecognized crime type: ${t} This is probably a bug please contact the developer`),!1)}function o(e){return(e=e.toLowerCase()).includes("shoplift")?n.a.Shoplift:e.includes("rob")&&e.includes("store")?n.a.RobStore:e.includes("mug")?n.a.Mug:e.includes("larceny")?n.a.Larceny:e.includes("drugs")?n.a.DealDrugs:e.includes("bond")&&e.includes("forge")?n.a.BondForgery:e.includes("traffick")&&e.includes("arms")?n.a.TraffickArms:e.includes("homicide")?n.a.Homicide:e.includes("grand")&&e.includes("auto")?n.a.GrandTheftAuto:e.includes("kidnap")?n.a.Kidnap:e.includes("assassinate")||e.includes("assassination")?n.a.Assassination:e.includes("heist")?n.a.Heist:null}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(52),r=a(42),i=a(31),o=a(22),s=a(21),l=a(798);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={}){c(this,"minEne",0),c(this,"maxEne",100),c(this,"minHap",0),c(this,"maxHap",100),c(this,"maxMor",100),c(this,"employees",[]),c(this,"employeeProd",{[n.a.Operations]:0,[n.a.Engineer]:0,[n.a.Business]:0,[n.a.Management]:0,[n.a.RandD]:0,total:0}),this.loc=e.loc?e.loc:"",this.size=e.size?e.size:1}atCapacity(){return this.employees.length>=this.size}process(e=1,t,a){if(a.hasResearch("HRBuddy-Recruitment")&&!this.atCapacity()){const e=this.hireRandomEmployee();a.hasResearch("HRBuddy-Training")&&void 0!==e&&(e.pos=n.a.Training)}this.maxEne=100,this.maxHap=100,this.maxMor=100,a.hasResearch("Go-Juice")&&(this.maxEne+=10),a.hasResearch("JoyWire")&&(this.maxHap+=10),a.hasResearch("Sti.mu")&&(this.maxMor+=10);let r=1;t.funds<0&&a.lastCycleRevenue<0?r=Math.pow(.99,e):t.funds>0&&a.lastCycleRevenue>0&&(r=Math.pow(1.01,e));const i=a.hasResearch("AutoBrew"),o=a.hasResearch("AutoPartyManager");let s=0;for(let t=0;t864e5}function o(e){if(i()){for(const t of e.factions)n.a[t].favor++;r=(new Date).getTime()}}function s(e){r=e}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(){r(this,"bladeburner",0),r(this,"casino",0),r(this,"class",0),r(this,"codingcontract",0),r(this,"corporation",0),r(this,"crime",0),r(this,"gang",0),r(this,"hacking",0),r(this,"hacknet",0),r(this,"hacknet_expenses",0),r(this,"hospitalization",0),r(this,"infiltration",0),r(this,"sleeves",0),r(this,"stock",0),r(this,"total",0),r(this,"work",0),r(this,"servers",0),r(this,"other",0),r(this,"augmentations",0)}record(e,t){const a=t.toLowerCase();"number"==typeof this[a]?(this[a]+=e,this.total+=e):console.warn("MoneySourceTracker.record() called with invalid source: "+t)}reset(){for(const e in this)"number"==typeof this[e]&&(this[e]=0)}toJSON(){return Object(n.b)("MoneySourceTracker",this)}static fromJSON(e){return Object(n.a)(i,e.data)}}n.c.constructors.MoneySourceTracker=i},,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n),i=a(118),o=a(41),s=a(1),l=a(32);const c=new i.a;let u=0;function m(){const[e,t]=Object(n.useState)([]);return Object(n.useEffect)(()=>c.subscribe(e=>{const a=u+"";u++,t(t=>[...t,{id:a,text:e}])}),[]),r.a.createElement(r.a.Fragment,null,e.length>0&&r.a.createElement(o.a,{open:!0,onClose:function(){t(e=>e.slice(1,1e99))}},r.a.createElement(l.a,{overflow:"scroll",sx:{overflowWrap:"break-word",whiteSpace:"pre-line"}},r.a.createElement(s.a,null,e[0].text))))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i}));var n=a(8);function r(e){return e.money<0?0:Math.min(.1*e.money,(e.max_hp-e.hp)*n.a.HospitalCostPerHp)}function i(e,t){const a=e.hp;e.hp-=t;const n=r(e);return e.hp=a,n}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(52),r=a(164),i=a(799),o=a(463),s=a(21),l=a(31);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={}){c(this,"name",""),c(this,"dmd",0),c(this,"cmp",0),c(this,"mku",0),c(this,"pCost",0),c(this,"sCost",0),c(this,"fin",!1),c(this,"prog",0),c(this,"createCity",""),c(this,"designCost",0),c(this,"advCost",0),c(this,"rat",0),c(this,"qlt",0),c(this,"per",0),c(this,"dur",0),c(this,"rel",0),c(this,"aes",0),c(this,"fea",0),c(this,"data",Object(o.a)([0,0,0])),c(this,"loc",""),c(this,"siz",0),c(this,"reqMats",{}),c(this,"prdman",Object(o.a)([!1,0])),c(this,"sllman",Object(o.a)([!1,0])),c(this,"marketTa1",!1),c(this,"marketTa2",!1),c(this,"marketTa2Price",Object(o.a)(0)),this.name=e.name?e.name:"",this.dmd=e.demand?e.demand:0,this.cmp=e.competition?e.competition:0,this.mku=e.markup?e.markup:0,this.createCity=e.createCity?e.createCity:"",this.designCost=e.designCost?e.designCost:0,this.advCost=e.advCost?e.advCost:0,this.qlt=e.quality?e.quality:0,this.per=e.performance?e.performance:0,this.dur=e.durability?e.durability:0,this.rel=e.reliability?e.reliability:0,this.aes=e.aesthetics?e.aesthetics:0,this.fea=e.features?e.features:0,this.loc=e.loc?e.loc:"",this.siz=e.size?e.size:0,this.reqMats=e.req?e.req:{}}createProduct(e=1,t=1){this.fin||(this.prog+=.01*e*t)}finishProduct(e,t){this.fin=!0;const a=this.prog/100,i=e[n.a.Engineer]/e.total,o=e[n.a.Management]/e.total,s=e[n.a.RandD]/e.total,c=e[n.a.Operations]/e.total,u=e[n.a.Business]/e.total,m=a*(1.2*i+.9*o+1.3*s+1.5*c+u)*(1+Math.pow(this.designCost,.1)/100)*(1+Math.pow(t.sciResearch.qty,t.sciFac)/800);this.qlt=m*(.1*e[n.a.Engineer]+.05*e[n.a.Management]+.05*e[n.a.RandD]+.02*e[n.a.Operations]+.02*e[n.a.Business]),this.per=m*(.15*e[n.a.Engineer]+.02*e[n.a.Management]+.02*e[n.a.RandD]+.02*e[n.a.Operations]+.02*e[n.a.Business]),this.dur=m*(.05*e[n.a.Engineer]+.02*e[n.a.Management]+.08*e[n.a.RandD]+.05*e[n.a.Operations]+.05*e[n.a.Business]),this.rel=m*(.02*e[n.a.Engineer]+.08*e[n.a.Management]+.02*e[n.a.RandD]+.05*e[n.a.Operations]+.08*e[n.a.Business]),this.aes=m*(0*e[n.a.Engineer]+.08*e[n.a.Management]+.05*e[n.a.RandD]+.02*e[n.a.Operations]+.1*e[n.a.Business]),this.fea=m*(.08*e[n.a.Engineer]+.05*e[n.a.Management]+.02*e[n.a.RandD]+.05*e[n.a.Operations]+.05*e[n.a.Business]),this.calculateRating(t);const h=1+Math.pow(this.advCost,.1)/100,p=Math.max(u+o,1/e.total);this.mku=100/(h*Math.pow(this.qlt+.001,.65)*p),0!==this.mku&&isFinite(this.mku)||(this.mku=1),this.dmd=0===t.awareness?20:Math.min(100,h*(t.popularity/t.awareness*100)),this.cmp=Object(l.a)(0,70);for(const e in t.reqMats)if(t.reqMats.hasOwnProperty(e)){const a=t.reqMats[e];if(void 0===a)continue;this.reqMats[e]=a}this.siz=0;for(const e in t.reqMats){const a=t.reqMats[e];void 0!==a&&(this.siz+=r.a[e]*a)}}calculateRating(e){const t=i.a[e.type];null!=t?(this.rat=0,this.rat+=t.Quality?this.qlt*t.Quality:0,this.rat+=t.Performance?this.per*t.Performance:0,this.rat+=t.Durability?this.dur*t.Durability:0,this.rat+=t.Reliability?this.rel*t.Reliability:0,this.rat+=t.Aesthetics?this.aes*t.Aesthetics:0,this.rat+=t.Features?this.fea*t.Features:0):console.error("Could not find product rating weights for: "+e)}toJSON(){return Object(s.b)("Product",this)}static fromJSON(e){return Object(s.a)(u,e.data)}}s.c.constructors.Product=u},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(29),o=a(449),s=a(1),l=a(26),c=a(10);const u=[];function m(){const e=i.b.Player(),t=i.b.Router(),a=Object(n.useState)(!1)[1];function m(){a(e=>!e)}const h=Object(o.a)(e);return Object(n.useEffect)(()=>{h.forEach(e=>{u.includes(e.name)||u.push(e.name)})},[]),Object(n.useEffect)(()=>{const e=setInterval(m,200);return()=>clearInterval(e)},[]),r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h4"},"Create program"),r.a.createElement(s.a,null,"This page displays any programs that you are able to create. Writing the code for a program takes time, which can vary based on how complex the program is. If you are working on creating a program you can cancel at any time. Your progress will be saved and you can continue later."),h.map(a=>{const n=a.create;return null===n?r.a.createElement(r.a.Fragment,null):r.a.createElement(r.a.Fragment,{key:a.name},r.a.createElement(l.a,{title:n.tooltip},r.a.createElement(c.a,{sx:{my:1},onClick:r=>{r.isTrusted&&e.startCreateProgramWork(t,a.name,n.time,n.level)}},a.name)),r.a.createElement("br",null))}))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return d})),a.d(t,"a",(function(){return f}));var n=a(0),r=a.n(n),i=a(24),o=a(113),s=a(1),l=a(32),c=a(127),u=a(10),m=a(169),h=a(39),p=a(56);const d=[];function f(e){const t=Object(n.useState)(!1)[1];function a(){t(e=>!e)}return Object(n.useEffect)(()=>{const e=setInterval(a,200);return()=>clearInterval(e)},[]),Object(n.useEffect)(()=>{e.player.factionInvitations.forEach(e=>{d.includes(e)||d.push(e)})},[]),r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h4"},"Factions"),r.a.createElement(s.a,null,"Lists all factions you have joined"),r.a.createElement("br",null),r.a.createElement(l.a,{display:"flex",flexDirection:"column"},e.player.factions.map(t=>r.a.createElement(c.a,{key:t,variant:"h6",onClick:()=>function(t){e.router.toFaction(t)}(i.a[t])},t))),r.a.createElement("br",null),e.player.factionInvitations.length>0&&r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h5",color:"primary"},"Outstanding Faction Invitations"),r.a.createElement(s.a,null,"Lists factions you have been invited to. You can accept these faction invitations at any time."),r.a.createElement(h.a,{size:"small",padding:"none"},r.a.createElement(m.a,null,e.player.factionInvitations.map(e=>r.a.createElement(p.a,{key:e},r.a.createElement(h.b,null,r.a.createElement(s.a,{noWrap:!0},e)),r.a.createElement(h.b,{align:"right"},r.a.createElement(u.a,{onClick:a=>function(e,a){e.isTrusted&&(Object(o.d)(i.a[a]),t(e=>!e))}(a,e)},"Join!"))))))))}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(770),r=a(394),i=a(395),o=a(219),s=a(42),l=a(5),c=a(505),u=a(59),m=a(15),h=a(21),p=a(122);function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class f{constructor(e={}){d(this,"name","The Corporation"),d(this,"divisions",[]),d(this,"funds",15e10),d(this,"revenue",0),d(this,"expenses",0),d(this,"fundingRound",0),d(this,"public",!1),d(this,"totalShares",s.a.INITIALSHARES),d(this,"numShares",s.a.INITIALSHARES),d(this,"shareSalesUntilPriceUpdate",s.a.SHARESPERPRICEUPDATE),d(this,"shareSaleCooldown",0),d(this,"issueNewSharesCooldown",0),d(this,"dividendPercentage",0),d(this,"dividendTaxPercentage",50),d(this,"issuedShares",0),d(this,"sharePrice",0),d(this,"storedCycles",0),d(this,"state",new n.a),this.name=e.name?e.name:"The Corporation";const t=Object.keys(r.a).length,a=Object.keys(i.a).length;this.unlockUpgrades=Array(t).fill(0),this.upgrades=Array(a).fill(0),this.upgradeMultipliers=Array(a).fill(1)}addFunds(e){isFinite(e)?this.funds=this.funds+e:console.error("Trying to add invalid amount of funds. Report to a developper.")}getState(){return this.state.getState()}storeCycles(e=1){this.storedCycles+=e}process(e){if(this.storedCycles>=s.a.CyclesPerIndustryStateCycle){const t=this.getState(),a=1,n=a*s.a.CyclesPerIndustryStateCycle;if(this.storedCycles-=n,this.divisions.forEach(e=>{e.process(a,t,this)}),this.shareSaleCooldown>0&&(this.shareSaleCooldown-=n),this.issueNewSharesCooldown>0&&(this.issueNewSharesCooldown-=n),"START"===t){this.revenue=0,this.expenses=0,this.divisions.forEach(e=>{e.lastCycleRevenue!==-1/0&&e.lastCycleRevenue!==1/0&&e.lastCycleExpenses!==-1/0&&e.lastCycleExpenses!==1/0&&(this.revenue=this.revenue+e.lastCycleRevenue,this.expenses=this.expenses+e.lastCycleExpenses)});const t=(this.revenue-this.expenses)*(a*s.a.SecsPerMarketCycle);if((isNaN(this.funds)||this.funds===1/0||this.funds===-1/0)&&(Object(m.a)("There was an error calculating your Corporations funds and they got reset to 0. This is a bug. Please report to game developer.
(Your funds have been set to $150b for the inconvenience)"),this.funds=15e10),this.dividendPercentage>0&&t>0)if(isNaN(this.dividendPercentage)||this.dividendPercentage<0||this.dividendPercentage>100*s.a.DividendMaxPercentage)console.error("Invalid Corporation dividend percentage: "+this.dividendPercentage);else{const a=t-this.dividendPercentage/100*t;e.gainMoney(this.getDividends(),"corporation"),this.addFunds(a)}else this.addFunds(t);this.updateSharePrice()}this.state.nextState()}}getDividends(){const e=(this.revenue-this.expenses)*s.a.SecsPerMarketCycle,t=this.dividendPercentage/100*e/this.totalShares,a=this.numShares*t;let n=-.15;return 1===this.unlockUpgrades[5]&&(n+=.05),1===this.unlockUpgrades[6]&&(n+=.1),Math.pow(a,l.a.CorporationSoftCap+n)}determineValuation(){let e,t=this.revenue-this.expenses;return this.public?(this.dividendPercentage>0&&(t*=(100-this.dividendPercentage)/100),e=this.funds+85e3*t,e*=Math.pow(1.1,this.divisions.length),e=Math.max(e,0)):(e=1e10+Math.max(this.funds,0)/3,t>0?(e+=315e3*t,e*=Math.pow(1.1,this.divisions.length)):e=1e10*Math.pow(1.1,this.divisions.length),e-=e%1e6),e*l.a.CorporationValuation}getTargetSharePrice(){return this.determineValuation()/(2*(this.totalShares-this.numShares)+1)}updateSharePrice(){const e=this.getTargetSharePrice();this.sharePrice<=e?this.sharePrice*=1+.01*Math.random():this.sharePrice*=1-.01*Math.random(),this.sharePrice<=.01&&(this.sharePrice=.01)}immediatelyUpdateSharePrice(){this.sharePrice=this.getTargetSharePrice()}calculateShareSale(e){let t=e,a=this.shareSalesUntilPriceUpdate,n=this.sharePrice,r=0,i=0;const o=Math.ceil(e/s.a.SHARESPERPRICEUPDATE);if(isNaN(o)||o>1e7)return console.error("Something went wrong or unexpected when calculating share sale. Maxiterations calculated to be "+o),[0,0,0];for(let e=0;e3600?Math.floor(t/3600)+" hour(s)":t>60?Math.floor(t/60)+" minute(s)":Math.floor(t)+" second(s)"}unlock(e){const t=e[0],a=e[1];for(;this.unlockUpgrades.length<=t;)this.unlockUpgrades.push(0);this.fundsthis.pop&&(this.popEst=this.pop)):this.popEst>this.pop&&(this.popEst-=e,this.popEstthis.pop&&(this.popEst=this.pop)):this.popEst>this.pop&&(this.popEst*=1-e/100,this.popEst0?1:-1),this.pop+=a,t.changeEstEqually&&(this.popEst+=a,this.popEst<0&&(this.popEst=0)),a}changeChaosByCount(e){if(isNaN(e))throw new Error("NaN passed into City.changeChaosByCount()");0!==e&&(this.chaos+=e,this.chaos<0&&(this.chaos=0))}toJSON(){return Object(i.b)("City",this)}static fromJSON(e){return Object(i.a)(l,e.data)}}i.c.constructors.City=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"e",(function(){return u})),a.d(t,"f",(function(){return m}));var n=a(24),r=a(444),i=a(74);function o(){return 2===this.bitNodeN||!(i.a[2]<=0)&&this.karma<=-54e3}function s(){const e=this.gang;if(null===e)throw new Error("Cannot get gang faction because player is not in a gang.");const t=n.a[e.facName];if(null==t)throw new Error("Gang has invalid faction name: "+e.facName);return t}function l(){if(!this.inGang())return"";const e=this.gang;if(null===e)throw new Error("Cannot get gang faction because player is not in a gang.");return e.facName}function c(e){if(!this.inGang())return!1;const t=this.gang;if(null===t)throw new Error("Cannot get gang faction because player is not in a gang.");return t.facName===e}function u(){return null!=this.gang&&null!=this.gang&&this.gang instanceof r.a}function m(e,t){this.gang=new r.a(e,t);const a=n.a[e];if(null==a)throw new Error("Invalid faction name when creating gang: "+e);a.playerReputation=0}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t=[],a=""){this.name=e,this.locations=t,this.asciiArt=a}addLocation(e){this.locations.push(e)}}},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(1),i=a(10),o=a(73),s=a(32);function l(e){return n.createElement(s.a,null,n.createElement(o.a,{sx:{my:1,p:1,width:"100%"}},n.createElement(i.a,{onClick:e.onClick},e.buttonText),n.createElement(r.a,null,e.infoText)))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return u}));var n=a(0),r=a(1),i=a(26),o=a(10),s=a(82);let l;function c(e){let t="",a="";return e.tickerDisplayMode===l.Portfolio?(t="Switch to 'All Stocks' Mode",a="Displays all stocks on the WSE"):(t="Switch to 'Portfolio' Mode",a="Displays only the stocks for which you have shares or orders"),n.createElement(i.a,{title:n.createElement(r.a,null,a)},n.createElement(o.a,{onClick:e.changeDisplayMode},t))}function u(e){return n.createElement(n.Fragment,null,n.createElement(c,e),n.createElement("br",null),n.createElement(s.a,{sx:{width:"100%"},onChange:e.changeWatchlistFilter,placeholder:"Filter Stocks by symbol (comma-separated list)",type:"text"}))}!function(e){e[e.AllStocks=0]="AllStocks",e[e.Portfolio=1]="Portfolio"}(l||(l={}))},function(e,t,a){"use strict";a.d(t,"f",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"e",(function(){return h})),a.d(t,"d",(function(){return p})),a.d(t,"a",(function(){return d}));var n=a(8),r=a(5),i=a(45),o=a(85),s=a(27),l=a(92);function c(){return!!Object(s.d)(l.a.DarkWeb)}function u(){const e=Object(s.d)(this.currentServer);if(null===e)throw new Error("somehow connected to a server that does not exist. "+this.currentServer);return e}function m(){const e=Object(s.d)("home");if(e instanceof i.a)return e;throw new Error("home computer was not a normal server")}function h(){const e=this.getHomeComputer().maxRam,t=Math.log2(e),a=Math.pow(1.58,t);return e*n.a.BaseCostFor1GBOfRamHome*a*r.a.HomeComputerRamCost}function p(){return 1e9*Math.pow(7.5,this.getHomeComputer().cpuCores)}function d(){const e="hacknet-node-"+this.hacknetNodes.length,t=new o.a({adminRights:!0,hostname:e,ip:Object(s.e)()});this.hacknetNodes.push(t.hostname),Object(s.a)(t);return this.getHomeComputer().serversOnNetwork.push(t.hostname),t.serversOnNetwork.push(l.a.Home),t}},,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(2),r=a(31),i=a(269),o=a(21),s=a(57);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c{constructor(e=null){l(this,"name",""),l(this,"level",1),l(this,"maxLevel",1),l(this,"autoLevel",!0),l(this,"baseDifficulty",100),l(this,"difficultyFac",1.01),l(this,"rewardFac",1.02),l(this,"successes",0),l(this,"failures",0),l(this,"rankGain",0),l(this,"rankLoss",0),l(this,"hpLoss",0),l(this,"hpLost",0),l(this,"isStealth",!1),l(this,"isKill",!1),l(this,"count",Object(r.a)(1e3,25e3)),l(this,"weights",{hack:1/7,str:1/7,def:1/7,dex:1/7,agi:1/7,cha:1/7,int:1/7}),l(this,"decays",{hack:.9,str:.9,def:.9,dex:.9,agi:.9,cha:.9,int:.9}),l(this,"teamCount",0),e&&e.name&&(this.name=e.name),e&&e.baseDifficulty&&(this.baseDifficulty=Object(i.a)(e.baseDifficulty,10)),e&&e.difficultyFac&&(this.difficultyFac=e.difficultyFac),e&&e.rewardFac&&(this.rewardFac=e.rewardFac),e&&e.rankGain&&(this.rankGain=e.rankGain),e&&e.rankLoss&&(this.rankLoss=e.rankLoss),e&&e.hpLoss&&(this.hpLoss=e.hpLoss),e&&e.isStealth&&(this.isStealth=e.isStealth),e&&e.isKill&&(this.isKill=e.isKill),e&&e.count&&(this.count=e.count),e&&e.weights&&(this.weights=e.weights),e&&e.decays&&(this.decays=e.decays);let t=0;for(const e in this.weights)this.weights.hasOwnProperty(e)&&(t+=this.weights[e]);if(t-1>=10*Number.EPSILON)throw new Error("Invalid weights when constructing Action "+this.name+". The weights should sum up to 1. They sum up to :1");for(const e in this.decays)if(this.decays.hasOwnProperty(e)&&this.decays[e]>1)throw new Error("Invalid decays when constructing Action "+this.name+". Decay value cannot be greater than 1")}getDifficulty(){const e=this.baseDifficulty*Math.pow(this.difficultyFac,this.level-1);if(isNaN(e))throw new Error("Calculated NaN in Action.getDifficulty()");return e}attempt(e){return Math.random()s.a.ChaosThreshold){const e=t.chaos-s.a.ChaosThreshold+1;return Math.pow(e,.5)}return 1}getEstSuccessChance(e){function t(e){return Math.max(0,Math.min(e,1))}const a=this.getSuccessChance(e,{est:!0}),n=this.getSuccessChance(e),r=Math.abs(n-a);let i=n-r,o=n+r;const s=e.getCurrentCity(),l=s.pop/s.popEst;return l<1?i*=l:o*=l,[t(i),t(o)]}getSuccessChance(e,t={est:!1}){if(null==e)throw new Error("Invalid Bladeburner instance passed into Action.getSuccessChance");let a=this.getDifficulty(),r=0;for(const t in this.weights)if(this.weights.hasOwnProperty(t)){const a=n.a.queryStatFromString(t),i="eff"+t.charAt(0).toUpperCase()+t.slice(1);let o=e.skillMultipliers[i];null==o&&(console.error("Failed to find Bladeburner Skill multiplier for: "+t),o=1),r+=this.weights[t]*Math.pow(o*a,this.decays[t])}if(r*=n.a.getIntelligenceBonus(.75),r*=e.calculateStaminaPenalty(),r*=this.getTeamSuccessBonus(e),r*=this.getChaosCompetencePenalty(e,t),a*=this.getChaosDifficultyBonus(e),"Raid"==this.name&&e.getCurrentCity().comms<=0)return 0;if(r*=e.skillMultipliers.successChanceAll,r*=this.getActionTypeSkillSuccessBonus(e),this.isStealth&&(r*=e.skillMultipliers.successChanceStealth),this.isKill&&(r*=e.skillMultipliers.successChanceKill),r*=n.a.bladeburner_success_chance_mult,isNaN(r))throw new Error("Competence calculated as NaN in Action.getSuccessChance()");return Math.min(1,r/a)}getSuccessesNeededForNextLevel(e){return Math.ceil(.5*this.maxLevel*(2*e+(this.maxLevel-1)))}setMaxLevel(e){this.successes>=this.getSuccessesNeededForNextLevel(e)&&++this.maxLevel}toJSON(){return Object(o.b)("Action",this)}static fromJSON(e){return Object(o.a)(c,e.data)}}o.c.constructors.Action=c},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={0:[0,2e10,"Export","Develop infrastructure to export your materials to your other facilities. This allows you to move materials around between different divisions and cities."],1:[1,25e9,"Smart Supply","Use advanced AI to anticipate your supply needs. This allows you to purchase exactly however many materials you need for production."],2:[2,5e9,"Market Research - Demand","Mine and analyze market data to determine the demand of all resources. The demand attribute, which affects sales, will be displayed for every material and product."],3:[3,5e9,"Market Data - Competition","Mine and analyze market data to determine how much competition there is on the market for all resources. The competition attribute, which affects sales, will be displayed for every material and product."],4:[4,1e10,"VeChain","Use AI and blockchain technology to identify where you can improve your supply chain systems. This upgrade will allow you to view a wide array of useful statistics about your Corporation."],5:[5,5e14,"Shady Accounting","Utilize unscrupulous accounting practices and pay off government officials to save money on taxes. This reduces the dividend tax rate by 5%."],6:[6,2e15,"Government Partnership","Help national governments further their agendas in exchange for lowered taxes. This reduces the dividend tax rate by 10%"],7:[7,5e10,"Warehouse API","Enables the warehouse API."],8:[8,5e10,"Office API","Enables the office API."]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={0:[0,2e9,1.06,.03,"Smart Factories","Advanced AI automatically optimizes the operation and productivity of factories. Each level of this upgrade increases your global production by 3% (additive)."],1:[1,2e9,1.06,.1,"Smart Storage","Advanced AI automatically optimizes your warehouse storage methods. Each level of this upgrade increases your global warehouse storage size by 10% (additive)."],2:[2,4e9,1.1,.001,"DreamSense","Use DreamSense LCC Technologies to advertise your corporation to consumers through their dreams. Each level of this upgrade provides a passive increase in awareness of all of your companies (divisions) by 0.004 / market cycle,and in popularity by 0.001 / market cycle. A market cycle is approximately 15 seconds."],3:[3,4e9,1.5,.005,"Wilson Analytics","Purchase data and analysis from Wilson, a marketing research firm. Each level of this upgrades increases the effectiveness of your advertising by 0.5% (additive)."],4:[4,1e9,1.06,.1,"Nuoptimal Nootropic Injector Implants","Purchase the Nuoptimal Nootropic Injector augmentation for your employees. Each level of this upgrade globally increases the creativity of your employees by 10% (additive)."],5:[5,1e9,1.06,.1,"Speech Processor Implants","Purchase the Speech Processor augmentation for your employees. Each level of this upgrade globally increases the charisma of your employees by 10% (additive)."],6:[6,1e9,1.06,.1,"Neural Accelerators","Purchase the Neural Accelerator augmentation for your employees. Each level of this upgrade globally increases the intelligence of your employees by 10% (additive)."],7:[7,1e9,1.06,.1,"FocusWires","Purchase the FocusWire augmentation for your employees. Each level of this upgrade globally increases the efficiency of your employees by 10% (additive)."],8:[8,1e9,1.07,.01,"ABC SalesBots","Always Be Closing. Purchase these robotic salesmen to increase the amount of materials and products you sell. Each level of this upgrade globally increases your sales by 1% (additive)."],9:[9,5e9,1.07,.05,"Project Insight","Purchase 'Project Insight', a R&D service provided by the secretive Fulcrum Technologies. Each level of this upgrade globally increases the amount of Scientific Research you produce by 5% (additive)."]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a.n(n),i=a(23),o=a(1),s=a(26);function l(e){return e.city!==e.currentCity?r.a.createElement(s.a,{title:r.a.createElement(o.a,null,e.city)},r.a.createElement("span",{onClick:()=>e.onTravel(e.city),style:{color:"white",lineHeight:"1em",whiteSpace:"pre",cursor:"pointer"}},e.city[0])):r.a.createElement("span",null,e.city[0])}function c(e){return r.a.createElement(r.a.Fragment,null,r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ,_ . ._. _. ."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," , _-\\','|~\\~ ~/ ;-'_ _-' ,;_;_, ~~-"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," /~~-\\_/-'~'--' \\~~| ', ,' / / ~|-_\\_/~/~ ~~--~~~~'--_"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / ,/'-/~ '\\ ,' _ , '",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Volhaven}),",'|~ ._/-, /~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~/-'~\\_, '-,| '|. ' ~ ,\\ /'~ / /_ /~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}},".-~ '| '',\\~|\\ _\\~ ,_ , ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Chongqing})," /,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," '\\ ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Sector12})," /'~ |_/~\\\\,-,~ \\ \" ,_,/ |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | / ._-~'\\_ _~| \\ ) ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.NewTokyo})),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," \\ __-\\ '/ ~ |\\ \\_ / ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ., '\\ |, ~-_ - | \\\\_' ~| /\\ \\~ ,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~-_' _; '\\ '-, \\,' /\\/ |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," '\\_,~'\\_ \\_ _, /' ' |, /|'"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / \\_ ~ | / \\ ~'; -,_."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ~\\ | | , '-_, ,; ~ ~\\"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," \\, ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Aevum})," / \\ / /| ,-, , -,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ,/ | |' |/ ,- ~ \\ '."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ,| ,/ \\ ,/ \\ ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Ishima})," |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / | ~ -~~-, / _"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ,-' ~ /"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / ,' ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ',| ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~'"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),i=a(22),o=a(879),s=a(880);function l(e){const t=e.action.getEstSuccessChance(e.bladeburner);let a=r.a.createElement(r.a.Fragment,null);return a=t[0]===t[1]?r.a.createElement(r.a.Fragment,null,Object(i.c)(100*t[0],1),"%"):r.a.createElement(r.a.Fragment,null,Object(i.c)(100*t[0],1),"% ~ ",Object(i.c)(100*t[1],1),"%"),r.a.createElement(r.a.Fragment,null,"Estimated success chance: ",a," ",e.action.isStealth?r.a.createElement(o.a,null):r.a.createElement(r.a.Fragment,null),e.action.isKill?r.a.createElement(s.a,null):r.a.createElement(r.a.Fragment,null))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n),i=a(41);function o(e){return r.a.createElement(i.a,{open:e.open,onClose:e.onClose},e.children)}},,,,,,,,,,,function(e,t,a){"use strict";function n(e,t){const a=e.hostname;return"requiredHackingSkill"in e?!1===e.hasAdminRights?{res:!1,msg:`Cannot ${t} ${a} server because you do not have root access`}:{res:!0}:{res:!1,msg:`Cannot ${t} ${a} server because it is a Hacknet Node`}}function r(e,t){const a=n(e,"hack");if(!a.res)return a;return e.requiredHackingSkill>t.hacking?{res:!1,msg:`Cannot hack ${e.hostname} server because your hacking skill is not high enough`}:{res:!0}}function i(e){return n(e,"grow")}function o(e){return n(e,"weaken")}a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i})),a.d(t,"c",(function(){return o}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n),i=a(4),o=a(104);function s({reputation:e}){return r.a.createElement(o.a,{reputation:i.a.formatReputation(e)+" / sec"})}},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return o}));var n=a(141);function r(e){return"string"==typeof e&&(!isNaN(e)&&!isNaN(parseFloat(e)))}function i(e){const t=(e=(e=e.trim()).replace(/\s\s+/g," ")).match(/(?:'[^']*'|"[^"]*"|[^;"])*/g);if(!t)return[];const a=t.map(n.h).map(e=>e.match(/(?:'[^']*'|"[^"]*"|[^;"])*/g)).flat(),r=[];for(const e of a)null!==e&&(e.match(/^\s*$/)||r.push(e.trim()));return r}function o(e){let t="";const a=[];let n=0,i=0,o="";for(;i=1&&(o=e.charAt(i-1),"\\"===o&&(s=!0));const l=e.charAt(i);if('"'===l)if(s||" "!==o)""===t?t='"':'"'===t&&(t="");else{const t=e.indexOf('"',i+1);if(-1!==t&&(t===e.length-1||" "===e.charAt(t+1))){a.push(e.substr(i+1,t-i-1)),n=i=t===e.length-1?t+1:t+2;continue}}else if("'"===l)if(s||" "!==o)""===t?t="'":"'"===t&&(t="");else{const t=e.indexOf("'",i+1);if(-1!==t&&(t===e.length-1||" "===e.charAt(t+1))){a.push(e.substr(i+1,t-i-1)),n=i=t===e.length-1?t+1:t+2;continue}}else if(" "===l&&""===t){const t=e.substr(n,i-n);r(t)?a.push(parseFloat(t)):"true"===t?a.push(!0):"false"===t?a.push(!1):a.push(t),n=i+1}++i}if(n!==i){const t=e.substr(n,i-n);r(t)?a.push(parseFloat(t)):"true"===t?a.push(!0):"false"===t?a.push(!1):a.push(t)}return a}},,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=5,r=1e13},,,,,,,,,,,,,,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"b",(function(){return checkInfiniteLoop})),__webpack_require__.d(__webpack_exports__,"a",(function(){return calculateRamUsage}));var acorn_walk__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(313),acorn__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(255),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(270),_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(14);const specialReferenceIF="__SPECIAL_referenceIf",specialReferenceFOR="__SPECIAL_referenceFor",specialReferenceWHILE="__SPECIAL_referenceWhile",memCheckGlobalKey=".__GLOBAL__";async function parseOnlyRamCalculate(otherScripts,code,workerScript){try{let dependencyMap={};const completedParses=new Set,parseQueue=[];function parseCode(e,t){const a=parseOnlyCalculateDeps(e,t);completedParses.add(t);for(let e=0;e0;){const nextModule=parseQueue.shift();if(void 0===nextModule)throw new Error("nextModule should not be undefined");let code;if(nextModule.startsWith("https://")||nextModule.startsWith("http://"))try{const module=await eval("import(nextModule)");code="";for(const e in module)"function"==typeof module[e]&&(code+=module[e].toString()+";\n")}catch(e){return console.error(`Error dynamically importing module from ${nextModule} for RAM calculations: ${e}`),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.URLImportError}else{if(!Array.isArray(otherScripts))return console.warn("parseOnlyRamCalculate() not called with array of scripts"),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.ImportError;let e=null;const t=nextModule.startsWith("./")?nextModule.slice(2):nextModule;for(const a of otherScripts)if(a.filename===t){e=a;break}if(null==e)return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.ImportError;code=e.code}parseCode(code,nextModule)}let ram=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptBaseRamCost;const unresolvedRefs=Object.keys(dependencyMap).filter(e=>e.startsWith(initialModule)),resolvedRefs=new Set;for(;unresolvedRefs.length>0;){const e=unresolvedRefs.shift();if(void 0===e)throw new Error("ref should not be undefined");if("hacknet"!==e||resolvedRefs.has("hacknet")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptHacknetNodesRamCost),"document"!==e||resolvedRefs.has("document")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptDomRamCost),"window"!==e||resolvedRefs.has("window")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptDomRamCost),"corporation"!==e||resolvedRefs.has("corporation")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptCorporationRamCost),resolvedRefs.add(e),e.endsWith(".*")){const t=e.slice(0,e.length-2);for(const e of Object.keys(dependencyMap).filter(e=>e.startsWith(t)))for(const t of dependencyMap[e]||[])resolvedRefs.has(t)||unresolvedRefs.push(t)}else for(const t of dependencyMap[e]||[])resolvedRefs.has(t)||unresolvedRefs.push(t);try{function applyFuncRam(e){return"number"==typeof e?e:0}if(workerScript.loadedFns[e])continue;let t;workerScript.loadedFns[e]=!0,t=e in workerScript.env.vars.bladeburner?workerScript.env.vars.bladeburner[e]:e in workerScript.env.vars.codingcontract?workerScript.env.vars.codingcontract[e]:e in workerScript.env.vars.stanek?workerScript.env.vars.stanek[e]:e in workerScript.env.vars.gang?workerScript.env.vars.gang[e]:e in workerScript.env.vars.sleeve?workerScript.env.vars.sleeve[e]:e in workerScript.env.vars.stock?workerScript.env.vars.stock[e]:workerScript.env.vars[e],ram+=applyFuncRam(t)}catch(e){continue}}return ram}catch(e){return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}}function checkInfiniteLoop(e){const t=Object(acorn__WEBPACK_IMPORTED_MODULE_1__.a)(e,{sourceType:"module",ecmaVersion:"latest"});let a=-1;return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(t,{},{WhileStatement:(t,n,r)=>{!function(e){return"Literal"===e.type&&"true"===e.raw}(t.test)||function(e){let t=!1;return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(e,{},{AwaitExpression:()=>{t=!0}}),t}(t)?t.body&&r(t.body,n):a=(e.slice(0,t.start).match(/\n/g)||[]).length+1}}),a}function parseOnlyCalculateDeps(e,t){const a=Object(acorn__WEBPACK_IMPORTED_MODULE_1__.a)(e,{sourceType:"module",ecmaVersion:"latest"}),n=t+memCheckGlobalKey,r={};r[n]=new Set;const i={},o=[];function s(e,a){const n=r[e]||(r[e]=new Set),o=i[a];void 0!==o&&n.add(o),n.add(t+"."+a),n.add(a)}const l=Object.getOwnPropertyNames(Object.prototype);function c(){return{Identifier:(e,t)=>{l.includes(e.name)||s(t.key,e.name)},WhileStatement:(e,t,a)=>{s(t.key,specialReferenceWHILE),e.test&&a(e.test,t),e.body&&a(e.body,t)},DoWhileStatement:(e,t,a)=>{s(t.key,specialReferenceWHILE),e.test&&a(e.test,t),e.body&&a(e.body,t)},ForStatement:(e,t,a)=>{s(t.key,specialReferenceFOR),e.init&&a(e.init,t),e.test&&a(e.test,t),e.update&&a(e.update,t),e.body&&a(e.body,t)},IfStatement:(e,t,a)=>{s(t.key,specialReferenceIF),e.test&&a(e.test,t),e.consequent&&a(e.consequent,t),e.alternate&&a(e.alternate,t)},MemberExpression:(e,t,a)=>{e.object&&a(e.object,t),e.property&&a(e.property,t)}}}return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(a,{key:n},Object.assign({ImportDeclaration:(e,t)=>{const a=e.source.value;o.push(a);const n=r[t.key];if(void 0===n)throw new Error("set should not be undefined");n.add(a+memCheckGlobalKey);for(let n=0;n{const a=t+"."+e.id.name;acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(e,{key:a},c())}},c())),{dependencyMap:r,additionalModules:o}}async function calculateRamUsage(e,t){const a={loadedFns:{},env:{vars:_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.b}};try{return await parseOnlyRamCalculate(t,e,a)}catch(e){return console.error("Failed to parse script for RAM calculations:"),console.error(e),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}},function(e,t,a){"use strict";function n(e){return+(Math.round(parseFloat(e+"e+2"))+"e-2")}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"a",(function(){return h}));var n=a(0),r=a.n(n),i=a(291),o=a(2),s=a(93),l=a(92),c=a(16);function u(){const e=o.a.getCurrentServer();null!==e&&l.a.DarkWeb==e.hostname&&s.a.print("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 m(){for(const e in i.a){const t=i.a[e];s.a.printRaw(r.a.createElement(r.a.Fragment,null,t.program," - ",r.a.createElement(c.a,{money:t.price})," - ",t.description))}}function h(e){e=e.toLowerCase();let t=null;for(const a in i.a){const n=i.a[a];n.program.toLowerCase()==e&&(t=n)}null!==t?o.a.hasProgram(t.program)?s.a.print("You already have the "+t.program+" program"):o.a.moneyt&&(a=1),this.wanted=a,this.wanted<1&&(this.wanted=1)}t.gainMoney(a*e,"gang")}processTerritoryAndPowerGains(e=1){if(this.storedTerritoryAndPowerCycles+=e,this.storedTerritoryAndPowerCycles0&&(this.territoryClashChance=Math.max(0,this.territoryClashChance-.01));const a=c.a.Names.filter(e=>h.a[e].territory>0);if(a.length>1)for(let e=0;et!==a[e]),i=Object(l.a)(0,r.length-1),o=a[e],s=r[i];if(!(o!==t&&s!==t||Math.random()1&&(h.a[o].territory=1),h.a[s].territory-=e,h.a[o].territory<0&&(h.a[o].territory=0),o===t?(this.clash(!0),h.a[s].power*=1/1.01):s===t?this.clash(!1):h.a[s].power*=1/1.01}else{if(h.a[o].territory<=0)return;const e=n(s,o);h.a[o].territory-=e,h.a[s].territory<0&&(h.a[s].territory=0),h.a[s].territory+=e,h.a[s].territory>1&&(h.a[s].territory=1),o===t?this.clash(!1):s===t?(this.clash(!0),h.a[o].power*=1/1.01):h.a[o].power*=1/1.01}}}processExperienceGains(e=1){for(let t=0;t=0;--e){const a=this.members[e];if("Territory Warfare"!==a.task)continue;const n=t/Math.pow(a.def,.6);Math.random()=c.a.MaximumGangMembers)&&this.respect>=this.getRespectNeededToRecruitMember()}getRespectNeededToRecruitMember(){if(this.members.length<3)return 0;const e=this.members.length-2;return Math.pow(5,e)}recruitMember(e){if(""===(e=String(e))||!this.canRecruitMember())return!1;if(this.members.filter(t=>t.name===e).length>=1)return!1;const t=new p.a(e);return this.members.push(t),!0}getWantedPenalty(){return this.respect/(this.respect+this.wanted)}calculatePower(){let e=0;for(let t=0;t"Ascended Gang member "+e.name),a}catch(e){throw null==t&&Object(s.a)(e),e}}getDiscount(){const e=this.getPower(),t=this.respect,a=Math.pow(t,.01)+t/5e6+Math.pow(e,.01)+e/1e6-1;return Math.max(1,a)}getAllTaskNames(){return Object.keys(m.a).filter(e=>{const t=m.a[e];return null!=t&&("Unassigned"!==t.name&&(this.isHackingGang===t.isHacking||!this.isHackingGang===t.isCombat))})}getUpgradeCost(e){return null==e?1/0:e.cost/this.getDiscount()}toJSON(){return Object(o.b)("Gang",this)}static fromJSON(e){return Object(o.a)(f,e.data)}}o.c.constructors.Gang=f},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(163);let r=1;function i(){let e=r,t=!1;for(let a=0;a<1e6;){if(!n.a.has(e+a)){t=!0,e+=a;break}a===Number.MAX_SAFE_INTEGER-1?a=1:++a}return t?(r=e+1,r>=Number.MAX_SAFE_INTEGER&&(r=1),e):-1}function o(){r=1}},function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return J}));var n=a(408),r=a(14),i=a(264),o=a(5),s=a(8),l=a(89),c=a(409),u=a(85),m=a(93),h=a(2),p=a(60),d=a(284),f=a(240),g=a(91),y=a(511),b=a(27),E=a(119),k=a(216),v=a(45),_=a(74),w=a(447),S=a(112),C=a(241),x=a(144),O=a(131),M=a(163),T=a(107),R=a(4),A=a(22),P=a(201),N=a(230),I=a(122),F=a(785),D=a(786),j=a(787),B=a(788),G=a(789),L=a(792),W=a(793),H=a(795),U=a(800),q=a(801),K=a(802),z=a(547),$=a(15),Y=a(253),V=a(546);function J(t){const a=function(e,a){if(t.dynamicLoadedFns[e])return;t.dynamicLoadedFns[e]=!0;let n=t.scriptRef.threads;if("number"!=typeof n&&(console.warn(`WorkerScript detected NaN for threadcount for ${t.name} on ${t.hostname}`),n=1),t.dynamicRamUsage+=a,t.dynamicRamUsage>1.01*t.ramUsage)throw Object(T.b)(t,`Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${e}.\n This is probably because you somehow circumvented the static RAM calculation.\n\n Threads: ${n}\n Dynamic RAM Usage: ${R.a.formatRAM(t.dynamicRamUsage)}\n Static RAM Usage: ${R.a.formatRAM(t.ramUsage)}\n\n One of these could be the reason:\n * Using eval() to get a reference to a ns function\n const myScan = eval('ns.scan');\n\n * Using map access to do the same\n const myScan = ns['scan'];\n\n Sorry :(`)},X=function(e,t){const a=Object(b.d)(e);if(null==a)throw ae(t,"Invalid hostname or IP: "+e);return a},Q=function(e,a,n,r){if("string"==typeof n&&""!==n||(n="getRunningScript"),!Array.isArray(r))throw Object(T.b)(t,`Invalid scriptArgs argument passed into getRunningScript() from ${n}(). This is probably a bug. Please report to game developer`);if(null!=e&&"string"==typeof e){null==a&&(a=t.hostname);const i=X(a,n);return Object(f.a)(e,r,i)}return t.scriptRef},Z=function(e,t){"string"==typeof t&&""!==t||(t="getRunningScriptgetRunningScriptByPid");for(const t of Object(b.c)()){const a=Object(f.b)(e,t);if(a)return a}return null},ee=function(e,t,a){return Array.isArray(a)||(a=[]),`Cannot find running script ${e} on server ${t} with args: ${Object(N.a)(a)}`},te=function(e,a=""){return e instanceof u.a&&(t.log(a,()=>"Does not work on Hacknet Servers"),!0)},ae=function(e,a){const n=(new Error).stack;if(void 0===n)throw new Error("how did we not throw an error?");const r=n.split("\n").slice(1),i=t.getServer().scripts,o=[];for(const e of r){let t;for(const a of i){a.url&&e.includes(a.url)&&(t=a.filename);for(const n of a.dependencies)e.includes(n.url)&&(t=n.filename)}if(!t)continue;function s(e){const t=e.match(/.*:(\d+):\d+.*/),a=e.match(/.*at (.+) \(.*/);return t&&a?{line:t[1],func:a[1]}:null}let a={line:"-1",func:"unknown"};const n=s(e);function l(e){const t=e.match(/.*:(\d+):\d+$/),a=e.lastIndexOf("@");return t&&-1!==a?{line:t[1],func:e.slice(0,a)}:null}n&&(a=n);const r=l(e);r&&(a=r),o.push(`${t}:L${a.line}@${a.func}`)}t.log(e,()=>a);let c=`${e}: ${a}`;return 0!==o.length&&(c+="
Stack:
"+o.join("
")),Object(T.b)(t,c)},ne=function(e,a,{threads:n,stock:r}={}){if(void 0===e)throw ae("hack","Takes 1 argument.");const i=Object(T.d)(t,"hack",n),u=X(e,"hack");if(!(u instanceof v.a))throw ae("hack","Cannot be executed on this server.");const m=Object(l.d)(u,h.a),p=Object(c.b)(u,h.a);if(!p.res)throw ae("hack",p.msg||"");return t.log("hack",()=>`Executing ${e} in ${Object(A.b)(1e3*m,!0)} (t=${R.a.formatThreads(i)})`),Object(T.c)(1e3*m,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=Object(l.b)(u,h.a),n=Math.random();let c=Object(l.c)(u,h.a)*i;const m=c/4;if(nu.moneyAvailable&&(p=u.moneyAvailable),u.moneyAvailable-=p,u.moneyAvailable<0&&(u.moneyAvailable=0);const d=p*o.a.ScriptHackMoneyGain;return h.a.gainMoney(d,"hacking"),t.scriptRef.onlineMoneyMade+=d,h.a.scriptProdSinceLastAug+=d,t.scriptRef.recordHack(u.hostname,d,i),h.a.gainHackingExp(c),a&&h.a.gainIntelligenceExp(Math.pow(c/s.a.IntelligenceTerminalHackBaseExpGain,.1)),t.scriptRef.onlineExpGained+=c,t.log("hack",()=>`Successfully hacked '${u.hostname}' for ${R.a.formatMoney(d)} and ${R.a.formatExp(c)} exp (t=${R.a.formatThreads(i)})`),u.fortify(s.a.ServerFortifyAmount*Math.min(i,n)),r&&Object(w.c)(u,p),a&&(u.backdoorInstalled=!0),Promise.resolve(d)}return h.a.gainHackingExp(m),t.scriptRef.onlineExpGained+=m,t.log("hack",()=>`Failed to hack '${u.hostname}'. Gained ${R.a.formatExp(m)} exp (t=${R.a.formatThreads(i)})`),Promise.resolve(0)}))},re=function(e){let t="";for(let a of e)a=Object(z.a)(a),t+="object"==typeof a?JSON.stringify(a):""+a;return t},ie={updateDynamicRam:a,makeRuntimeErrorMsg:ae,string:(e,t,a)=>{if("string"==typeof a)return a;if("number"==typeof a)return a+"";throw ae(e,t+" should be a string")},number:(e,t,a)=>{if("number"==typeof a)return a;if(!isNaN(a)&&!isNaN(parseFloat(a)))return parseFloat(a);throw ae(e,t+" should be a number")},boolean:e=>!!e,getServer:X,checkSingularityAccess:function(e,t){if(4!==h.a.bitNodeN&&_.a[4]`returned ${n.serversOnNetwork.length} connections for ${n.hostname}`),i},hack:function(e,{threads:t,stock:n}={}){return a("hack",Object(r.c)("hack")),ne(e,!1,{threads:t,stock:n})},hackAnalyzeThreads:function(e,n){a("hackAnalyzeThreads",Object(r.c)("hackAnalyzeThreads"));const i=X(e,"hackAnalyzeThreads");if(!(i instanceof v.a))return t.log("hackAnalyzeThreads",()=>"Cannot be executed on this server."),-1;if(isNaN(n))throw ae("hackAnalyzeThreads",`Invalid growth argument passed into hackAnalyzeThreads: ${n}. Must be numeric.`);if(n<0||n>i.moneyAvailable)return-1;const o=Object(l.e)(i,h.a);return n/Math.floor(i.moneyAvailable*o)},hackAnalyze:function(e){a("hackAnalyze",Object(r.c)("hackAnalyze"));const n=X(e,"hackAnalyze");return n instanceof v.a?Object(l.e)(n,h.a):(t.log("hackAnalyze",()=>"Cannot be executed on this server."),!1)},hackAnalyzeSecurity:function(e){return s.a.ServerFortifyAmount*e},hackAnalyzeChance:function(e){a("hackAnalyzeChance",Object(r.c)("hackAnalyzeChance"));const n=X(e,"hackAnalyzeChance");return n instanceof v.a?Object(l.b)(n,h.a):(t.log("hackAnalyzeChance",()=>"Cannot be executed on this server."),!1)},sleep:function(e){if(void 0===e)throw ae("sleep","Takes 1 argument.");return t.log("sleep",()=>`Sleeping for ${e} milliseconds`),Object(T.c)(e,t).then((function(){return Promise.resolve(!0)}))},asleep:function(e){if(void 0===e)throw ae("asleep","Takes 1 argument.");return t.log("asleep",()=>`Sleeping for ${e} milliseconds`),Object(T.c)(e,t).then((function(){return Promise.resolve(!0)}))},grow:function(e,{threads:n,stock:i}={}){a("grow",Object(r.c)("grow"));const o=Object(T.d)(t,"grow",n);if(void 0===e)throw ae("grow","Takes 1 argument.");const s=X(e,"grow");if(!(s instanceof v.a))return t.log("grow",()=>"Cannot be executed on this server."),!1;const u=Object(b.d)(t.hostname);if(null===u)throw new Error("Workerscript host is null");const m=Object(c.a)(s);if(!m.res)throw ae("grow",m.msg||"");const p=Object(l.a)(s,h.a);return t.log("grow",()=>`Executing on '${s.hostname}' in ${Object(A.b)(1e3*p,!0)} (t=${R.a.formatThreads(o)}).`),Object(T.c)(1e3*p,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=s.moneyAvailable<=0?1:s.moneyAvailable;Object(E.e)(s,o,h.a,u.cpuCores);const a=s.moneyAvailable;t.scriptRef.recordGrow(s.hostname,o);const n=Object(l.c)(s,h.a)*o,r=a/e-1;return t.log("grow",()=>`Available money on '${s.hostname}' grown by ${R.a.formatPercentage(r,6)}. Gained ${R.a.formatExp(n)} hacking exp (t=${R.a.formatThreads(o)}).`),t.scriptRef.onlineExpGained+=n,h.a.gainHackingExp(n),i&&Object(w.b)(s,a-e),Promise.resolve(a/e)}))},growthAnalyze:function(e,n,i=1){a("growthAnalyze",Object(r.c)("growthAnalyze"));const o=X(e,"growthAnalyze");if(!(o instanceof v.a))return t.log("growthAnalyze",()=>"Cannot be executed on this server."),!1;if("number"!=typeof n||isNaN(n)||n<1||!isFinite(n))throw ae("growthAnalyze",`Invalid argument: growth must be numeric and >= 1, is ${n}.`);return Object(E.c)(o,Number(n),h.a,i)},growthAnalyzeSecurity:function(e){return 2*s.a.ServerFortifyAmount*e},weaken:function(e,{threads:n}={}){a("weaken",Object(r.c)("weaken"));const i=Object(T.d)(t,"weaken",n);if(void 0===e)throw ae("weaken","Takes 1 argument.");const o=X(e,"weaken");if(!(o instanceof v.a))return t.log("weaken",()=>"Cannot be executed on this server."),!1;const u=Object(c.c)(o);if(!u.res)throw ae("weaken",u.msg||"");const m=Object(l.f)(o,h.a);return t.log("weaken",()=>`Executing on '${o.hostname}' in ${Object(A.b)(1e3*m,!0)} (t=${R.a.formatThreads(i)})`),Object(T.c)(1e3*m,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=Object(b.d)(t.hostname);if(null===e)return t.log("weaken",()=>"Server is null, did it die?"),Promise.resolve(0);const a=1+(e.cpuCores-1)/16;o.weaken(s.a.ServerWeakenAmount*i*a),t.scriptRef.recordWeaken(o.hostname,i);const n=Object(l.c)(o,h.a)*i;return t.log("weaken",()=>`'${o.hostname}' security level weakened to ${o.hackDifficulty}. Gained ${R.a.formatExp(n)} hacking exp (t=${R.a.formatThreads(i)})`),t.scriptRef.onlineExpGained+=n,h.a.gainHackingExp(n),Promise.resolve(s.a.ServerWeakenAmount*i*a)}))},weakenAnalyze:function(e,t=1){const a=1+(t-1)/16;return s.a.ServerWeakenAmount*e*a},print:function(...e){if(0===e.length)throw ae("print","Takes at least 1 argument.");t.print(re(e))},tprint:function(...e){if(0===e.length)throw ae("tprint","Takes at least 1 argument.");const a=re(e);a.startsWith("ERROR")||a.startsWith("FAIL")?m.a.error(`${t.scriptRef.filename}: ${a}`):a.startsWith("SUCCESS")?m.a.success(`${t.scriptRef.filename}: ${a}`):a.startsWith("WARN")?m.a.warn(`${t.scriptRef.filename}: ${a}`):a.startsWith("INFO")?m.a.info(`${t.scriptRef.filename}: ${a}`):m.a.print(`${t.scriptRef.filename}: ${a}`)},tprintf:function(e,...t){if("string"!=typeof e)throw ae("tprintf","First argument must be string for the format.");const a=Object(n.vsprintf)(e,t);a.startsWith("ERROR")||a.startsWith("FAIL")?m.a.error(""+a):a.startsWith("SUCCESS")?m.a.success(""+a):a.startsWith("WARN")?m.a.warn(""+a):a.startsWith("INFO")?m.a.info(""+a):m.a.print(""+a)},clearLog:function(){t.scriptRef.clearLog()},disableLog:function(e){if("ALL"===e){for(e in ge)t.disableLogs[e]=!0;t.log("disableLog",()=>"Disabled logging for all functions")}else{if(void 0===ge[e])throw ae("disableLog",`Invalid argument: ${e}.`);t.disableLogs[e]=!0,t.log("disableLog",()=>"Disabled logging for "+e)}},enableLog:function(e){if(void 0===ge[e])throw ae("enableLog",`Invalid argument: ${e}.`);delete t.disableLogs[e],t.log("enableLog",()=>"Enabled logging for "+e)},isLogEnabled:function(e){if(void 0===ge[e])throw ae("isLogEnabled",`Invalid argument: ${e}.`);return!t.disableLogs[e]},getScriptLogs:function(e,a,...n){const r=Q(e,a,"getScriptLogs",n);return null==r?(t.log("getScriptLogs",()=>ee(e,a,n)),""):r.logs.slice()},tail:function(e,a=t.hostname,...n){let r;r=0===arguments.length?t.scriptRef:"number"==typeof e?Z(e,"tail"):Q(e,a,"tail",n),null!=r?P.b.emit(r):t.log("tail",()=>ee(e,a,n))},nuke:function(e){if(a("nuke",Object(r.c)("nuke")),void 0===e)throw ae("nuke","Takes 1 argument.");const n=X(e,"nuke");if(!(n instanceof v.a))return t.log("nuke",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.NukeProgram.name))throw ae("nuke","You do not have the NUKE.exe virus!");if(n.openPortCount`Already have root access to '${n.hostname}'.`):(n.hasAdminRights=!0,t.log("nuke",()=>`Executed NUKE.exe virus on '${n.hostname}' to gain root access.`)),!0},brutessh:function(e){if(a("brutessh",Object(r.c)("brutessh")),void 0===e)throw ae("brutessh","Takes 1 argument.");const n=X(e,"brutessh");if(!(n instanceof v.a))return t.log("brutessh",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.BruteSSHProgram.name))throw ae("brutessh","You do not have the BruteSSH.exe program!");return n.sshPortOpen?t.log("brutessh",()=>`SSH Port (22) already opened on '${n.hostname}'.`):(t.log("brutessh",()=>`Executed BruteSSH.exe on '${n.hostname}' to open SSH port (22).`),n.sshPortOpen=!0,++n.openPortCount),!0},ftpcrack:function(e){if(a("ftpcrack",Object(r.c)("ftpcrack")),void 0===e)throw ae("ftpcrack","Takes 1 argument.");const n=X(e,"ftpcrack");if(!(n instanceof v.a))return t.log("ftpcrack",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.FTPCrackProgram.name))throw ae("ftpcrack","You do not have the FTPCrack.exe program!");return n.ftpPortOpen?t.log("ftpcrack",()=>`FTP Port (21) already opened on '${n.hostname}'.`):(t.log("ftpcrack",()=>`Executed FTPCrack.exe on '${n.hostname}' to open FTP port (21).`),n.ftpPortOpen=!0,++n.openPortCount),!0},relaysmtp:function(e){if(a("relaysmtp",Object(r.c)("relaysmtp")),void 0===e)throw ae("relaysmtp","Takes 1 argument.");const n=X(e,"relaysmtp");if(!(n instanceof v.a))return t.log("relaysmtp",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.RelaySMTPProgram.name))throw ae("relaysmtp","You do not have the relaySMTP.exe program!");return n.smtpPortOpen?t.log("relaysmtp",()=>`SMTP Port (25) already opened on '${n.hostname}'.`):(t.log("relaysmtp",()=>`Executed relaySMTP.exe on '${n.hostname}' to open SMTP port (25).`),n.smtpPortOpen=!0,++n.openPortCount),!0},httpworm:function(e){if(a("httpworm",Object(r.c)("httpworm")),void 0===e)throw ae("httpworm","Takes 1 argument");const n=X(e,"httpworm");if(!(n instanceof v.a))return t.log("httpworm",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.HTTPWormProgram.name))throw ae("httpworm","You do not have the HTTPWorm.exe program!");return n.httpPortOpen?t.log("httpworm",()=>`HTTP Port (80) already opened on '${n.hostname}'.`):(t.log("httpworm",()=>`Executed HTTPWorm.exe on '${n.hostname}' to open HTTP port (80).`),n.httpPortOpen=!0,++n.openPortCount),!0},sqlinject:function(e){if(a("sqlinject",Object(r.c)("sqlinject")),void 0===e)throw ae("sqlinject","Takes 1 argument.");const n=X(e,"sqlinject");if(!(n instanceof v.a))return t.log("sqlinject",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.SQLInjectProgram.name))throw ae("sqlinject","You do not have the SQLInject.exe program!");return n.sqlPortOpen?t.log("sqlinject",()=>`SQL Port (1433) already opened on '${n.hostname}'.`):(t.log("sqlinject",()=>`Executed SQLInject.exe on '${n.hostname}' to open SQL port (1433).`),n.sqlPortOpen=!0,++n.openPortCount),!0},run:function(e,n=1,...i){if(a("run",Object(r.c)("run")),void 0===e)throw ae("run","Usage: run(scriptname, [numThreads], [arg1], [arg2]...)");if(isNaN(n)||n<=0)throw ae("run","Invalid thread count. Must be numeric and > 0, is "+n);const o=Object(b.d)(t.hostname);if(null==o)throw ae("run","Could not find server. This is a bug. Report to dev.");return Object(x.d)("run",o,e,i,t,n)},exec:function(e,n,i=1,...o){if(a("exec",Object(r.c)("exec")),void 0===e||void 0===n)throw ae("exec","Usage: exec(scriptname, server, [numThreads], [arg1], [arg2]...)");if(isNaN(i)||i<=0)throw ae("exec","Invalid thread count. Must be numeric and > 0, is "+i);const s=X(n,"exec");return Object(x.d)("exec",s,e,o,t,i)},spawn:function(e,n=1,...i){if(a("spawn",Object(r.c)("spawn")),!e||!n)throw ae("spawn","Usage: spawn(scriptname, threads)");setTimeout(()=>{if(isNaN(n)||n<=0)throw ae("spawn","Invalid thread count. Must be numeric and > 0, is "+n);const a=Object(b.d)(t.hostname);if(null==a)throw ae("spawn","Could not find server. This is a bug. Report to dev");return Object(x.d)("spawn",a,e,i,t,n)},1e4),t.log("spawn",()=>`Will execute '${e}' in 10 seconds`),t.running=!1,Object(O.a)(t)&&t.log("spawn",()=>"Exiting...")},kill:function(e,n,...i){let o;a("kill",Object(r.c)("kill"));const s="number"==typeof e;if(s)o=Object(O.a)(e);else{if(void 0===e||void 0===n)throw ae("kill","Usage: kill(scriptname, server, [arg1], [arg2]...)");const a=X(n,"kill"),r=Q(e,n,"kill",i);if(null==r)return t.log("kill",()=>ee(e,n,i)),!1;o=Object(O.a)(r,a.hostname)}return o?(s?t.log("kill",()=>"Killing script with PID "+e):t.log("kill",()=>`Killing '${e}' on '${n}' with args: ${Object(N.a)(i)}.`),!0):(s?t.log("kill",()=>"No script with PID "+e):t.log("kill",()=>`No such script '${e}' on '${n}' with args: ${Object(N.a)(i)}`),!1)},killall:function(e=t.hostname){if(a("killall",Object(r.c)("killall")),void 0===e)throw ae("killall","Takes 1 argument");const n=X(e,"killall"),o=n.runningScripts.length>0;for(let e=n.runningScripts.length-1;e>=0;--e)Object(O.a)(n.runningScripts[e],n.hostname,!1);return i.a.emit(),t.log("killall",()=>`Killing all scripts on '${n.hostname}'. May take a few minutes for the scripts to die.`),o},exit:function(){t.running=!1,Object(O.a)(t)?t.log("exit",()=>"Exiting..."):t.log("exit",()=>"Failed. This is a bug. Report to dev.")},scp:async function(e,n,i){if(a("scp",Object(r.c)("scp")),2!==arguments.length&&3!==arguments.length)throw ae("scp","Takes 2 or 3 arguments");if(e&&e.constructor===Array){let a=!1;return await e.forEach((async function(e){await J(t).scp(e,n,i)&&(a=!0)})),Promise.resolve(a)}if(!Object(S.h)(e))throw ae("scp",`Invalid filename: '${e}'`);if(!e.endsWith(".lit")&&!Object(g.a)(e)&&!e.endsWith("txt"))throw ae("scp","Only works for .script, .lit, and .txt files");let o,s;if(null!=i){if(void 0===e||void 0===n||void 0===i)throw ae("scp","Takes 2 or 3 arguments");o=X(i,"scp"),s=X(n,"scp")}else{if(null==n)throw ae("scp","Takes 2 or 3 arguments");if(void 0===e||void 0===n)throw ae("scp","Takes 2 or 3 arguments");if(o=X(n,"scp"),s=Object(b.d)(t.hostname),null==s)throw ae("scp","Could not find server hostname for this script. This is a bug. Report to dev.")}if(e.endsWith(".lit")){let a=!1;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let a=0;a{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0);return o.messages.push(e),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0)}if(e.endsWith(".txt")){let a;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let n=0;n{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0);const n=new C.a(a.fn,a.text);return o.textFiles.push(n),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0)}let l=null;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let a=0;a{var t;return`WARNING: File '${e}' overwritten on '${null===(t=o)||void 0===t?void 0:t.hostname}'`});const n=o.scripts[a];return n.code===l.code||(n.code=l.code,n.ramUsage=l.ramUsage,n.markUpdated()),Promise.resolve(!0)}const c=new d.a(e);return c.code=l.code,c.ramUsage=l.ramUsage,c.server=o.hostname,o.scripts.push(c),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),new Promise(e=>{null!==o?c.updateRamUsage(o.scripts).then(()=>e(!0)):e(!1)})},ls:function(e,t){if(a("ls",Object(r.c)("ls")),void 0===e)throw ae("ls","Usage: ls(hostname/ip, [grep filter])");const n=X(e,"ls");let i="";arguments.length>=2&&(i=t.toString());const o=[];for(let e=0;e"returned "+h.a.hacking),h.a.hacking},getHackingMultipliers:function(){return a("getHackingMultipliers",Object(r.c)("getHackingMultipliers")),{chance:h.a.hacking_chance_mult,speed:h.a.hacking_speed_mult,money:h.a.hacking_money_mult,growth:h.a.hacking_grow_mult}},getHacknetMultipliers:function(){return a("getHacknetMultipliers",Object(r.c)("getHacknetMultipliers")),{production:h.a.hacknet_node_money_mult,purchaseCost:h.a.hacknet_node_purchase_cost_mult,ramCost:h.a.hacknet_node_ram_cost_mult,coreCost:h.a.hacknet_node_core_cost_mult,levelCost:h.a.hacknet_node_level_cost_mult}},getBitNodeMultipliers:function(){if(a("getBitNodeMultipliers",Object(r.c)("getBitNodeMultipliers")),_.a[5]<=0&&5!==h.a.bitNodeN)throw ae("getBitNodeMultipliers","Requires Source-File 5 to run.");return Object.assign({},o.a)},getServer:function(e=t.hostname){a("getServer",Object(r.c)("getServer"));const n=X(e,"getServer"),i=Object.assign({},n);return i.contracts=[],i.messages=[],i.runningScripts=[],i.scripts=[],i.textFiles=[],i.programs=[],i.serversOnNetwork=[],i},getServerMoneyAvailable:function(e){a("getServerMoneyAvailable",Object(r.c)("getServerMoneyAvailable"));const n=X(e,"getServerMoneyAvailable");return n instanceof v.a?te(n,"getServerMoneyAvailable")?0:"home"==n.hostname?(t.log("getServerMoneyAvailable",()=>"returned player's money: "+R.a.formatMoney(h.a.money)),h.a.money):(t.log("getServerMoneyAvailable",()=>`returned ${R.a.formatMoney(n.moneyAvailable)} for '${n.hostname}'`),n.moneyAvailable):(t.log("getServerMoneyAvailable",()=>"Cannot be executed on this server."),0)},getServerSecurityLevel:function(e){a("getServerSecurityLevel",Object(r.c)("getServerSecurityLevel"));const n=X(e,"getServerSecurityLevel");return n instanceof v.a?te(n,"getServerSecurityLevel")?1:(t.log("getServerSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.hackDifficulty)} for '${n.hostname}'`),n.hackDifficulty):(t.log("getServerSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerBaseSecurityLevel:function(e){a("getServerBaseSecurityLevel",Object(r.c)("getServerBaseSecurityLevel")),t.log("getServerBaseSecurityLevel",()=>"getServerBaseSecurityLevel is deprecated because it's not useful.");const n=X(e,"getServerBaseSecurityLevel");return n instanceof v.a?te(n,"getServerBaseSecurityLevel")?1:(t.log("getServerBaseSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.baseDifficulty)} for '${n.hostname}'`),n.baseDifficulty):(t.log("getServerBaseSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerMinSecurityLevel:function(e){a("getServerMinSecurityLevel",Object(r.c)("getServerMinSecurityLevel"));const n=X(e,"getServerMinSecurityLevel");return n instanceof v.a?te(n,"getServerMinSecurityLevel")?1:(t.log("getServerMinSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.minDifficulty)} for ${n.hostname}`),n.minDifficulty):(t.log("getServerMinSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerRequiredHackingLevel:function(e){a("getServerRequiredHackingLevel",Object(r.c)("getServerRequiredHackingLevel"));const n=X(e,"getServerRequiredHackingLevel");return n instanceof v.a?te(n,"getServerRequiredHackingLevel")?1:(t.log("getServerRequiredHackingLevel",()=>`returned ${R.a.formatSkill(n.requiredHackingSkill)} for '${n.hostname}'`),n.requiredHackingSkill):(t.log("getServerRequiredHackingLevel",()=>"Cannot be executed on this server."),1)},getServerMaxMoney:function(e){a("getServerMaxMoney",Object(r.c)("getServerMaxMoney"));const n=X(e,"getServerMaxMoney");return n instanceof v.a?te(n,"getServerMaxMoney")?0:(t.log("getServerMaxMoney",()=>`returned ${R.a.formatMoney(n.moneyMax)} for '${n.hostname}'`),n.moneyMax):(t.log("getServerMaxMoney",()=>"Cannot be executed on this server."),0)},getServerGrowth:function(e){a("getServerGrowth",Object(r.c)("getServerGrowth"));const n=X(e,"getServerGrowth");return n instanceof v.a?te(n,"getServerGrowth")?1:(t.log("getServerGrowth",()=>`returned ${n.serverGrowth} for '${n.hostname}'`),n.serverGrowth):(t.log("getServerGrowth",()=>"Cannot be executed on this server."),1)},getServerNumPortsRequired:function(e){a("getServerNumPortsRequired",Object(r.c)("getServerNumPortsRequired"));const n=X(e,"getServerNumPortsRequired");return n instanceof v.a?te(n,"getServerNumPortsRequired")?5:(t.log("getServerNumPortsRequired",()=>`returned ${n.numOpenPortsRequired} for '${n.hostname}'`),n.numOpenPortsRequired):(t.log("getServerNumPortsRequired",()=>"Cannot be executed on this server."),5)},getServerRam:function(e){a("getServerRam",Object(r.c)("getServerRam")),t.log("getServerRam",()=>"getServerRam is deprecated in favor of getServerMaxRam / getServerUsedRam");const n=X(e,"getServerRam");return t.log("getServerRam",()=>`returned [${R.a.formatRAM(n.maxRam)}, ${R.a.formatRAM(n.ramUsed)}]`),[n.maxRam,n.ramUsed]},getServerMaxRam:function(e){a("getServerMaxRam",Object(r.c)("getServerMaxRam"));const n=X(e,"getServerMaxRam");return t.log("getServerMaxRam",()=>"returned "+R.a.formatRAM(n.maxRam)),n.maxRam},getServerUsedRam:function(e){a("getServerUsedRam",Object(r.c)("getServerUsedRam"));const n=X(e,"getServerUsedRam");return t.log("getServerUsedRam",()=>"returned "+R.a.formatRAM(n.ramUsed)),n.ramUsed},serverExists:function(e){return a("serverExists",Object(r.c)("serverExists")),null!==Object(b.d)(e)},fileExists:function(e,n=t.hostname){if(a("fileExists",Object(r.c)("fileExists")),void 0===e)throw ae("fileExists","Usage: fileExists(scriptname, [server])");const i=X(n,"fileExists");for(let t=0;t`Invalid argument: ram='${e}'`),1/0):n},purchaseServer:function(e,n){a("purchaseServer",Object(r.c)("purchaseServer"));let i=String(e);if(i=i.replace(/\s+/g,""),""==i)return t.log("purchaseServer",()=>`Invalid argument: hostname='${i}'`),"";if(h.a.purchasedServers.length>=Object(k.b)())return t.log("purchaseServer",()=>`You have reached the maximum limit of ${Object(k.b)()} servers. You cannot purchase any more.`),"";const o=Object(k.a)(n);if(o===1/0)return t.log("purchaseServer",()=>`Invalid argument: ram='${n}'`),"";if(h.a.money"Not enough money to purchase server. Need "+R.a.formatMoney(o)),"";const s=Object(E.f)({ip:Object(b.e)(),hostname:i,organizationName:"",isConnectedTo:!1,adminRights:!0,purchasedByPlayer:!0,maxRam:n});Object(b.a)(s),h.a.purchasedServers.push(s.hostname);const l=h.a.getHomeComputer();return l.serversOnNetwork.push(s.hostname),s.serversOnNetwork.push(l.hostname),h.a.loseMoney(o,"servers"),t.log("purchaseServer",()=>`Purchased new server with hostname '${s.hostname}' for ${R.a.formatMoney(o)}`),s.hostname},deleteServer:function(e){a("deleteServer",Object(r.c)("deleteServer"));let n=String(e);n=n.replace(/\s\s+/g,"");const i=Object(b.d)(n);if(!(i instanceof v.a))return t.log("deleteServer",()=>`Invalid argument: hostname='${n}'`),!1;if(!i.purchasedByPlayer||"home"===i.hostname)return t.log("deleteServer",()=>"Cannot delete non-purchased server."),!1;const o=i.hostname;if(i.isConnectedTo)return t.log("deleteServer",()=>"You are currently connected to the server you are trying to delete."),!1;if(o===t.hostname)return t.log("deleteServer",()=>"Cannot delete the server this script is running on."),!1;if(i.runningScripts.length>0)return t.log("deleteServer",()=>`Cannot delete server '${o}' because it still has scripts running.`),!1;let s=!1;for(let e=0;e`Could not identify server ${o} as a purchased server. This is a bug. Report to dev.`),!1;Object(b.b)(o),s=!1;const l=h.a.getHomeComputer();for(let e=0;e"Deleted server '"+n),!0;return t.log("deleteServer",()=>`Could not find server ${o} as a purchased server. This is a bug. Report to dev.`),!1},getPurchasedServers:function(){a("getPurchasedServers",Object(r.c)("getPurchasedServers"));const e=[];return h.a.purchasedServers.forEach((function(t){e.push(t)})),e},writePort:function(e,t=""){if("string"!=typeof t&&"number"!=typeof t)throw ae("writePort","Trying to write invalid data to a port: only strings and numbers are valid.");if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("writePort",`Trying to write to invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const a=x.a[e-1];if(null==a||!(a instanceof Object))throw ae("writePort",`Could not find port: ${e}. This is a bug. Report to dev.`);return Promise.resolve(a.write(t))},write:function(e,n="",i="a"){if(a("write",Object(r.c)("write")),Object(I.a)(e)){let a=e;if(!Object(S.h)(a))throw ae("write","Invalid filepath: "+a);0===a.lastIndexOf("/")&&(a=Object(S.i)(a));try{n=String(n)}catch(e){throw ae("write",`Invalid data (${e}). Data being written must be convertible to a string`)}const r=t.getServer();if(null==r)throw ae("write","Error getting Server. This is a bug. Report to dev.");if(Object(g.a)(a)){let e=t.getScriptOnServer(a,r);return null==e?(e=new d.a(a,n,r.hostname,r.scripts),r.scripts.push(e),e.updateRamUsage(r.scripts)):("w"===i?e.code=n:e.code+=n,e.updateRamUsage(r.scripts))}{const e=Object(C.c)(a,r);if(null==e)return Object(C.b)(a,n,r),Promise.resolve();"w"===i?e.write(n):e.append(n)}return Promise.resolve()}throw ae("write","Invalid argument: "+e)},tryWritePort:function(e,t=""){if(a("tryWritePort",Object(r.c)("tryWritePort")),isNaN(e))throw ae("tryWritePort","Invalid argument: "+e);{if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("tryWritePort",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const a=x.a[e-1];if(null==a||!(a instanceof Object))throw ae("tryWritePort",`Could not find port: ${e}. This is a bug. Report to dev.`);return Promise.resolve(a.tryWrite(t))}},readPort:function(e){if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("readPort",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("readPort",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.read()},read:function(e){if(a("read",Object(r.c)("read")),Object(I.a)(e)){const a=e,n=Object(b.d)(t.hostname);if(null==n)throw ae("read","Error getting Server. This is a bug. Report to dev.");if(Object(g.a)(a)){const e=t.getScriptOnServer(a,n);return null==e?"":e.code}{const e=Object(C.c)(a,n);return null!==e?e.text:""}}throw ae("read","Invalid argument: "+e)},peek:function(e){if(a("peek",Object(r.c)("peek")),isNaN(e))throw ae("peek",`Invalid argument. Must be a port number between 1 and ${s.a.NumNetscriptPorts}, is ${e}`);if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("peek",`Invalid argument. Must be a port number between 1 and ${s.a.NumNetscriptPorts}, is ${e}`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("peek",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.peek()},clear:function(e){if(a("clear",Object(r.c)("clear")),!Object(I.a)(e))throw ae("clear","Invalid argument: "+e);{const a=e,n=Object(b.d)(t.hostname);if(null==n)throw ae("clear","Error getting Server. This is a bug. Report to dev.");const r=Object(C.c)(a,n);null!=r&&r.write("")}return 0},clearPort:function(e){if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("clear",`Trying to clear invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("clear",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.clear()},getPortHandle:function(e){if(a("getPortHandle",Object(r.c)("getPortHandle")),isNaN(e))throw ae("getPortHandle",`Invalid port: ${e} Must be an integer between 1 and ${s.a.NumNetscriptPorts}.`);if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("getPortHandle",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("getPortHandle",`Could not find port: ${e}. This is a bug. Report to dev.`);return t},rm:function(e,n){a("rm",Object(r.c)("rm")),null!=n&&""!==n||(n=t.hostname);const i=X(n,"rm").removeFile(e);return i.res||t.log("rm",()=>i.msg+""),i.res},scriptRunning:function(e,t){a("scriptRunning",Object(r.c)("scriptRunning"));const n=X(t,"scriptRunning");for(let t=0;t"invalid for this kind of server"),1/0)},getGrowTime:function(e){a("getGrowTime",Object(r.c)("getGrowTime"));const n=X(e,"getGrowTime");return n instanceof v.a?te(n,"getGrowTime")?1/0:1e3*Object(l.a)(n,h.a):(t.log("getGrowTime",()=>"invalid for this kind of server"),1/0)},getWeakenTime:function(e){a("getWeakenTime",Object(r.c)("getWeakenTime"));const n=X(e,"getWeakenTime");return n instanceof v.a?te(n,"getWeakenTime")?1/0:1e3*Object(l.f)(n,h.a):(t.log("getWeakenTime",()=>"invalid for this kind of server"),1/0)},getScriptIncome:function(e,n,...i){if(a("getScriptIncome",Object(r.c)("getScriptIncome")),0===arguments.length){const e=[];let t=0;for(const e of M.a.values())t+=e.scriptRef.onlineMoneyMade/e.scriptRef.onlineRunningTime;return e.push(t),e.push(h.a.scriptProdSinceLastAug/(h.a.playtimeSinceLastAug/1e3)),e}{const a=X(n,"getScriptIncome"),r=Object(f.a)(e,i,a);return null==r?(t.log("getScriptIncome",()=>`No such script '${e}' on '${a.hostname}' with args: ${Object(N.a)(i)}`),-1):r.onlineMoneyMade/r.onlineRunningTime}},getScriptExpGain:function(e,n,...i){if(a("getScriptExpGain",Object(r.c)("getScriptExpGain")),0===arguments.length){let e=0;for(const t of M.a.values())e+=t.scriptRef.onlineExpGained/t.scriptRef.onlineRunningTime;return e}{const a=X(n,"getScriptExpGain"),r=Object(f.a)(e,i,a);return null==r?(t.log("getScriptExpGain",()=>`No such script '${e}' on '${a.hostname}' with args: ${Object(N.a)(i)}`),-1):r.onlineExpGained/r.onlineRunningTime}},nFormat:function(e,t){return isNaN(e)||isNaN(parseFloat(e))||"string"!=typeof t?"":R.a.format(parseFloat(e),t)},tFormat:function(e,t=!1){return Object(A.b)(e,t)},getTimeSinceLastAug:function(){return a("getTimeSinceLastAug",Object(r.c)("getTimeSinceLastAug")),h.a.playtimeSinceLastAug},alert:function(e){Object($.a)(e)},toast:function(e,t="success"){if(!["success","info","warning","error"].includes(t))throw new Error('variant must be one of "success", "info", "warning", or "error"');Y.b.emit(e,t)},prompt:function(e){return Object(I.a)(e)||(e=JSON.stringify(e)),new Promise((function(t){y.a.emit({txt:e,resolve:t})}))},wget:async function(a,n,r=t.hostname){if(!Object(g.a)(n)&&!n.endsWith(".txt"))return t.log("wget",()=>`Invalid target file: '${n}'. Must be a script or text file.`),Promise.resolve(!1);const i=X(r,"wget");return new Promise((function(o){e.get(a,(function(e){let a;return a=Object(g.a)(n)?i.writeToScriptFile(n,e):i.writeToTextFile(n,e),a.success?a.overwritten?(t.log("wget",()=>`Successfully retrieved content and overwrote '${n}' on '${r}'`),o(!0)):(t.log("wget",()=>`Successfully retrieved content to new file '${n}' on '${r}'`),o(!0)):(t.log("wget",()=>"Failed."),o(!1))}),"text").fail((function(e){return t.log("wget",()=>JSON.stringify(e)),o(!1)}))}))},getFavorToDonate:function(){return a("getFavorToDonate",Object(r.c)("getFavorToDonate")),Math.floor(s.a.BaseFavorToDonate*o.a.RepToDonateToFaction)},getOwnedSourceFiles:function(){ie.updateDynamicRam("getOwnedSourceFiles",Object(r.c)("getOwnedSourceFiles"));const e=[];for(let t=0;t[e,!0]));return fe}}).call(this,a(665))},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return s}));var n=a(136),r=a(95);function i(e,t){const a=e.organizationName;let i=null;if("string"==typeof a&&""!==a&&(i=r.a[a]),!(i instanceof n.a))return;const o=t/e.moneyMax;Math.random()0?t.requiredHacking+r:0,o=t.requiredStrength>0?t.requiredStrength+r:0,s=t.requiredDefense>0?t.requiredDefense+r:0,l=t.requiredDexterity>0?t.requiredDexterity+r:0,c=t.requiredDexterity>0?t.requiredDexterity+r:0,u=t.requiredCharisma>0?t.requiredCharisma+r:0,m=t.requiredReputation;return a?(n="Requires:
",n+=i.toString()+" hacking
",n+=o.toString()+" strength
",n+=s.toString()+" defense
",n+=l.toString()+" dexterity
",n+=c.toString()+" agility
",n+=u.toString()+" charisma
",n+=m.toString()+" reputation"):(n="(Requires ",i>0&&(n+=i+" hacking, "),o>0&&(n+=o+" strength, "),s>0&&(n+=s+" defense, "),l>0&&(n+=l+" dexterity, "),c>0&&(n+=c+" agility, "),u>0&&(n+=u+" charisma, "),m>1&&(n+=m+" reputation, "),n=n.substring(0,n.length-2),n+=")"),n}a.d(t,"a",(function(){return n}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new class{constructor(){this.positions=new Map}saveCursor(e,t){this.positions.set(e,t)}getCursor(e){const t=this.positions.get(e);return t||{row:-1,column:-1}}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),i=a(1108),o=a(1),s=a(10);function l(e){const[t,a]=Object(n.useState)(0),[l,c]=Object(n.useState)(!1);return r.a.createElement(r.a.Fragment,null,e.lines.slice(0,t).map((e,t)=>r.a.createElement(o.a,{key:t},e)),e.lines.length>t&&r.a.createElement(i.a,{key:t,text:e.lines[t],onDone:function(){const n=t+1;a(n),n>=e.lines.length&&(e.onDone&&e.auto&&e.onDone(),c(!0))}}),!e.auto&&e.onDone&&l&&r.a.createElement(s.a,{onClick:e.onDone},"Continue ..."))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return m})),a.d(t,"a",(function(){return h})),a.d(t,"c",(function(){return p}));var n=a(0),r=a.n(n),i=a(1),o=a(127),s=a(10),l=a(13),c=a(310),u=a(182);let m=!1;function h(){m=!0}function p({router:e}){return l.a.AutosaveInterval=0,Object(c.b)().then(e=>{Object(u.a)("RECOVERY.json",e)}),r.a.createElement(r.a.Fragment,null,r.a.createElement(i.a,{variant:"h3"},"RECOVERY MODE ACTIVATED"),r.a.createElement(i.a,null,"There was an error loading your save file and the game went into recovery mode. In this mode saving is disabled and the game will automatically export your save file (to prevent corruption)."),r.a.createElement(i.a,null,"At this point it is recommended to alert a developer."),r.a.createElement(o.a,{href:"https://github.com/danielyxie/bitburner/issues/new",target:"_blank"},r.a.createElement(i.a,null,"File an issue on github")),r.a.createElement(o.a,{href:"https://www.reddit.com/r/Bitburner/",target:"_blank"},r.a.createElement(i.a,null,"Make a reddit post")),r.a.createElement(o.a,{href:"https://discord.gg/TFc3hKD",target:"_blank"},r.a.createElement(i.a,null,"Post in the #bug-report channel on Discord.")),r.a.createElement(i.a,null,"Please include your save file."),r.a.createElement("br",null),r.a.createElement("br",null),r.a.createElement(i.a,null,"You can disable recovery mode now. But chances are the game will not work correctly."),r.a.createElement(s.a,{onClick:function(){m=!1,e.toTerminal()}},"DISABLE RECOVERY MODE"))}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(31);function r(e){const t=Math.max(Math.min(e,255),0);return Object(n.a)(0,t)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(31);const r={Tracking:()=>Object(n.a)(5,75)/10,"Bounty Hunter":()=>Object(n.a)(5,75)/10,Retirement:()=>Object(n.a)(5,75)/10,Investigation:()=>Object(n.a)(10,40)/10,"Undercover Operation":()=>Object(n.a)(10,40)/10,"Sting Operation":()=>Object(n.a)(3,40)/10,Raid:()=>Object(n.a)(2,40)/10,"Stealth Retirement Operation":()=>Object(n.a)(1,20)/10,Assassination:()=>Object(n.a)(1,20)/10}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(137);function r(e){const t={},a=Object.keys(n.a);for(let n=0;n=this.cards.length)throw new Error("Tried to remove invalid card from Hand by index: "+e);return new n([...this.cards.slice().splice(e,1)])}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(1),i=a(26),o=a(10);function s(e){return n.createElement(i.a,{title:null!=e.tooltip?n.createElement(r.a,null,e.tooltip):""},n.createElement(o.a,{onClick:e.onClick},e.text))}},,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(99),r=a(284),i=a(112),o=a(241),s=a(91),l=a(285),c=a(286);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class m{constructor(e={hostname:"",ip:Object(l.a)()}){u(this,"contracts",[]),u(this,"cpuCores",1),u(this,"ftpPortOpen",!1),u(this,"hasAdminRights",!1),u(this,"hostname",""),u(this,"httpPortOpen",!1),u(this,"ip",""),u(this,"isConnectedTo",!1),u(this,"maxRam",0),u(this,"messages",[]),u(this,"organizationName",""),u(this,"programs",[]),u(this,"ramUsed",0),u(this,"runningScripts",[]),u(this,"scripts",[]),u(this,"serversOnNetwork",[]),u(this,"smtpPortOpen",!1),u(this,"sqlPortOpen",!1),u(this,"sshPortOpen",!1),u(this,"textFiles",[]),u(this,"purchasedByPlayer",!1),this.ip=e.ip?e.ip:Object(l.a)(),this.hostname=e.hostname,this.organizationName=null!=e.organizationName?e.organizationName:"",this.isConnectedTo=null!=e.isConnectedTo&&e.isConnectedTo,this.hasAdminRights=null!=e.adminRights&&e.adminRights}addContract(e){this.contracts.push(e)}getContract(e){for(const t of this.contracts)if(t.fn===e)return t;return null}getRunningScript(e,t){for(const a of this.runningScripts)if(a.filename===e&&Object(c.a)(a.args,t))return a;return null}getScript(e){for(let t=0;tt.fn!==e.fn):this.contracts=this.contracts.filter(t=>t.fn!==e)}removeFile(e){if(e.endsWith(".exe")||null!=e.match(/^.+\.exe-\d+(?:\.\d*)?%-INC$/)){for(let t=0;t{p.subscribe(e=>t(e))}),null===e)return r.a.createElement(r.a.Fragment,null);function d(){null!==e&&(e.onClose(),t(null))}const f=o.d[e.c.type],g=[];for(const[t,a]of f.desc(e.c.data).split("\n").entries())g.push(r.a.createElement("span",{key:t,dangerouslySetInnerHTML:{__html:a+"
"}}));return r.a.createElement(l.a,{open:null!==e,onClose:d},r.a.createElement(s.a,{variant:"h4",value:e.c.type}),r.a.createElement(u.a,null,"You are attempting to solve a Coding Contract. You have ",e.c.getMaxNumTries()-e.c.tries," tries remaining, after which the contract will self-destruct."),r.a.createElement("br",null),r.a.createElement(u.a,null,g),r.a.createElement("br",null),r.a.createElement(m.a,{autoFocus:!0,placeholder:"Enter Solution here",value:a,onChange:function(e){c(e.target.value)},onKeyDown:function(t){if(null===e)return;const n=t.target.value;t.keyCode===i.a.ENTER&&""!==n&&(t.preventDefault(),e.onAttempt(a),d())},InputProps:{endAdornment:r.a.createElement(h.a,{onClick:()=>{e.onAttempt(a),d()}},"Solve")}}))}},,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(9),r=a(59),i=a(92);const o=[{hackDifficulty:99,hostname:"ecorp",moneyAvailable:{max:7e10,min:3e10},networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.AevumECorp,requiredHackingSkill:{max:1400,min:1050},serverGrowth:99,specialName:n.a.AevumECorp},{hackDifficulty:99,hostname:"megacorp",moneyAvailable:{max:6e10,min:4e10},networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.Sector12MegaCorp,requiredHackingSkill:{max:1350,min:1100},serverGrowth:99,specialName:n.a.Sector12MegaCorp},{hackDifficulty:{max:88,min:72},hostname:"b-and-a",moneyAvailable:{max:3e10,min:15e9},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.AevumBachmanAndAssociates,requiredHackingSkill:{max:1150,min:900},serverGrowth:{max:80,min:60},specialName:n.a.AevumBachmanAndAssociates},{hackDifficulty:{max:97,min:88},hostname:"blade",literature:[r.a.BeyondMan],maxRamExponent:{max:9,min:5},moneyAvailable:{max:4e10,min:1e10},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.Sector12BladeIndustries,requiredHackingSkill:{max:1200,min:900},serverGrowth:{max:85,min:55},specialName:n.a.Sector12BladeIndustries},{hackDifficulty:99,hostname:"nwo",literature:[r.a.TheHiddenWorld],moneyAvailable:{max:4e10,min:2e10},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.VolhavenNWO,requiredHackingSkill:{max:1300,min:950},serverGrowth:{max:95,min:65},specialName:n.a.VolhavenNWO},{hackDifficulty:{max:65,min:45},hostname:"clarkinc",literature:[r.a.BeyondMan,r.a.CostOfImmortality],moneyAvailable:{max:25e9,min:15e9},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.AevumClarkeIncorporated,requiredHackingSkill:{max:1250,min:950},serverGrowth:{max:75,min:45},specialName:n.a.AevumClarkeIncorporated},{hackDifficulty:{max:99,min:90},hostname:"omnitek",literature:[r.a.CodedIntelligence,r.a.HistoryOfSynthoids],maxRamExponent:{max:9,min:7},moneyAvailable:{max:22e9,min:13e9},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.VolhavenOmniTekIncorporated,requiredHackingSkill:{max:1100,min:900},serverGrowth:{max:99,min:95},specialName:n.a.VolhavenOmniTekIncorporated},{hackDifficulty:{max:75,min:55},hostname:"4sigma",moneyAvailable:{max:25e9,min:15e9},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.Sector12FourSigma,requiredHackingSkill:{max:1250,min:900},serverGrowth:{max:99,min:75},specialName:n.a.Sector12FourSigma},{hackDifficulty:{max:99,min:95},hostname:"kuai-gong",moneyAvailable:{max:3e10,min:2e10},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.ChongqingKuaiGongInternational,requiredHackingSkill:{max:1300,min:950},serverGrowth:{max:99,min:90},specialName:n.a.ChongqingKuaiGongInternational},{hackDifficulty:{max:97,min:83},hostname:"fulcrumtech",literature:[r.a.SimulatedReality],maxRamExponent:{max:11,min:7},moneyAvailable:{max:18e8,min:14e8},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.AevumFulcrumTechnologies,requiredHackingSkill:{max:1250,min:950},serverGrowth:{max:99,min:80},specialName:n.a.AevumFulcrumTechnologies},{hackDifficulty:99,hostname:"fulcrumassets",moneyAvailable:1e6,networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.AevumFulcrumTechnologies,requiredHackingSkill:{max:1600,min:1100},serverGrowth:1,specialName:i.a.FulcrumSecretTechnologies},{hackDifficulty:{max:92,min:78},hostname:"stormtech",moneyAvailable:{max:12e8,min:1e9},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.IshimaStormTechnologies,requiredHackingSkill:{max:1075,min:875},serverGrowth:{max:92,min:68},specialName:n.a.IshimaStormTechnologies},{hackDifficulty:{max:96,min:84},hostname:"defcomm",moneyAvailable:{max:95e7,min:8e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.NewTokyoDefComm,requiredHackingSkill:{max:1050,min:850},serverGrowth:{max:73,min:47},specialName:n.a.NewTokyoDefComm},{hackDifficulty:{max:90,min:70},hostname:"infocomm",moneyAvailable:{max:9e8,min:6e8},networkLayer:10,numOpenPortsRequired:5,organizationName:"InfoComm",requiredHackingSkill:{max:950,min:875},serverGrowth:{max:75,min:35}},{hackDifficulty:{max:95,min:85},hostname:"helios",literature:[r.a.BeyondMan],maxRamExponent:{max:8,min:5},moneyAvailable:{max:75e7,min:55e7},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.VolhavenHeliosLabs,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:80,min:70},specialName:n.a.VolhavenHeliosLabs},{hackDifficulty:{max:90,min:80},hostname:"vitalife",literature:[r.a.AGreenTomorrow],maxRamExponent:{max:7,min:4},moneyAvailable:{max:8e8,min:7e8},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.NewTokyoVitaLife,requiredHackingSkill:{max:900,min:775},serverGrowth:{max:80,min:60},specialName:n.a.NewTokyoVitaLife},{hackDifficulty:{max:95,min:85},hostname:"icarus",moneyAvailable:{max:1e9,min:9e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.Sector12IcarusMicrosystems,requiredHackingSkill:{max:925,min:850},serverGrowth:{max:95,min:85},specialName:n.a.Sector12IcarusMicrosystems},{hackDifficulty:{max:90,min:80},hostname:"univ-energy",maxRamExponent:{max:7,min:4},moneyAvailable:{max:12e8,min:11e8},networkLayer:9,numOpenPortsRequired:4,organizationName:n.a.Sector12UniversalEnergy,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:90,min:80},specialName:n.a.Sector12UniversalEnergy},{hackDifficulty:{max:80,min:70},hostname:"titan-labs",literature:[r.a.CodedIntelligence],maxRamExponent:{max:7,min:4},moneyAvailable:{max:9e8,min:75e7},networkLayer:11,numOpenPortsRequired:5,organizationName:"Titan Laboratories",requiredHackingSkill:{max:875,min:800},serverGrowth:{max:80,min:60}},{hackDifficulty:{max:75,min:65},hostname:"microdyne",literature:[r.a.SyntheticMuscles],maxRamExponent:{max:6,min:4},moneyAvailable:{max:7e8,min:5e8},networkLayer:11,numOpenPortsRequired:5,organizationName:"Microdyne Technologies",requiredHackingSkill:{max:875,min:800},serverGrowth:{max:90,min:70}},{hackDifficulty:{max:80,min:70},hostname:"taiyang-digital",literature:[r.a.AGreenTomorrow,r.a.BrighterThanTheSun],moneyAvailable:{max:9e8,min:8e8},networkLayer:10,numOpenPortsRequired:5,organizationName:"Taiyang Digital",requiredHackingSkill:{max:950,min:850},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:65,min:55},hostname:"galactic-cyber",moneyAvailable:{max:85e7,min:75e7},networkLayer:7,numOpenPortsRequired:5,organizationName:n.a.AevumGalacticCybersystems,requiredHackingSkill:{max:875,min:825},serverGrowth:{max:90,min:70},specialName:n.a.AevumGalacticCybersystems},{hackDifficulty:{max:90,min:80},hostname:"aerocorp",literature:[r.a.ManAndMachine],moneyAvailable:{max:12e8,min:1e9},networkLayer:7,numOpenPortsRequired:5,organizationName:n.a.AevumAeroCorp,requiredHackingSkill:{max:925,min:850},serverGrowth:{max:65,min:55},specialName:n.a.AevumAeroCorp},{hackDifficulty:{max:95,min:85},hostname:"omnia",literature:[r.a.HistoryOfSynthoids],maxRamExponent:{max:6,min:4},moneyAvailable:{max:1e9,min:9e8},networkLayer:8,numOpenPortsRequired:5,organizationName:n.a.VolhavenOmniaCybersystems,requiredHackingSkill:{max:950,min:850},serverGrowth:{max:70,min:60},specialName:n.a.VolhavenOmniaCybersystems},{hackDifficulty:{max:65,min:55},hostname:"zb-def",literature:[r.a.SyntheticMuscles],moneyAvailable:{max:11e8,min:9e8},networkLayer:10,numOpenPortsRequired:4,organizationName:"ZB Defense Industries",requiredHackingSkill:{max:825,min:775},serverGrowth:{max:75,min:65}},{hackDifficulty:{max:80,min:60},hostname:"applied-energetics",moneyAvailable:{max:1e9,min:7e8},networkLayer:11,numOpenPortsRequired:4,organizationName:"Applied Energetics",requiredHackingSkill:{max:850,min:775},serverGrowth:{max:75,min:70}},{hackDifficulty:{max:80,min:70},hostname:"solaris",literature:[r.a.AGreenTomorrow,r.a.TheFailedFrontier],maxRamExponent:{max:7,min:4},moneyAvailable:{max:9e8,min:7e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.ChongqingSolarisSpaceSystems,requiredHackingSkill:{max:850,min:750},serverGrowth:{max:80,min:70},specialName:n.a.ChongqingSolarisSpaceSystems},{hackDifficulty:{max:85,min:75},hostname:"deltaone",moneyAvailable:{max:17e8,min:13e8},networkLayer:8,numOpenPortsRequired:5,organizationName:n.a.Sector12DeltaOne,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:70,min:50},specialName:n.a.Sector12DeltaOne},{hackDifficulty:{max:85,min:75},hostname:"global-pharm",literature:[r.a.AGreenTomorrow],maxRamExponent:{max:6,min:3},moneyAvailable:{max:175e7,min:15e8},networkLayer:7,numOpenPortsRequired:4,organizationName:n.a.NewTokyoGlobalPharmaceuticals,requiredHackingSkill:{max:850,min:750},serverGrowth:{max:90,min:80},specialName:n.a.NewTokyoGlobalPharmaceuticals},{hackDifficulty:{max:80,min:60},hostname:"nova-med",moneyAvailable:{max:125e7,min:11e8},networkLayer:10,numOpenPortsRequired:4,organizationName:n.a.IshimaNovaMedical,requiredHackingSkill:{max:850,min:775},serverGrowth:{max:85,min:65},specialName:n.a.IshimaNovaMedical},{hackDifficulty:{max:90,min:70},hostname:"zeus-med",moneyAvailable:{max:15e8,min:13e8},networkLayer:9,numOpenPortsRequired:5,organizationName:"Zeus Medical",requiredHackingSkill:{max:850,min:800},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:80,min:70},hostname:"unitalife",maxRamExponent:{max:6,min:4},moneyAvailable:{max:11e8,min:1e9},networkLayer:8,numOpenPortsRequired:4,organizationName:"UnitaLife Group",requiredHackingSkill:{max:825,min:775},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:80,min:60},hostname:"lexo-corp",maxRamExponent:{max:7,min:4},moneyAvailable:{max:8e8,min:7e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.VolhavenLexoCorp,requiredHackingSkill:{max:750,min:650},serverGrowth:{max:65,min:55},specialName:n.a.VolhavenLexoCorp},{hackDifficulty:{max:60,min:40},hostname:"rho-construction",maxRamExponent:{max:6,min:4},moneyAvailable:{max:7e8,min:5e8},networkLayer:6,numOpenPortsRequired:3,organizationName:n.a.AevumRhoConstruction,requiredHackingSkill:{max:525,min:475},serverGrowth:{max:60,min:40},specialName:n.a.AevumRhoConstruction},{hackDifficulty:{max:70,min:50},hostname:"alpha-ent",literature:[r.a.Sector12Crime],maxRamExponent:{max:7,min:4},moneyAvailable:{max:75e7,min:6e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.Sector12AlphaEnterprises,requiredHackingSkill:{max:600,min:500},serverGrowth:{max:60,min:50},specialName:n.a.Sector12AlphaEnterprises},{hackDifficulty:{max:80,min:70},hostname:"aevum-police",maxRamExponent:{max:6,min:4},moneyAvailable:{max:4e8,min:2e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.AevumPolice,requiredHackingSkill:{max:450,min:400},serverGrowth:{max:50,min:30},specialName:n.a.AevumPolice},{hackDifficulty:{max:55,min:45},hostname:"rothman-uni",literature:[r.a.SecretSocieties,r.a.TheFailedFrontier,r.a.TensionsInTechRace],maxRamExponent:{max:7,min:4},moneyAvailable:{max:25e7,min:175e6},networkLayer:5,numOpenPortsRequired:3,organizationName:n.a.Sector12RothmanUniversity,requiredHackingSkill:{max:430,min:370},serverGrowth:{max:45,min:35},specialName:n.a.Sector12RothmanUniversity},{hackDifficulty:{max:85,min:65},hostname:"zb-institute",maxRamExponent:{max:7,min:4},moneyAvailable:{max:11e8,min:8e8},networkLayer:5,numOpenPortsRequired:5,organizationName:n.a.VolhavenZBInstituteOfTechnology,requiredHackingSkill:{max:775,min:725},serverGrowth:{max:85,min:75},specialName:n.a.VolhavenZBInstituteOfTechnology},{hackDifficulty:{max:65,min:45},hostname:"summit-uni",literature:[r.a.SecretSocieties,r.a.TheFailedFrontier,r.a.SyntheticMuscles],maxRamExponent:{max:6,min:4},moneyAvailable:{max:35e7,min:2e8},networkLayer:5,numOpenPortsRequired:3,organizationName:n.a.AevumSummitUniversity,requiredHackingSkill:{max:475,min:425},serverGrowth:{max:60,min:40},specialName:n.a.AevumSummitUniversity},{hackDifficulty:{max:80,min:60},hostname:"syscore",moneyAvailable:{max:6e8,min:4e8},networkLayer:5,numOpenPortsRequired:4,organizationName:n.a.VolhavenSysCoreSecurities,requiredHackingSkill:{max:650,min:550},serverGrowth:{max:70,min:60},specialName:n.a.VolhavenSysCoreSecurities},{hackDifficulty:{max:70,min:60},hostname:"catalyst",literature:[r.a.TensionsInTechRace],maxRamExponent:{max:7,min:4},moneyAvailable:{max:55e7,min:3e8},networkLayer:5,numOpenPortsRequired:3,organizationName:"Catalyst Ventures",requiredHackingSkill:{max:450,min:400},serverGrowth:{max:55,min:25}},{hackDifficulty:{max:45,min:35},hostname:"the-hub",maxRamExponent:{max:6,min:3},moneyAvailable:{max:2e8,min:15e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"The Hub",requiredHackingSkill:{max:325,min:275},serverGrowth:{max:55,min:45}},{hackDifficulty:{max:65,min:55},hostname:"comptek",literature:[r.a.ManAndMachine],moneyAvailable:{max:25e7,min:22e7},networkLayer:4,numOpenPortsRequired:3,organizationName:n.a.VolhavenCompuTek,requiredHackingSkill:{max:400,min:300},serverGrowth:{max:65,min:45},specialName:n.a.VolhavenCompuTek},{hackDifficulty:{max:80,min:60},hostname:"netlink",literature:[r.a.SimulatedReality],maxRamExponent:{max:7,min:4},moneyAvailable:275e6,networkLayer:4,numOpenPortsRequired:3,organizationName:n.a.AevumNetLinkTechnologies,requiredHackingSkill:{max:425,min:375},serverGrowth:{max:75,min:45},specialName:n.a.AevumNetLinkTechnologies},{hackDifficulty:{max:65,min:35},hostname:"johnson-ortho",moneyAvailable:{max:85e6,min:7e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"Johnson Orthopedics",requiredHackingSkill:{max:300,min:250},serverGrowth:{max:65,min:35}},{hackDifficulty:1,hostname:"n00dles",literature:[],maxRamExponent:2,moneyAvailable:7e4,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.NewTokyoNoodleBar,requiredHackingSkill:1,serverGrowth:3e3,specialName:n.a.NewTokyoNoodleBar},{hackDifficulty:10,hostname:"foodnstuff",literature:[r.a.Sector12Crime],maxRamExponent:4,moneyAvailable:2e6,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.Sector12FoodNStuff,requiredHackingSkill:1,serverGrowth:5,specialName:n.a.Sector12FoodNStuff},{hackDifficulty:10,hostname:"sigma-cosmetics",maxRamExponent:4,moneyAvailable:23e5,networkLayer:1,numOpenPortsRequired:0,organizationName:"Sigma Cosmetics",requiredHackingSkill:5,serverGrowth:10},{hackDifficulty:15,hostname:"joesguns",maxRamExponent:4,moneyAvailable:25e5,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.Sector12JoesGuns,requiredHackingSkill:10,serverGrowth:20,specialName:n.a.Sector12JoesGuns},{hackDifficulty:25,hostname:"zer0",maxRamExponent:5,moneyAvailable:75e5,networkLayer:2,numOpenPortsRequired:1,organizationName:"ZER0 Nightclub",requiredHackingSkill:75,serverGrowth:40},{hackDifficulty:20,hostname:"nectar-net",maxRamExponent:4,moneyAvailable:275e4,networkLayer:2,numOpenPortsRequired:0,organizationName:"Nectar Nightclub Network",requiredHackingSkill:20,serverGrowth:25},{hackDifficulty:25,hostname:"neo-net",literature:[r.a.TheHiddenWorld],maxRamExponent:5,moneyAvailable:5e6,networkLayer:3,numOpenPortsRequired:1,organizationName:"Neo Nightclub Network",requiredHackingSkill:50,serverGrowth:25},{hackDifficulty:30,hostname:"silver-helix",literature:[r.a.NewTriads],maxRamExponent:6,moneyAvailable:45e6,networkLayer:3,numOpenPortsRequired:2,organizationName:"Silver Helix",requiredHackingSkill:150,serverGrowth:30},{hackDifficulty:15,hostname:"hong-fang-tea",literature:[r.a.BrighterThanTheSun],maxRamExponent:4,moneyAvailable:3e6,networkLayer:1,numOpenPortsRequired:0,organizationName:"HongFang Teahouse",requiredHackingSkill:30,serverGrowth:20},{hackDifficulty:15,hostname:"harakiri-sushi",maxRamExponent:4,moneyAvailable:4e6,networkLayer:1,numOpenPortsRequired:0,organizationName:"HaraKiri Sushi Bar Network",requiredHackingSkill:40,serverGrowth:40},{hackDifficulty:20,hostname:"phantasy",maxRamExponent:5,moneyAvailable:24e6,networkLayer:3,numOpenPortsRequired:2,organizationName:"Phantasy Club",requiredHackingSkill:100,serverGrowth:35},{hackDifficulty:15,hostname:"max-hardware",maxRamExponent:5,moneyAvailable:1e7,networkLayer:2,numOpenPortsRequired:1,organizationName:"Max Hardware Store",requiredHackingSkill:80,serverGrowth:30},{hackDifficulty:{max:35,min:25},hostname:"omega-net",literature:[r.a.TheNewGod],maxRamExponent:5,moneyAvailable:{max:7e7,min:6e7},networkLayer:3,numOpenPortsRequired:2,organizationName:n.a.IshimaOmegaSoftware,requiredHackingSkill:{max:220,min:180},serverGrowth:{max:40,min:30},specialName:n.a.IshimaOmegaSoftware},{hackDifficulty:{max:45,min:35},hostname:"crush-fitness",moneyAvailable:{max:6e7,min:4e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"Crush Fitness",requiredHackingSkill:{max:275,min:225},serverGrowth:{max:33,min:27},specialName:n.a.AevumCrushFitnessGym},{hackDifficulty:30,hostname:"iron-gym",maxRamExponent:5,moneyAvailable:2e7,networkLayer:1,numOpenPortsRequired:1,organizationName:"Iron Gym Network",requiredHackingSkill:100,serverGrowth:20,specialName:n.a.Sector12IronGym},{hackDifficulty:{max:55,min:45},hostname:"millenium-fitness",maxRamExponent:{max:8,min:4},moneyAvailable:25e7,networkLayer:6,numOpenPortsRequired:3,organizationName:"Millenium Fitness Network",requiredHackingSkill:{max:525,min:475},serverGrowth:{max:45,min:25},specialName:n.a.VolhavenMilleniumFitnessGym},{hackDifficulty:{max:65,min:55},hostname:"powerhouse-fitness",maxRamExponent:{max:6,min:4},moneyAvailable:9e8,networkLayer:14,numOpenPortsRequired:5,organizationName:"Powerhouse Fitness",requiredHackingSkill:{max:1100,min:950},serverGrowth:{max:60,min:50},specialName:n.a.Sector12PowerhouseGym},{hackDifficulty:{max:60,min:40},hostname:"snap-fitness",moneyAvailable:45e7,networkLayer:7,numOpenPortsRequired:4,organizationName:"Snap Fitness",requiredHackingSkill:{max:800,min:675},serverGrowth:{max:60,min:40},specialName:n.a.AevumSnapFitnessGym},{hackDifficulty:0,hostname:"run4theh111z",literature:[r.a.SimulatedReality,r.a.TheNewGod],maxRamExponent:{max:9,min:5},moneyAvailable:0,networkLayer:11,numOpenPortsRequired:4,organizationName:"The Runners",requiredHackingSkill:{max:550,min:505},serverGrowth:0,specialName:i.a.BitRunnersServer},{hackDifficulty:0,hostname:"I.I.I.I",literature:[r.a.DemocracyIsDead],maxRamExponent:{max:8,min:4},moneyAvailable:0,networkLayer:5,numOpenPortsRequired:3,organizationName:"I.I.I.I",requiredHackingSkill:{max:365,min:340},serverGrowth:0,specialName:i.a.TheBlackHandServer},{hackDifficulty:0,hostname:"avmnite-02h",literature:[r.a.DemocracyIsDead],maxRamExponent:{max:7,min:4},moneyAvailable:0,networkLayer:4,numOpenPortsRequired:2,organizationName:"NiteSec",requiredHackingSkill:{max:220,min:202},serverGrowth:0,specialName:i.a.NiteSecServer},{hackDifficulty:0,hostname:".",maxRamExponent:4,moneyAvailable:0,networkLayer:13,numOpenPortsRequired:4,organizationName:".",requiredHackingSkill:{max:550,min:505},serverGrowth:0,specialName:i.a.TheDarkArmyServer},{hackDifficulty:0,hostname:"CSEC",literature:[r.a.DemocracyIsDead],maxRamExponent:3,moneyAvailable:0,networkLayer:2,numOpenPortsRequired:1,organizationName:"CyberSec",requiredHackingSkill:{max:60,min:51},serverGrowth:0,specialName:i.a.CyberSecServer},{hackDifficulty:0,hostname:"The-Cave",literature:[r.a.AlphaOmega],moneyAvailable:0,networkLayer:15,numOpenPortsRequired:5,organizationName:"Helios",requiredHackingSkill:925,serverGrowth:0,specialName:i.a.DaedalusServer},{hackDifficulty:0,hostname:"w0r1d_d43m0n",moneyAvailable:0,numOpenPortsRequired:5,organizationName:"w0r1d_d43m0n",requiredHackingSkill:3e3,serverGrowth:0,specialName:i.a.WorldDaemon}]},function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n),i=a(41),o=a(29),s=a(118),l=a(1),c=a(10);const u=new s.a;function m(){const e=o.b.Router(),[t,a]=Object(n.useState)(!1);return Object(n.useEffect)(()=>u.subscribe(()=>a(!0)),[]),r.a.createElement(i.a,{open:t,onClose:()=>a(!1)},r.a.createElement(l.a,null,"WARNING: USING THIS PROGRAM WILL CAUSE YOU TO LOSE ALL OF YOUR PROGRESS ON THE CURRENT BITNODE.",r.a.createElement("br",null),r.a.createElement("br",null),"Do you want to travel to the BitNode Nexus? This allows you to reset the current BitNode and select a new one."),r.a.createElement("br",null),r.a.createElement("br",null),r.a.createElement(c.a,{onClick:function(){e.toBitVerse(!0,!1),a(!1)}},"Travel to the BitVerse"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n);class i{constructor(e,t,a,n,r,i,o,s){this.infoText=e,this.enemies=t,this.offerHackingMission=a,this.offerHackingWork=n,this.offerFieldWork=r,this.offerSecurityWork=i,this.augmentationPriceMult=1,this.augmentationRepRequirementMult=1,this.keep=s,this.special=o}offersWork(){return this.offerFieldWork||this.offerHackingMission||this.offerHackingWork||this.offerSecurityWork}}const o={Illuminati:new i(r.a.createElement(r.a.Fragment,null,"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,!1,!1),Daedalus:new i(r.a.createElement(r.a.Fragment,null,"Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth."),[],!0,!0,!0,!1,!1,!1),"The Covenant":new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"Only then can you discover immortality."),[],!0,!0,!0,!1,!1,!1),ECorp:new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),MegaCorp:new i(r.a.createElement(r.a.Fragment,null,"MegaCorp does what no other dares to do. We imagine. We create. We invent. We create what 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.",r.a.createElement("br",null),r.a.createElement("br",null),"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,!1,!0),"Bachman & Associates":new i(r.a.createElement(r.a.Fragment,null,"Where Law and Business meet - thats where we are.",r.a.createElement("br",null),r.a.createElement("br",null),"Legal Insight - Business Instinct - Innovative Experience."),[],!0,!0,!0,!0,!1,!0),"Blade Industries":new i(r.a.createElement(r.a.Fragment,null,"Augmentation is Salvation."),[],!0,!0,!0,!0,!1,!0),NWO:new i(r.a.createElement(r.a.Fragment,null,"Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given purpose and direction in life. That is why they created God. And that is why they 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,!1,!0),"Clarke Incorporated":new i(r.a.createElement(r.a.Fragment,null,"The Power of the Genome - Unlocked."),[],!0,!0,!0,!0,!1,!0),"OmniTek Incorporated":new i(r.a.createElement(r.a.Fragment,null,"Simply put, our mission is to design and build robots that make a difference."),[],!0,!0,!0,!0,!1,!0),"Four Sigma":new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),"KuaiGong International":new i(r.a.createElement(r.a.Fragment,null,"Dream big. Work hard. Make history."),[],!0,!0,!0,!0,!1,!0),"Fulcrum Secret Technologies":new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),BitRunners:new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"Those who run the bits, run the world."),[],!0,!0,!1,!1,!1,!1),"The Black Hand":new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"So much pain. So many lives. Their darkness must end."),[],!0,!0,!0,!1,!1,!1),NiteSec:new i(r.a.createElement(r.a.Fragment,null," __..__ ",r.a.createElement("br",null)," _.nITESECNIt. ",r.a.createElement("br",null)," .-'NITESECNITESEc. ",r.a.createElement("br",null)," .' NITESECNITESECn ",r.a.createElement("br",null)," / NITESECNITESEC; ",r.a.createElement("br",null)," : :NITESECNITESEC; ",r.a.createElement("br",null)," ; $ NITESECNITESECN ",r.a.createElement("br",null)," : _, ,N'ITESECNITESEC ",r.a.createElement("br",null)," : .+^^`, : `NITESECNIT ",r.a.createElement("br",null)," ) /), `-,-=,NITESECNI ",r.a.createElement("br",null)," / ^ ,-;|NITESECN; ",r.a.createElement("br",null)," / _.' '-';NITESECN ",r.a.createElement("br",null)," ( , ,-''`^NITE' ",r.a.createElement("br",null)," )` :`. .' ",r.a.createElement("br",null)," )-- ; `- / ",r.a.createElement("br",null)," ' _.-' : ",r.a.createElement("br",null)," ( _.-' . ",r.a.createElement("br",null)," ------. ",r.a.createElement("br",null)," . ",r.a.createElement("br",null)," _.nIt ",r.a.createElement("br",null)," _.nITESECNi ",r.a.createElement("br",null)," nITESECNIT^' ",r.a.createElement("br",null)," NITE^' ___ ",r.a.createElement("br",null)," / .gP''''Tp. ",r.a.createElement("br",null)," : d' . `b ",r.a.createElement("br",null)," ; d' o `b ; ",r.a.createElement("br",null)," / d; `b| ",r.a.createElement("br",null)," /, $; @ `: ",r.a.createElement("br",null)," /' $/ ; ",r.a.createElement("br",null)," .' $/b o | ",r.a.createElement("br",null)," .' d$/$; : ",r.a.createElement("br",null)," / .d/$/$; , ; ",r.a.createElement("br",null)," d .dNITESEC $ | ",r.a.createElement("br",null)," :bp.__.gNITESEC/$ :$ ; ",r.a.createElement("br",null)," NITESECNITESECNIT /$b : ",r.a.createElement("br",null)),[],!0,!0,!1,!1,!1,!1),Aevum:new i(r.a.createElement(r.a.Fragment,null,"The Silicon City."),["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0,!1,!1),Chongqing:new i(r.a.createElement(r.a.Fragment,null,"Serve the People."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),Ishima:new i(r.a.createElement(r.a.Fragment,null,"The East Asian Order of the Future."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),"New Tokyo":new i(r.a.createElement(r.a.Fragment,null,"Asia's World City."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),"Sector-12":new i(r.a.createElement(r.a.Fragment,null,"The City of the Future."),["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0,!1,!1),Volhaven:new i(r.a.createElement(r.a.Fragment,null,"Benefit, Honor, and Glory."),["Chongqing","Sector-12","New Tokyo","Aevum","Ishima"],!0,!0,!0,!0,!1,!1),"Speakers for the Dead":new i(r.a.createElement(r.a.Fragment,null,"It is better to reign in Hell than to serve in Heaven."),[],!0,!0,!0,!0,!1,!1),"The Dark Army":new i(r.a.createElement(r.a.Fragment,null,"The World doesn't care about right or wrong. It only cares about power."),[],!0,!0,!0,!1,!1,!1),"The Syndicate":new i(r.a.createElement(r.a.Fragment,null,"Honor holds you back."),[],!0,!0,!0,!0,!1,!1),Silhouette:new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system."),[],!0,!0,!0,!1,!1,!1),Tetrads:new i(r.a.createElement(r.a.Fragment,null,"Following the mandate of Heaven and carrying out the way."),[],!1,!1,!0,!0,!1,!1),"Slum Snakes":new i(r.a.createElement(r.a.Fragment,null,"Slum Snakes rule!"),[],!1,!1,!0,!0,!1,!1),Netburners:new i(r.a.createElement(r.a.Fragment,null,"~~//*>H4CK||3T 8URN3R5**>?>\\~~"),[],!0,!0,!1,!1,!1,!1),"Tian Di Hui":new i(r.a.createElement(r.a.Fragment,null,"Obey Heaven and work righteously."),[],!0,!0,!1,!0,!1,!1),CyberSec:new i(r.a.createElement(r.a.Fragment,null,"The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse."),[],!0,!0,!1,!1,!1,!1),Bladeburners:new i(r.a.createElement(r.a.Fragment,null,"It's too bad they won't live. But then again, who does?",r.a.createElement("br",null),r.a.createElement("br",null),"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,!0,!1),"Church of the Machine God":new i(r.a.createElement(r.a.Fragment,null," `` ",r.a.createElement("br",null)," -odmmNmds: ",r.a.createElement("br",null)," `hNmo:..-omNh. ",r.a.createElement("br",null)," yMd` `hNh ",r.a.createElement("br",null)," mMd oNm ",r.a.createElement("br",null)," oMNo .mM/ ",r.a.createElement("br",null)," `dMN+ -mM+ ",r.a.createElement("br",null)," -mMNo -mN+ ",r.a.createElement("br",null)," .+- :mMNo/mN/ ",r.a.createElement("br",null),":yNMd. :NMNNN/ ",r.a.createElement("br",null),"-mMMMh. /NMMh` ",r.a.createElement("br",null)," .dMMMd. /NMMMy` ",r.a.createElement("br",null)," `yMMMd. /NNyNMMh` ",r.a.createElement("br",null)," `sMMMd. +Nm: +NMMh. ",r.a.createElement("br",null)," oMMMm- oNm: /NMMd. ",r.a.createElement("br",null)," +NMMmsMm- :mMMd. ",r.a.createElement("br",null)," /NMMMm- -mMMd. ",r.a.createElement("br",null)," /MMMm- -mMMd. ",r.a.createElement("br",null)," `sMNMMm- .mMmo ",r.a.createElement("br",null)," `sMd:hMMm. ./. ",r.a.createElement("br",null)," `yMy` `yNMd` ",r.a.createElement("br",null)," `hMs` oMMy ",r.a.createElement("br",null)," `hMh sMN- ",r.a.createElement("br",null)," /MM- .NMo ",r.a.createElement("br",null)," +MM: :MM+ ",r.a.createElement("br",null)," sNNo-.`.-omNy` ",r.a.createElement("br",null)," -smNNNNmdo- ",r.a.createElement("br",null)," `..` ",r.a.createElement("br",null),r.a.createElement("br",null),"Many cultures predict an end to humanity in the near future, a final Armageddon that will end the world; but we disagree.",r.a.createElement("br",null),r.a.createElement("br",null),"Note that for this faction, reputation can only be gained by charging Stanek's gift."),[],!1,!1,!1,!1,!0,!0)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return h}));var n=a(0),r=a.n(n),i=a(113),o=a(41),s=a(29),l=a(118),c=a(1),u=a(10);const m=new l.a;function h(){const[e,t]=Object(n.useState)(null),a=s.b.Player();return Object(n.useEffect)(()=>m.subscribe(e=>t(e)),[]),r.a.createElement(o.a,{open:null!==e,onClose:()=>t(null)},r.a.createElement(c.a,{variant:"h4"},"You have received a faction invitation."),r.a.createElement(c.a,null,"Would you like to join ",(e||{name:""}).name,"? ",r.a.createElement("br",null),r.a.createElement("br",null),"Warning: Joining this faction may prevent you from joining other factions during this run!"),r.a.createElement(u.a,{onClick:function(){if(null===e)return;-1===a.factionInvitations.findIndex(t=>t===e.name)&&console.error("Could not find faction in Player.factionInvitations"),Object(i.d)(e),t(null)}},"Join!"),r.a.createElement(u.a,{onClick:()=>t(null)},"Decide later"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(771),r=a(15);function i(e){const t=n.a[e];if(null==t)return;const a=`${t.title}
${t.txt}`;Object(r.a)(a)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a,n,r){this.name=e,this.desc=t,this.isHacking=a,this.isCombat=n,this.baseRespect=r.baseRespect?r.baseRespect:0,this.baseWanted=r.baseWanted?r.baseWanted:0,this.baseMoney=r.baseMoney?r.baseMoney:0,this.hackWeight=r.hackWeight?r.hackWeight:0,this.strWeight=r.strWeight?r.strWeight:0,this.defWeight=r.defWeight?r.defWeight:0,this.dexWeight=r.dexWeight?r.dexWeight:0,this.agiWeight=r.agiWeight?r.agiWeight:0,this.chaWeight=r.chaWeight?r.chaWeight:0,100!=Math.round(this.hackWeight+this.strWeight+this.defWeight+this.dexWeight+this.agiWeight+this.chaWeight)&&console.error(`GangMemberTask ${this.name} weights do not add up to 100`),this.difficulty=r.difficulty?r.difficulty:1,this.territory=r.territory?r.territory:{money:1,respect:1,wanted:1}}}},function(e,t,a){"use strict";function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return r}));class r{constructor(e,t){n(this,"lvl",1),n(this,"n",1),this.n=e,this.lvl=t}}},function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=[];function r(e){if(!n.find(t=>t.pid===e.pid))for(n.unshift({filename:e.name,args:e.args,pid:e.pid,timestamp:new Date,runningScript:e.scriptRef});n.length>50;)n.pop()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(255),r=function(e,t,a=0){this.sourceCode=e,this.sourceCodeLineOffset=a,"string"==typeof e&&(e=n.a(e,r.PARSE_OPTIONS)),this.ast=e,this.initFunc_=t,this.paused_=!1,this.polyfills_=[],this.functionCounter_=0,this.stepFunctions_=Object.create(null);var i,o,s=/^step([A-Z]\w*)$/;for(var l in this)"function"==typeof this[l]&&(i=l.match(s))&&(this.stepFunctions_[i[1]]=this[l].bind(this));this.global=this.createScope(this.ast,null),this.ast=n.a(this.polyfills_.join("\n"),r.PARSE_OPTIONS),this.polyfills_=void 0,this.stripLocations_(this.ast,void 0,void 0),(o=new r.State(this.ast,this.global)).done=!1,this.stateStack=[o],this.run(),this.value=void 0,this.ast=e,(o=new r.State(this.ast,this.global)).done=!1,this.stateStack.length=0,this.stateStack[0]=o,this.nodeConstructor=o.node.constructor,this.stateStack=this.stateStack};
+!function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],m=0,h=[];mObject(o.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();if(void 0!==e.player){if("number"!=typeof e.money)throw new Error("if player if provided, money should be number, contact dev");if(!e.player.canAfford(e.money))return n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}return n.createElement("span",{className:t.money},"number"==typeof e.money?r.a.formatMoney(e.money):e.money)}},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},function(e,t,a){"use strict";function n(e,t){if(null==t)return null;if("object"==typeof t&&"string"==typeof t.ctor&&void 0!==t.data){if("AllServersMap"===t.ctor)return console.warn("Converting AllServersMap for v0.43.1"),t.data;const e=n.constructors[t.ctor];if("function"==typeof e&&"function"==typeof e.fromJSON)return e.fromJSON(t)}return t}function r(e,t,a){a||(a=Object.keys(t));const n={};for(let e=0;e{let t=""+e%1e3;for(;t.length<3;)t="0"+t;return t})();let u="";return n>0&&(u+=n+" days "),i>0&&(u+=i+" hours "),s>0&&(u+=s+" minutes "),u+=(t?`${l}.${c}`:""+l)+" seconds",u}function i(e){if(!o(e))return"";if(0===e.length)return"";const t=e.concat().sort(),a=t[0],n=t[t.length-1],r=a.length;let i=0;for(;i{switch(typeof e){case"number":return e;case"object":return Object(o.a)(e.min,e.max);default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}};for(const e of r.a){const r={hostname:e.hostname,ip:g(),numOpenPortsRequired:e.numOpenPortsRequired,organizationName:e.organizationName};void 0!==e.maxRamExponent&&(r.maxRam=Math.pow(2,i(e.maxRamExponent)));for(const t of a)void 0!==e[t]&&(r[t]=i(e[t]));const o=new n.a(r);for(const t of e.literature||[])o.messages.push(t);o.hostname===c.a.WorldDaemon&&(o.requiredHackingSkill*=u.a.WorldDaemonDifficulty),y(o),void 0!==e.networkLayer&&t[i(e.networkLayer)-1].push(o)}const s=(e,t)=>{for(const r of e)a=r,n=t(),a.serversOnNetwork.push(n.hostname),n.serversOnNetwork.push(a.hostname);var a,n};s(t[0],()=>e);for(let e=1;e{return(a=t[e-1])[Math.floor(Math.random()*a.length)];var a})}function E(){for(const e in m)delete m[e];m={}}function k(e){m=JSON.parse(e,s.c)}function v(){const e=JSON.parse(JSON.stringify(m),s.c);for(const t in e){const a=e[t];for(let e=0;eObject(n.useContext)(i.Player),Router:()=>Object(n.useContext)(i.Router)}},,function(e,t,a){"use strict";function n(e,t){const a=Math.min(e,t),n=Math.max(e,t);return Math.floor(Math.random()*(n-a+1))+a}a.d(t,"a",(function(){return n}))},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a(5),i=a(24),o=a(4),s=a(16),l=a(21);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={info:"",moneyCost:0,name:"",repCost:0}){c(this,"baseCost",0),c(this,"baseRepRequirement",0),c(this,"isSpecial",!1),c(this,"level",0),c(this,"name",""),c(this,"owned",!1),c(this,"prereqs",[]),c(this,"mults",{}),c(this,"startingCost",0),this.name=e.name,this.info=e.info,this.prereqs=e.prereqs?e.prereqs:[],this.baseRepRequirement=e.repCost*r.a.AugmentationRepCost,this.baseCost=e.moneyCost*r.a.AugmentationMoneyCost,this.startingCost=this.baseCost,e.isSpecial&&(this.isSpecial=!0),this.level=0,e.hacking_mult&&(this.mults.hacking_mult=e.hacking_mult),e.strength_mult&&(this.mults.strength_mult=e.strength_mult),e.defense_mult&&(this.mults.defense_mult=e.defense_mult),e.dexterity_mult&&(this.mults.dexterity_mult=e.dexterity_mult),e.agility_mult&&(this.mults.agility_mult=e.agility_mult),e.charisma_mult&&(this.mults.charisma_mult=e.charisma_mult),e.hacking_exp_mult&&(this.mults.hacking_exp_mult=e.hacking_exp_mult),e.strength_exp_mult&&(this.mults.strength_exp_mult=e.strength_exp_mult),e.defense_exp_mult&&(this.mults.defense_exp_mult=e.defense_exp_mult),e.dexterity_exp_mult&&(this.mults.dexterity_exp_mult=e.dexterity_exp_mult),e.agility_exp_mult&&(this.mults.agility_exp_mult=e.agility_exp_mult),e.charisma_exp_mult&&(this.mults.charisma_exp_mult=e.charisma_exp_mult),e.hacking_chance_mult&&(this.mults.hacking_chance_mult=e.hacking_chance_mult),e.hacking_speed_mult&&(this.mults.hacking_speed_mult=e.hacking_speed_mult),e.hacking_money_mult&&(this.mults.hacking_money_mult=e.hacking_money_mult),e.hacking_grow_mult&&(this.mults.hacking_grow_mult=e.hacking_grow_mult),e.company_rep_mult&&(this.mults.company_rep_mult=e.company_rep_mult),e.faction_rep_mult&&(this.mults.faction_rep_mult=e.faction_rep_mult),e.crime_money_mult&&(this.mults.crime_money_mult=e.crime_money_mult),e.crime_success_mult&&(this.mults.crime_success_mult=e.crime_success_mult),e.work_money_mult&&(this.mults.work_money_mult=e.work_money_mult),e.hacknet_node_money_mult&&(this.mults.hacknet_node_money_mult=e.hacknet_node_money_mult),e.hacknet_node_purchase_cost_mult&&(this.mults.hacknet_node_purchase_cost_mult=e.hacknet_node_purchase_cost_mult),e.hacknet_node_ram_cost_mult&&(this.mults.hacknet_node_ram_cost_mult=e.hacknet_node_ram_cost_mult),e.hacknet_node_core_cost_mult&&(this.mults.hacknet_node_core_cost_mult=e.hacknet_node_core_cost_mult),e.hacknet_node_level_cost_mult&&(this.mults.hacknet_node_level_cost_mult=e.hacknet_node_level_cost_mult),e.bladeburner_max_stamina_mult&&(this.mults.bladeburner_max_stamina_mult=e.bladeburner_max_stamina_mult),e.bladeburner_stamina_gain_mult&&(this.mults.bladeburner_stamina_gain_mult=e.bladeburner_stamina_gain_mult),e.bladeburner_analysis_mult&&(this.mults.bladeburner_analysis_mult=e.bladeburner_analysis_mult),e.bladeburner_success_chance_mult&&(this.mults.bladeburner_success_chance_mult=e.bladeburner_success_chance_mult),void 0===e.stats?this.stats=function(e,t,a){const r=(e,t=0)=>e===1.0777-1?"7.77%":e===1.777-1?"77.7%":o.a.formatPercentage(e,t);let i=n.createElement(n.Fragment,null,"Effects:");return e.hacking_mult&&e.hacking_mult==e.strength_mult&&e.hacking_mult==e.defense_mult&&e.hacking_mult==e.dexterity_mult&&e.hacking_mult==e.agility_mult&&e.hacking_mult==e.charisma_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_mult-1)," all skills"):(e.hacking_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_mult-1)," hacking skill")),e.strength_mult&&e.strength_mult==e.defense_mult&&e.strength_mult==e.dexterity_mult&&e.strength_mult==e.agility_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_mult-1)," combat skills"):(e.strength_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_mult-1)," strength skill")),e.defense_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.defense_mult-1)," defense skill")),e.dexterity_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.dexterity_mult-1)," dexterity skill")),e.agility_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.agility_mult-1)," agility skill"))),e.charisma_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.charisma_mult-1)," Charisma skill"))),e.hacking_exp_mult&&e.hacking_exp_mult===e.strength_exp_mult&&e.hacking_exp_mult===e.defense_exp_mult&&e.hacking_exp_mult===e.dexterity_exp_mult&&e.hacking_exp_mult===e.agility_exp_mult&&e.hacking_exp_mult===e.charisma_exp_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," exp for all skills"):(e.hacking_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_exp_mult-1)," hacking exp")),e.strength_exp_mult&&e.strength_exp_mult===e.defense_exp_mult&&e.strength_exp_mult===e.dexterity_exp_mult&&e.strength_exp_mult===e.agility_exp_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," combat exp"):(e.strength_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.strength_exp_mult-1)," strength exp")),e.defense_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.defense_exp_mult-1)," defense exp")),e.dexterity_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.dexterity_exp_mult-1)," dexterity exp")),e.agility_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.agility_exp_mult-1)," agility exp"))),e.charisma_exp_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.charisma_exp_mult-1)," charisma exp"))),e.hacking_speed_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_speed_mult-1)," faster hack(), grow(), and weaken()")),e.hacking_chance_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_chance_mult-1)," hack() success chance")),e.hacking_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_money_mult-1)," hack() power")),e.hacking_grow_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacking_grow_mult-1)," grow() power")),e.faction_rep_mult&&e.faction_rep_mult===e.company_rep_mult?i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions and companies"):(e.faction_rep_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.faction_rep_mult-1)," reputation from factions")),e.company_rep_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.company_rep_mult-1)," reputation from companies"))),e.crime_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.crime_money_mult-1)," crime money")),e.crime_success_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.crime_success_mult-1)," crime success rate")),e.work_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.work_money_mult-1)," work money")),e.hacknet_node_money_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.hacknet_node_money_mult-1)," hacknet production")),e.hacknet_node_purchase_cost_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"-",r(-(e.hacknet_node_purchase_cost_mult-1))," hacknet nodes cost")),e.hacknet_node_level_cost_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"-",r(-(e.hacknet_node_level_cost_mult-1))," hacknet nodes upgrade cost")),e.bladeburner_max_stamina_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_max_stamina_mult-1)," Bladeburner Max Stamina")),e.bladeburner_stamina_gain_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_stamina_gain_mult-1)," Bladeburner Stamina gain")),e.bladeburner_analysis_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_analysis_mult-1)," Bladeburner Field Analysis effectiveness")),e.bladeburner_success_chance_mult&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"+",r(e.bladeburner_success_chance_mult-1)," Bladeburner Contracts and Operations success chance")),a&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"Start with ",n.createElement(s.a,{money:a})," after installing Augmentations.")),t&&(i=n.createElement(n.Fragment,null,i,n.createElement("br",null),"Start with ",t.join(" and ")," after installing Augmentations.")),i}(this.mults,e.programs,e.startingMoney):this.stats=e.stats}addToFactions(e){for(let t=0;tr.a.createElement(i.a,l({},e,{classes:{root:c().root,...e.classes}})),m=e=>r.a.createElement(o.a,l({},e,{classes:{root:c().small,...e.classes}}))},function(e,t,a){"use strict";a.d(t,"f",(function(){return n})),a.d(t,"b",(function(){return m})),a.d(t,"e",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return u}));var n,r=a(2),i=a(59),o=a(332);!function(e){e[e.Start=0]="Start",e[e.GoToCharacterPage=1]="GoToCharacterPage",e[e.CharacterPage=2]="CharacterPage",e[e.CharacterGoToTerminalPage=3]="CharacterGoToTerminalPage",e[e.TerminalIntro=4]="TerminalIntro",e[e.TerminalHelp=5]="TerminalHelp",e[e.TerminalLs=6]="TerminalLs",e[e.TerminalScan=7]="TerminalScan",e[e.TerminalScanAnalyze1=8]="TerminalScanAnalyze1",e[e.TerminalScanAnalyze2=9]="TerminalScanAnalyze2",e[e.TerminalConnect=10]="TerminalConnect",e[e.TerminalAnalyze=11]="TerminalAnalyze",e[e.TerminalNuke=12]="TerminalNuke",e[e.TerminalManualHack=13]="TerminalManualHack",e[e.TerminalHackingMechanics=14]="TerminalHackingMechanics",e[e.TerminalGoHome=15]="TerminalGoHome",e[e.TerminalCreateScript=16]="TerminalCreateScript",e[e.TerminalTypeScript=17]="TerminalTypeScript",e[e.TerminalFree=18]="TerminalFree",e[e.TerminalRunScript=19]="TerminalRunScript",e[e.TerminalGoToActiveScriptsPage=20]="TerminalGoToActiveScriptsPage",e[e.ActiveScriptsPage=21]="ActiveScriptsPage",e[e.ActiveScriptsToTerminal=22]="ActiveScriptsToTerminal",e[e.TerminalTailScript=23]="TerminalTailScript",e[e.GoToHacknetNodesPage=24]="GoToHacknetNodesPage",e[e.HacknetNodesIntroduction=25]="HacknetNodesIntroduction",e[e.HacknetNodesGoToWorldPage=26]="HacknetNodesGoToWorldPage",e[e.WorldDescription=27]="WorldDescription",e[e.TutorialPageInfo=28]="TutorialPageInfo",e[e.End=29]="End"}(n||(n={}));const s={currStep:n.Start,isRunning:!1,stepIsDone:{[n.Start]:!1,[n.GoToCharacterPage]:!1,[n.CharacterPage]:!1,[n.CharacterGoToTerminalPage]:!1,[n.TerminalIntro]:!1,[n.TerminalHelp]:!1,[n.TerminalLs]:!1,[n.TerminalScan]:!1,[n.TerminalScanAnalyze1]:!1,[n.TerminalScanAnalyze2]:!1,[n.TerminalConnect]:!1,[n.TerminalAnalyze]:!1,[n.TerminalNuke]:!1,[n.TerminalManualHack]:!1,[n.TerminalHackingMechanics]:!1,[n.TerminalGoHome]:!1,[n.TerminalCreateScript]:!1,[n.TerminalTypeScript]:!1,[n.TerminalFree]:!1,[n.TerminalRunScript]:!1,[n.TerminalGoToActiveScriptsPage]:!1,[n.ActiveScriptsPage]:!1,[n.ActiveScriptsToTerminal]:!1,[n.TerminalTailScript]:!1,[n.GoToHacknetNodesPage]:!1,[n.HacknetNodesIntroduction]:!1,[n.HacknetNodesGoToWorldPage]:!1,[n.WorldDescription]:!1,[n.TutorialPageInfo]:!1,[n.End]:!1}};function l(){s.isRunning=!0}function c(){s.stepIsDone[s.currStep]=!0,s.currStepn.Start&&(s.currStep-=1),o.a.emit()}function m(){s.isRunning=!1,s.currStep=n.Start,r.a.getHomeComputer().messages.push(i.a.HackersStartingHandbook),o.a.emit()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(126),o=a(154),s=a(652),l=a(1174),c=a(32);const u=Object(i.a)(e=>Object(o.a)({modal:{display:"flex",alignItems:"center",justifyContent:"center"},paper:{backgroundColor:e.palette.background.default,border:"2px solid "+e.palette.primary.main,boxShadow:`0px 3px 5px -1px ${e.palette.primary.dark},0px 5px 8px 0px ${e.palette.primary.dark},0px 1px 14px 0px ${e.palette.primary.dark}`,padding:2,maxWidth:"80%",maxHeight:"80%",overflow:"auto","&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"}})),m=e=>{const t=u();return r.a.createElement(s.a,{disableRestoreFocus:!0,disableScrollLock:!0,disableEnforceFocus:!0,disableAutoFocus:!0,open:e.open,onClose:e.onClose,closeAfterTransition:!0,className:t.modal},r.a.createElement(l.a,{in:e.open},r.a.createElement("div",{className:t.paper},r.a.createElement(c.a,{sx:{m:2}},e.children))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));const n=["START","PURCHASE","PRODUCTION","SALE","EXPORT"],r={INITIALSHARES:1e9,SHARESPERPRICEUPDATE:1e6,IssueNewSharesCooldown:216e3,SellSharesCooldown:18e3,CyclesPerMarketCycle:50,CyclesPerIndustryStateCycle:50/n.length,SecsPerMarketCycle:10,Cities:["Aevum","Chongqing","Sector-12","New Tokyo","Ishima","Volhaven"],WarehouseInitialCost:5e9,WarehouseInitialSize:100,WarehouseUpgradeBaseCost:1e9,OfficeInitialCost:4e9,OfficeInitialSize:3,OfficeUpgradeBaseCost:1e9,BribeThreshold:1e14,BribeToRepRatio:1e9,ProductProductionCostRatio:5,DividendMaxPercentage:1,EmployeeSalaryMultiplier:3,CyclesPerEmployeeRaise:400,EmployeeRaiseAmount:50,BaseMaxProducts:3,AllCorporationStates:n,AllMaterials:["Water","Energy","Food","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AI Cores","Real Estate"]}},function(e,t,a){"use strict";a.d(t,"bb",(function(){return Q})),a.d(t,"eb",(function(){return Z})),a.d(t,"fb",(function(){return ee})),a.d(t,"nb",(function(){return te})),a.d(t,"o",(function(){return ae})),a.d(t,"Lb",(function(){return ne})),a.d(t,"qb",(function(){return re})),a.d(t,"Z",(function(){return ie})),a.d(t,"tb",(function(){return oe})),a.d(t,"J",(function(){return se})),a.d(t,"db",(function(){return le})),a.d(t,"r",(function(){return ce})),a.d(t,"ob",(function(){return ue})),a.d(t,"H",(function(){return me})),a.d(t,"K",(function(){return he})),a.d(t,"F",(function(){return pe})),a.d(t,"G",(function(){return de})),a.d(t,"C",(function(){return fe})),a.d(t,"D",(function(){return ge})),a.d(t,"I",(function(){return ye})),a.d(t,"ib",(function(){return be})),a.d(t,"rb",(function(){return Ee})),a.d(t,"hb",(function(){return ke})),a.d(t,"Fb",(function(){return ve})),a.d(t,"gb",(function(){return _e})),a.d(t,"s",(function(){return we})),a.d(t,"Mb",(function(){return Se})),a.d(t,"A",(function(){return Ce})),a.d(t,"Gb",(function(){return xe})),a.d(t,"Ob",(function(){return Oe})),a.d(t,"B",(function(){return Me})),a.d(t,"Eb",(function(){return Te})),a.d(t,"Hb",(function(){return Re})),a.d(t,"Db",(function(){return Ae})),a.d(t,"Bb",(function(){return Pe})),a.d(t,"Ab",(function(){return Ne})),a.d(t,"Cb",(function(){return Ie})),a.d(t,"Nb",(function(){return Fe})),a.d(t,"z",(function(){return De})),a.d(t,"U",(function(){return je})),a.d(t,"T",(function(){return Be})),a.d(t,"W",(function(){return Ge})),a.d(t,"R",(function(){return Le})),a.d(t,"S",(function(){return We})),a.d(t,"P",(function(){return He})),a.d(t,"Q",(function(){return Ue})),a.d(t,"V",(function(){return qe})),a.d(t,"yb",(function(){return Ke})),a.d(t,"v",(function(){return ze})),a.d(t,"x",(function(){return $e})),a.d(t,"xb",(function(){return Ye})),a.d(t,"Ib",(function(){return Ve})),a.d(t,"w",(function(){return Je})),a.d(t,"zb",(function(){return Xe})),a.d(t,"u",(function(){return Qe})),a.d(t,"y",(function(){return Ze})),a.d(t,"vb",(function(){return et})),a.d(t,"Jb",(function(){return tt})),a.d(t,"pb",(function(){return at})),a.d(t,"ab",(function(){return nt})),a.d(t,"f",(function(){return rt})),a.d(t,"O",(function(){return it})),a.d(t,"kb",(function(){return ot})),a.d(t,"m",(function(){return st})),a.d(t,"l",(function(){return lt})),a.d(t,"e",(function(){return ct})),a.d(t,"j",(function(){return ut})),a.d(t,"g",(function(){return mt})),a.d(t,"c",(function(){return ht})),a.d(t,"b",(function(){return pt})),a.d(t,"k",(function(){return dt})),a.d(t,"a",(function(){return ft})),a.d(t,"d",(function(){return gt})),a.d(t,"h",(function(){return yt})),a.d(t,"n",(function(){return bt})),a.d(t,"i",(function(){return Et})),a.d(t,"cb",(function(){return kt})),a.d(t,"lb",(function(){return vt})),a.d(t,"mb",(function(){return _t})),a.d(t,"t",(function(){return wt})),a.d(t,"sb",(function(){return St})),a.d(t,"jb",(function(){return Ct})),a.d(t,"E",(function(){return xt})),a.d(t,"Kb",(function(){return Ot})),a.d(t,"Y",(function(){return Mt})),a.d(t,"q",(function(){return Tt})),a.d(t,"X",(function(){return Rt})),a.d(t,"M",(function(){return At})),a.d(t,"L",(function(){return Pt})),a.d(t,"N",(function(){return Nt})),a.d(t,"ub",(function(){return It})),a.d(t,"p",(function(){return Ft})),a.d(t,"wb",(function(){return Dt}));var n=a(20),r=a(140),i=a(279),o=a(6),s=a(5),l=a(99),c=a(215),u=a(61),m=a(580),h=a(452),p=a(86),d=a(28),f=a(8),g=a(60),y=a(333),b=a(77),E=a(181),k=a(24),v=a(67),_=a(137),w=a(227),S=a(23),C=a(9),x=a(293),O=a(167),M=a(287),T=a(222),R=a(27),A=a(45),P=a(119),N=a(92),I=a(1122),F=a(1123),D=a(323),j=a(74),B=a(447),G=a(356),L=a(85),W=a(4),H=a(338),U=a(15),q=a(22),K=a(104),z=a(16),$=a(0),Y=a.n($),V=a(501),J=a(253),X=a(646);function Q(){const e=Object(P.f)({adminRights:!0,hostname:"home",ip:Object(R.e)(),isConnectedTo:!0,maxRam:8,organizationName:"Home PC",purchasedByPlayer:!0});this.currentServer=N.a.Home,Object(R.a)(e),this.getHomeComputer().programs.push(g.a.NukeProgram.name)}function Z(){this.currentServer=N.a.Home,this.numPeopleKilled=0,this.karma=0,this.hacking=1,this.strength=1,this.defense=1,this.dexterity=1,this.agility=1,this.charisma=1,this.hacking_exp=0,this.strength_exp=0,this.defense_exp=0,this.dexterity_exp=0,this.agility_exp=0,this.charisma_exp=0,this.money=1e3,this.city=S.a.Sector12,this.location=C.a.TravelAgency,this.companyName="",this.jobs={},this.purchasedServers=[],this.factions=[],this.factionInvitations=[],this.queuedAugmentations=[],this.resleeves=[];const e=Math.min(3,j.a[10]+(10===this.bitNodeN?1:0))+this.sleevesFromCovenant;this.sleeves.length>e&&(this.sleeves.length=e);for(let t=this.sleeves.length;t=100?this.sleeves[e].synchronize(this):this.sleeves[e].shockRecovery(this));this.isWorking=!1,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.crimeType="",this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.lastUpdate=(new Date).getTime(),this.playtimeSinceLastAug=0,this.scriptProdSinceLastAug=0,this.moneySourceA.reset(),this.hacknetNodes.length=0,this.hashManager.prestige(),this.reapplyAllAugmentations(!0),this.hp=this.max_hp}function ee(){this.prestigeAugmentation();for(let e=0;e0?this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)):this.intelligence=0;const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}function re(){this.hacking_chance_mult=1,this.hacking_speed_mult=1,this.hacking_money_mult=1,this.hacking_grow_mult=1,this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.hacknet_node_money_mult=1,this.hacknet_node_purchase_cost_mult=1,this.hacknet_node_ram_cost_mult=1,this.hacknet_node_core_cost_mult=1,this.hacknet_node_level_cost_mult=1,this.work_money_mult=1,this.bladeburner_max_stamina_mult=1,this.bladeburner_stamina_gain_mult=1,this.bladeburner_analysis_mult=1,this.bladeburner_success_chance_mult=1}function ie(e){const t=this.getHomeComputer();if(null==t)return!1;for(let a=0;a=e}function ue(e,t){this.moneySourceA instanceof H.a||(console.warn("Player.moneySourceA was not properly initialized. Resetting"),this.moneySourceA=new H.a),this.moneySourceB instanceof H.a||(console.warn("Player.moneySourceB was not properly initialized. Resetting"),this.moneySourceB=new H.a),this.moneySourceA.record(e,t),this.moneySourceB.record(e,t)}function me(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainHackingExp()"):(this.hacking_exp+=e,this.hacking_exp<0&&(this.hacking_exp=0),this.hacking=Object(O.b)(this.hacking_exp,this.hacking_mult*s.a.HackingLevelMultiplier))}function he(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainStrengthExp()"):(this.strength_exp+=e,this.strength_exp<0&&(this.strength_exp=0),this.strength=Object(O.b)(this.strength_exp,this.strength_mult*s.a.StrengthLevelMultiplier))}function pe(e){isNaN(e)?console.error("ERR: NaN passed into player.gainDefenseExp()"):(this.defense_exp+=e,this.defense_exp<0&&(this.defense_exp=0),this.defense=Object(O.b)(this.defense_exp,this.defense_mult*s.a.DefenseLevelMultiplier))}function de(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainDexterityExp()"):(this.dexterity_exp+=e,this.dexterity_exp<0&&(this.dexterity_exp=0),this.dexterity=Object(O.b)(this.dexterity_exp,this.dexterity_mult*s.a.DexterityLevelMultiplier))}function fe(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainAgilityExp()"):(this.agility_exp+=e,this.agility_exp<0&&(this.agility_exp=0),this.agility=Object(O.b)(this.agility_exp,this.agility_mult*s.a.AgilityLevelMultiplier))}function ge(e){isNaN(e)?console.error("ERR: NaN passed into Player.gainCharismaExp()"):(this.charisma_exp+=e,this.charisma_exp<0&&(this.charisma_exp=0),this.charisma=Object(O.b)(this.charisma_exp,this.charisma_mult*s.a.CharismaLevelMultiplier))}function ye(e){isNaN(e)?console.error("ERROR: NaN passed into Player.gainIntelligenceExp()"):(j.a[5]>0||this.intelligence>0)&&(this.intelligence_exp+=e,this.intelligence=Math.floor(this.calculateSkill(this.intelligence_exp)))}function be(e){const t=e.toLowerCase();return t.includes("hack")?this.hacking:t.includes("str")?this.strength:t.includes("def")?this.defense:t.includes("dex")?this.dexterity:t.includes("agi")?this.agility:t.includes("cha")?this.charisma:t.includes("int")?this.intelligence:0}function Ee(e,t,a){this.workType!==f.a.WorkTypeFaction&&e===this.workType&&t===this.companyName||e===this.workType&&t===this.currentWorkFactionName&&a===this.factionWorkType||(this.isWorking&&this.singularityStopWork(),this.workHackExpGainRate=0,this.workStrExpGainRate=0,this.workDefExpGainRate=0,this.workDexExpGainRate=0,this.workAgiExpGainRate=0,this.workChaExpGainRate=0,this.workRepGainRate=0,this.workMoneyGainRate=0,this.workMoneyLossRate=0,this.workHackExpGained=0,this.workStrExpGained=0,this.workDefExpGained=0,this.workDexExpGained=0,this.workAgiExpGained=0,this.workChaExpGained=0,this.workRepGained=0,this.workMoneyGained=0,this.timeWorked=0,this.timeWorkedCreateProgram=0,this.currentWorkFactionName="",this.currentWorkFactionDescription="",this.createProgramName="",this.className="",this.workType="")}function ke(e=1){let t=1;this.hasAugmentation(o.a.NeuroreceptorManager)||(t=this.focus?1:f.a.BaseFocusBonus);const a=t*this.workHackExpGainRate*e,n=t*this.workStrExpGainRate*e,r=t*this.workDefExpGainRate*e,i=t*this.workDexExpGainRate*e,s=t*this.workAgiExpGainRate*e,l=t*this.workChaExpGainRate*e,c=(this.workMoneyGainRate-this.workMoneyLossRate)*e;this.gainHackingExp(a),this.gainStrengthExp(n),this.gainDefenseExp(r),this.gainDexterityExp(i),this.gainAgilityExp(s),this.gainCharismaExp(l),this.gainMoney(c,this.className?"class":"work"),this.workHackExpGained+=a,this.workStrExpGained+=n,this.workDefExpGained+=r,this.workDexExpGained+=i,this.workAgiExpGained+=s,this.workChaExpGained+=l,this.workRepGained+=t*this.workRepGainRate*e,this.workMoneyGained+=t*this.workMoneyGainRate*e,this.workMoneyGained-=t*this.workMoneyLossRate*e}function ve(e,t){this.resetWorkStatus(f.a.WorkTypeCompany,t),this.isWorking=!0,this.focus=!0,this.companyName=t,this.workType=f.a.WorkTypeCompany,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours,e.toWork()}function _e(e,t=1){this.isWorking&&(this.workType==f.a.WorkTypeFaction?this.workForFaction(t)&&e.toFaction():this.workType==f.a.WorkTypeCreateProgram?this.createProgramWork(t)&&e.toTerminal():this.workType==f.a.WorkTypeStudyClass?this.takeClass(t)&&e.toCity():this.workType==f.a.WorkTypeCrime?this.commitCrime(t)&&e.toLocation(w.a[C.a.Slums]):this.workType==f.a.WorkTypeCompanyPartTime?this.workPartTime(t)&&e.toCity():this.work(t)&&e.toCity())}function we(){const e=V.a.find(e=>e.specialName===this.companyName);if(!e)return.5;const t=Object(R.d)(e.hostname);return t instanceof A.a&&t&&t.backdoorInstalled?.75:.5}function Se(e){let t=!1;this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.processWorkEarnings(e);const a=u.a[this.companyName];return Object(B.a)(a,this.workRepGainRate,e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWork(!1),!0)}function Ce(e,t=!1){e&&(this.workRepGained*=this.cancelationPenalty());u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();let a=Y.a.createElement(Y.a.Fragment,null,"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null));if(a=e?Y.a.createElement(Y.a.Fragment,null,"You worked a short shift of ",Object(q.b)(this.timeWorked)," ",Y.a.createElement("br",null),Y.a.createElement("br",null),"Since you cancelled your work early, you only gained half of the reputation you earned. ",Y.a.createElement("br",null),Y.a.createElement("br",null),a):Y.a.createElement(Y.a.Fragment,null,"You worked a full shift of 8 hours! ",Y.a.createElement("br",null),Y.a.createElement("br",null),a),t||Object(U.a)(a),this.isWorking=!1,this.resetWorkStatus(),t){return"You worked a short shift of "+Object(q.b)(this.timeWorked)+" and earned $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp."}return""}function xe(e,t){this.resetWorkStatus(f.a.WorkTypeCompanyPartTime,t),this.isWorking=!0,this.focus=!0,this.companyName=t,this.workType=f.a.WorkTypeCompanyPartTime,this.workHackExpGainRate=this.getWorkHackExpGain(),this.workStrExpGainRate=this.getWorkStrExpGain(),this.workDefExpGainRate=this.getWorkDefExpGain(),this.workDexExpGainRate=this.getWorkDexExpGain(),this.workAgiExpGainRate=this.getWorkAgiExpGain(),this.workChaExpGainRate=this.getWorkChaExpGain(),this.workRepGainRate=this.getWorkRepGain(),this.workMoneyGainRate=this.getWorkMoneyGain(),this.timeNeededToCompleteWork=f.a.MillisecondsPer8Hours,e.toWork()}function Oe(e){let t=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer8Hours&&(t=!0,e=Math.round((f.a.MillisecondsPer8Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.workRepGainRate=this.getWorkRepGain(),this.processWorkEarnings(e),!!(t||this.timeWorked>=f.a.MillisecondsPer8Hours)&&(this.finishWorkPartTime(),!0)}function Me(e=!1){u.a[this.companyName].playerReputation+=this.workRepGained,this.updateSkillLevels();const t=Y.a.createElement(Y.a.Fragment,null,"You worked for ",Object(q.b)(this.timeWorked),Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the company ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null));if(e||Object(U.a)(t),this.isWorking=!1,this.resetWorkStatus(),e){return"You worked for "+Object(q.b)(this.timeWorked)+" and earned a total of $"+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatReputation(this.workRepGained)+" reputation, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp"}return""}function Te(){this.focus=!0}function Re(){this.focus=!1}function Ae(e,t){let a=1+t.favor/100;isNaN(a)&&(a=1),this.workRepGainRate*=a,this.workRepGainRate*=s.a.FactionWorkRepGain,this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeFaction,this.currentWorkFactionName=t.name,this.timeNeededToCompleteWork=f.a.MillisecondsPer20Hours,e.toWork()}function Pe(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkHacking),this.workHackExpGainRate=.15*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.c)(this,t),this.factionWorkType=f.a.FactionWorkHacking,this.currentWorkFactionDescription="carrying out hacking contracts",this.startFactionWork(e,t)}function Ne(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkField),this.workHackExpGainRate=.1*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.1*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.1*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.1*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.1*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=.1*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.a)(this,t),this.factionWorkType=f.a.FactionWorkField,this.currentWorkFactionDescription="carrying out field missions",this.startFactionWork(e,t)}function Ie(e,t){this.resetWorkStatus(f.a.WorkTypeFaction,t.name,f.a.FactionWorkSecurity),this.workHackExpGainRate=.05*this.hacking_exp_mult*s.a.FactionWorkExpGain,this.workStrExpGainRate=.15*this.strength_exp_mult*s.a.FactionWorkExpGain,this.workDefExpGainRate=.15*this.defense_exp_mult*s.a.FactionWorkExpGain,this.workDexExpGainRate=.15*this.dexterity_exp_mult*s.a.FactionWorkExpGain,this.workAgiExpGainRate=.15*this.agility_exp_mult*s.a.FactionWorkExpGain,this.workChaExpGainRate=0*this.charisma_exp_mult*s.a.FactionWorkExpGain,this.workRepGainRate=Object(T.b)(this,t),this.factionWorkType=f.a.FactionWorkSecurity,this.currentWorkFactionDescription="performing security detail",this.startFactionWork(e,t)}function Fe(e){const t=k.a[this.currentWorkFactionName];switch(this.factionWorkType){case f.a.FactionWorkHacking:this.workRepGainRate=Object(T.c)(this,t);break;case f.a.FactionWorkField:this.workRepGainRate=Object(T.a)(this,t);break;case f.a.FactionWorkSecurity:this.workRepGainRate=Object(T.b)(this,t)}let a=1+t.favor/100;isNaN(a)&&(a=1),this.workRepGainRate*=a,this.workRepGainRate*=s.a.FactionWorkRepGain;let n=!1;return this.timeWorked+f.a._idleSpeed*e>=f.a.MillisecondsPer20Hours&&(n=!0,e=Math.round((f.a.MillisecondsPer20Hours-this.timeWorked)/f.a._idleSpeed)),this.timeWorked+=f.a._idleSpeed*e,this.processWorkEarnings(e),!!(n||this.timeWorked>=f.a.MillisecondsPer20Hours)&&(this.finishFactionWork(!1),!0)}function De(e,t=!1){const a=k.a[this.currentWorkFactionName];if(a.playerReputation+=this.workRepGained,this.updateSkillLevels(),t||Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"You worked for your faction ",a.name," for a total of ",Object(q.b)(this.timeWorked)," ",Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),Y.a.createElement(K.a,{reputation:this.workRepGained})," reputation for the faction ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null))),this.isWorking=!1,this.resetWorkStatus(),t){return"You worked for your faction "+a.name+" for a total of "+Object(q.b)(this.timeWorked)+". You earned "+W.a.formatReputation(this.workRepGained)+" rep, "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, and "+W.a.formatExp(this.workChaExpGained)+" cha exp."}return""}function je(){let e=1;const t=u.a[this.companyName];j.a[11]>0&&(e=1+t.favor/100);const a=this.jobs[this.companyName],n=p.a[a];return null==n?(console.error(`Could not find CompanyPosition object for ${a}. Work salary will be 0`),0):n.baseSalary*t.salaryMultiplier*this.work_money_mult*s.a.CompanyWorkMoney*e}function Be(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work hack exp gain will be 0"].join(" ")),0):a.hackingExpGain*e.expMultiplier*this.hacking_exp_mult*s.a.CompanyWorkExpGain}function Ge(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work str exp gain will be 0"].join(" ")),0):a.strengthExpGain*e.expMultiplier*this.strength_exp_mult*s.a.CompanyWorkExpGain}function Le(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work def exp gain will be 0"].join(" ")),0):a.defenseExpGain*e.expMultiplier*this.defense_exp_mult*s.a.CompanyWorkExpGain}function We(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work dex exp gain will be 0"].join(" ")),0):a.dexterityExpGain*e.expMultiplier*this.dexterity_exp_mult*s.a.CompanyWorkExpGain}function He(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work agi exp gain will be 0"].join(" ")),0):a.agilityExpGain*e.expMultiplier*this.agility_exp_mult*s.a.CompanyWorkExpGain}function Ue(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];return null==e||null==a?(console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work cha exp gain will be 0"].join(" ")),0):a.charismaExpGain*e.expMultiplier*this.charisma_exp_mult*s.a.CompanyWorkExpGain}function qe(){const e=u.a[this.companyName],t=this.jobs[this.companyName],a=p.a[t];if(null==e||null==a)return console.error(["Could not find Company object for "+this.companyName,`or CompanyPosition object for ${t}.`,"Work rep gain will be 0"].join(" ")),0;let n=a.calculateJobPerformance(this.hacking,this.strength,this.defense,this.dexterity,this.agility,this.charisma);n+=this.intelligence/f.a.MaxSkillLevel;let r=1+e.favor/100;return isNaN(r)&&(r=1),n*this.company_rep_mult*r}function Ke(e,t,a,n){this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeCreateProgram,this.createProgramReqLvl=n,this.timeNeededToCompleteWork=a;for(let e=0;e=100)break;this.timeWorkedCreateProgram=n/100*this.timeNeededToCompleteWork,this.getHomeComputer().programs.splice(e,1)}}this.createProgramName=t,e.toWork()}function ze(e){const t=this.createProgramReqLvl;let a=this.hacking/t*this.getIntelligenceBonus(3);return a=1+(a-1)/5,this.timeWorked+=f.a._idleSpeed*e,this.timeWorkedCreateProgram+=f.a._idleSpeed*e*a,this.timeWorkedCreateProgram>=this.timeNeededToCompleteWork&&(this.finishCreateProgramWork(!1),!0)}function $e(e){const t=this.createProgramName;if(!1===e)Object(U.a)("You've finished creating "+t+"!
The new program can be found on your home computer."),this.getHomeComputer().programs.push(t);else{const e=t+"-"+(Math.floor(this.timeWorkedCreateProgram/this.timeNeededToCompleteWork*1e4)/100).toString()+"%-INC";this.getHomeComputer().programs.push(e)}return e||this.gainIntelligenceExp(f.a.IntelligenceProgramBaseExpGain*this.timeWorked/1e3),this.isWorking=!1,this.resetWorkStatus(),"You've finished creating "+t+"! The new program can be found on your home computer."}function Ye(e,t,a,n){this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeStudyClass,this.workCostMult=t,this.workExpMult=a,this.className=n;const r=Object(X.a)(this);this.workMoneyLossRate=r.workMoneyLossRate,this.workHackExpGainRate=r.workHackExpGainRate,this.workStrExpGainRate=r.workStrExpGainRate,this.workDefExpGainRate=r.workDefExpGainRate,this.workDexExpGainRate=r.workDexExpGainRate,this.workAgiExpGainRate=r.workAgiExpGainRate,this.workChaExpGainRate=r.workChaExpGainRate,e.toWork()}function Ve(e){this.timeWorked+=f.a._idleSpeed*e;const t=Object(X.a)(this);return this.workMoneyLossRate=t.workMoneyLossRate,this.workHackExpGainRate=t.workHackExpGainRate,this.workStrExpGainRate=t.workStrExpGainRate,this.workDefExpGainRate=t.workDefExpGainRate,this.workDexExpGainRate=t.workDexExpGainRate,this.workAgiExpGainRate=t.workAgiExpGainRate,this.workChaExpGainRate=t.workChaExpGainRate,this.processWorkEarnings(e),!1}function Je(e=!1){if(this.gainIntelligenceExp(f.a.IntelligenceClassBaseExpGain*Math.round(this.timeWorked/1e3)),this.workMoneyGained>0)throw new Error("ERR: Somehow gained money while taking class");if(this.updateSkillLevels(),e||Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"After ",this.className," for ",Object(q.b)(this.timeWorked),", ",Y.a.createElement("br",null),"you spent a total of ",Y.a.createElement(z.a,{money:-this.workMoneyGained}),". ",Y.a.createElement("br",null),Y.a.createElement("br",null),"You earned a total of: ",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking exp ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense exp ",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity exp ",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility exp ",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma exp",Y.a.createElement("br",null))),this.isWorking=!1,e){const e="After "+this.className+" for "+Object(q.b)(this.timeWorked)+", you spent a total of "+W.a.formatMoney(-1*this.workMoneyGained)+". You earned a total of: "+W.a.formatExp(this.workHackExpGained)+" hacking exp, "+W.a.formatExp(this.workStrExpGained)+" strength exp, "+W.a.formatExp(this.workDefExpGained)+" defense exp, "+W.a.formatExp(this.workDexExpGained)+" dexterity exp, "+W.a.formatExp(this.workAgiExpGained)+" agility exp, and "+W.a.formatExp(this.workChaExpGained)+" charisma exp";return this.resetWorkStatus(),e}return this.resetWorkStatus(),""}function Xe(e,t,a,n,r,i,o,l,c,u,m=null){this.crimeType=t,this.resetWorkStatus(),this.isWorking=!0,this.focus=!0,this.workType=f.a.WorkTypeCrime,null!==m&&(this.committingCrimeThruSingFn=!0,this.singFnCrimeWorkerScript=m),this.workHackExpGained=a*this.hacking_exp_mult*s.a.CrimeExpGain,this.workStrExpGained=n*this.strength_exp_mult*s.a.CrimeExpGain,this.workDefExpGained=r*this.defense_exp_mult*s.a.CrimeExpGain,this.workDexExpGained=i*this.dexterity_exp_mult*s.a.CrimeExpGain,this.workAgiExpGained=o*this.agility_exp_mult*s.a.CrimeExpGain,this.workChaExpGained=l*this.charisma_exp_mult*s.a.CrimeExpGain,this.workMoneyGained=c*this.crime_money_mult*s.a.CrimeMoney,this.timeNeededToCompleteWork=u,e.toWork()}function Qe(e){return this.timeWorked+=f.a._idleSpeed*e,this.timeWorked>=this.timeNeededToCompleteWork&&(this.finishCrime(!1),!0)}function Ze(e){if(!e){if(Object(y.a)(this,this.crimeType)){let e=null;for(const t in b.a)if(b.a[t].type==this.crimeType){e=b.a[t];break}if(null==e)return Object(U.a)(`ERR: Unrecognized crime type (${this.crimeType}). This is probably a bug please contact the developer`),"";this.gainMoney(this.workMoneyGained,"crime"),this.karma-=e.karma,this.numPeopleKilled+=e.kills,e.intelligence_exp>0&&this.gainIntelligenceExp(e.intelligence_exp),this.workHackExpGained*=2,this.workStrExpGained*=2,this.workDefExpGained*=2,this.workDexExpGained*=2,this.workAgiExpGained*=2,this.workChaExpGained*=2;const t=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==t?null==t.disableLogs.ALL&&null==t.disableLogs.commitCrime&&t.scriptRef.log("SUCCESS: Crime successful! Gained "+W.a.formatMoney(this.workMoneyGained)+", "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"Crime successful!",Y.a.createElement("br",null),Y.a.createElement("br",null),"You gained:",Y.a.createElement("br",null),Y.a.createElement(z.a,{money:this.workMoneyGained}),Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}else{this.workHackExpGained/=2,this.workStrExpGained/=2,this.workDefExpGained/=2,this.workDexExpGained/=2,this.workAgiExpGained/=2,this.workChaExpGained/=2;const e=this.singFnCrimeWorkerScript;this.committingCrimeThruSingFn&&null!==e?null==e.disableLogs.ALL&&null==e.disableLogs.commitCrime&&e.scriptRef.log("FAIL: Crime failed! Gained "+W.a.formatExp(this.workHackExpGained)+" hack exp, "+W.a.formatExp(this.workStrExpGained)+" str exp, "+W.a.formatExp(this.workDefExpGained)+" def exp, "+W.a.formatExp(this.workDexExpGained)+" dex exp, "+W.a.formatExp(this.workAgiExpGained)+" agi exp, "+W.a.formatExp(this.workChaExpGained)+" cha exp."):Object(U.a)(Y.a.createElement(Y.a.Fragment,null,"Crime failed!",Y.a.createElement("br",null),Y.a.createElement("br",null),"You gained:",Y.a.createElement("br",null),W.a.formatExp(this.workHackExpGained)," hacking experience ",Y.a.createElement("br",null),W.a.formatExp(this.workStrExpGained)," strength experience",Y.a.createElement("br",null),W.a.formatExp(this.workDefExpGained)," defense experience",Y.a.createElement("br",null),W.a.formatExp(this.workDexExpGained)," dexterity experience",Y.a.createElement("br",null),W.a.formatExp(this.workAgiExpGained)," agility experience",Y.a.createElement("br",null),W.a.formatExp(this.workChaExpGained)," charisma experience"))}this.gainHackingExp(this.workHackExpGained),this.gainStrengthExp(this.workStrExpGained),this.gainDefenseExp(this.workDefExpGained),this.gainDexterityExp(this.workDexExpGained),this.gainAgilityExp(this.workAgiExpGained),this.gainCharismaExp(this.workChaExpGained)}return this.committingCrimeThruSingFn=!1,this.singFnCrimeWorkerScript=null,this.isWorking=!1,this.crimeType="",this.resetWorkStatus(),""}function et(){if(!this.isWorking)return"";let e="";switch(this.workType){case f.a.WorkTypeStudyClass:e=this.finishClass(!0);break;case f.a.WorkTypeCompany:e=this.finishWork(!0,!0);break;case f.a.WorkTypeCompanyPartTime:e=this.finishWorkPartTime(!0);break;case f.a.WorkTypeFaction:e=this.finishFactionWork(!0,!0);break;case f.a.WorkTypeCreateProgram:e=this.finishCreateProgramWork(!0);break;case f.a.WorkTypeCrime:e=this.finishCrime(!0);break;default:return console.error(`Unrecognized work type (${this.workType})`),""}return e}function tt(e){return"number"!=typeof e?(console.warn("Player.takeDamage() called without a numeric argument: "+e),!1):(this.hp-=e,this.hp<=0&&(this.hospitalize(),!0))}function at(e){"number"==typeof e?(this.hp+=e,this.hp>this.max_hp&&(this.hp=this.max_hp)):console.warn("Player.regenerateHp() called without a numeric argument: "+e)}function nt(){const e=Object(G.b)(this);return J.b.emit("You've been Hospitalized for "+W.a.formatMoney(e),"warning"),this.loseMoney(e,"hospitalization"),this.hp=this.max_hp,e}function rt(e,t=!1){let a=null;""!==this.companyName&&(a=u.a[this.companyName]);const n=this.jobs[this.companyName],r=u.a[this.location];if(!(r instanceof c.a))return console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`),!1;let i=e;if(!this.isQualified(r,i)){const e=Object(h.a)(r,i);return t||Object(U.a)("Unforunately, you do not qualify for this position
"+e),!1}for(;;){const e=Object(m.a)(i);if(null==e)break;if(!r.hasPosition(e))break;if(!this.isQualified(r,e))break;i=e}if(null!=a&&a.name==r.name&&i.name==n){const e=Object(m.a)(i);if(null==e)return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1;if(r.hasPosition(e)){if(!t){const t=Object(h.a)(r,e);Object(U.a)("Unfortunately, you do not qualify for a promotion
"+t)}return!1}return t||Object(U.a)("You are already at the highest position for your field! No promotion available"),!1}return this.jobs[r.name]=i.name,!this.focus&&this.isWorking&&this.companyName!==this.location&&this.resetWorkStatus(),this.companyName=this.location,t||Object(U.a)("Congratulations! You were offered a new job at "+this.companyName+" as a "+i.name+"!"),!0}function it(e,t){let a=null;if(""!==this.companyName&&(a=u.a[this.companyName]),null==a||a.name!=e.name)return t;const n=this.jobs[this.companyName],r=p.a[n];return r.isSoftwareJob()&&t.isSoftwareJob()||r.isITJob()&&t.isITJob()||r.isBusinessJob()&&t.isBusinessJob()||r.isSecurityEngineerJob()&&t.isSecurityEngineerJob()||r.isNetworkEngineerJob()&&t.isNetworkEngineerJob()||r.isSecurityJob()&&t.isSecurityJob()||r.isAgentJob()&&t.isAgentJob()||r.isSoftwareConsultantJob()&&t.isSoftwareConsultantJob()||r.isBusinessConsultantJob()&&t.isBusinessConsultantJob()||r.isPartTimeJob()&&t.isPartTimeJob()?Object(m.a)(r):t}function ot(e){this.isWorking=!1,this.companyName="",delete this.jobs[e]}function st(e=!1){return this.applyForJob(p.a[d.j[0]],e)}function lt(e=!1){return this.applyForJob(p.a[d.k[0]],e)}function ct(e=!1){return this.applyForJob(p.a[d.d[0]],e)}function ut(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.i[0]])?this.applyForJob(p.a[d.i[0]],e):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function mt(e=!1){const t=u.a[this.location];if(this.isQualified(t,p.a[d.f[0]])){const t=p.a[d.f[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function ht(e=!1){return this.applyForJob(p.a[d.b[0]],e)}function pt(e=!1){return this.applyForJob(p.a[d.c[0]],e)}function dt(e=!1){return this.applyForJob(p.a[d.h[2]],e)}function ft(e=!1){const t=u.a[this.location];if(this.isQualified(t,p.a[d.a[0]])){const t=p.a[d.a[0]];return this.applyForJob(t,e)}return e||Object(U.a)("Unforunately, you do not qualify for this position"),!1}function gt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.e[1]])?(this.companyName=t.name,this.jobs[t.name]=d.e[1],e||Object(U.a)("Congratulations, you are now employed at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function yt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.g[1]])?(this.jobs[t.name]=d.g[1],e||Object(U.a)("Congratulations, you are now employed part-time at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function bt(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.e[0]])?(this.companyName=t.name,this.jobs[t.name]=d.e[0],e||Object(U.a)("Congratulations, you are now employed as a waiter at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function Et(e=!1){const t=u.a[this.location];return this.isQualified(t,p.a[d.g[0]])?(this.companyName=t.name,this.jobs[t.name]=d.g[0],e||Object(U.a)("Congratulations, you are now employed as a part-time waiter at "+this.companyName),!0):(e||Object(U.a)("Unforunately, you do not qualify for this position"),!1)}function kt(e,t){const a=e.jobStatReqOffset,n=t.requiredHacking>0?t.requiredHacking+a:0,r=t.requiredStrength>0?t.requiredStrength+a:0,i=t.requiredDefense>0?t.requiredDefense+a:0,o=t.requiredDexterity>0?t.requiredDexterity+a:0,s=t.requiredDexterity>0?t.requiredDexterity+a:0,l=t.requiredCharisma>0?t.requiredCharisma+a:0;return this.hacking>=n&&this.strength>=r&&this.defense>=i&&this.dexterity>=o&&this.agility>=s&&this.charisma>=l&&e.playerReputation>=t.requiredReputation}function vt(e=!0){e&&this.resetMultipliers();for(let e=0;et}const i=k.a.Illuminati;!i.isBanned&&!i.isMember&&!i.alreadyInvited&&t>=30&&this.money>=15e10&&this.hacking>=1500&&this.strength>=1200&&this.defense>=1200&&this.dexterity>=1200&&this.agility>=1200&&e.push(i);const o=k.a.Daedalus;!o.isBanned&&!o.isMember&&!o.alreadyInvited&&t>=Math.round(30*s.a.DaedalusAugsRequirement)&&this.money>=1e11&&(this.hacking>=2500||this.strength>=1500&&this.defense>=1500&&this.dexterity>=1500&&this.agility>=1500)&&e.push(o);const l=k.a["The Covenant"];!l.isBanned&&!l.isMember&&!l.alreadyInvited&&t>=20&&this.money>=75e9&&this.hacking>=850&&this.strength>=850&&this.defense>=850&&this.dexterity>=850&&this.agility>=850&&e.push(l);const c=k.a.ECorp;c.isBanned||c.isMember||c.alreadyInvited||!r(C.a.AevumECorp)||e.push(c);const m=k.a.MegaCorp;m.isBanned||m.isMember||m.alreadyInvited||!r(C.a.Sector12MegaCorp)||e.push(m);const h=k.a["Bachman & Associates"];h.isBanned||h.isMember||h.alreadyInvited||!r(C.a.AevumBachmanAndAssociates)||e.push(h);const p=k.a["Blade Industries"];p.isBanned||p.isMember||p.alreadyInvited||!r(C.a.Sector12BladeIndustries)||e.push(p);const d=k.a.NWO;d.isBanned||d.isMember||d.alreadyInvited||!r(C.a.VolhavenNWO)||e.push(d);const g=k.a["Clarke Incorporated"];g.isBanned||g.isMember||g.alreadyInvited||!r(C.a.AevumClarkeIncorporated)||e.push(g);const y=k.a["OmniTek Incorporated"];y.isBanned||y.isMember||y.alreadyInvited||!r(C.a.VolhavenOmniTekIncorporated)||e.push(y);const b=k.a["Four Sigma"];b.isBanned||b.isMember||b.alreadyInvited||!r(C.a.Sector12FourSigma)||e.push(b);const E=k.a["KuaiGong International"];E.isBanned||E.isMember||E.alreadyInvited||!r(C.a.ChongqingKuaiGongInternational)||e.push(E);const v=k.a["Fulcrum Secret Technologies"],_=Object(R.d)(N.a.FulcrumSecretTechnologies);if(!(_ instanceof A.a))throw new Error("Fulcrum Secret Technologies should be normal server");null==_?console.error("Could not find Fulcrum Secret Technologies Server"):v.isBanned||v.isMember||v.alreadyInvited||!_.backdoorInstalled||!r(C.a.AevumFulcrumTechnologies,25e4)||e.push(v);const w=k.a.BitRunners,x=Object(R.d)(N.a.BitRunnersServer);if(!(x instanceof A.a))throw new Error("BitRunners should be normal server");null==x?console.error("Could not find BitRunners Server"):w.isBanned||w.isMember||!x.backdoorInstalled||w.alreadyInvited||e.push(w);const O=k.a["The Black Hand"],M=Object(R.d)(N.a.TheBlackHandServer);if(!(M instanceof A.a))throw new Error("TheBlackHand should be normal server");null==M?console.error("Could not find The Black Hand Server"):O.isBanned||O.isMember||!M.backdoorInstalled||O.alreadyInvited||e.push(O);const T=k.a.NiteSec,P=Object(R.d)(N.a.NiteSecServer);if(!(P instanceof A.a))throw new Error("NiteSec should be normal server");null==P?console.error("Could not find NiteSec Server"):T.isBanned||T.isMember||!P.backdoorInstalled||T.alreadyInvited||e.push(T);const I=k.a.Chongqing;!I.isBanned&&!I.isMember&&!I.alreadyInvited&&this.money>=2e7&&this.city==S.a.Chongqing&&e.push(I);const F=k.a["Sector-12"];!F.isBanned&&!F.isMember&&!F.alreadyInvited&&this.money>=15e6&&this.city==S.a.Sector12&&e.push(F);const D=k.a["New Tokyo"];!D.isBanned&&!D.isMember&&!D.alreadyInvited&&this.money>=2e7&&this.city==S.a.NewTokyo&&e.push(D);const j=k.a.Aevum;!j.isBanned&&!j.isMember&&!j.alreadyInvited&&this.money>=4e7&&this.city==S.a.Aevum&&e.push(j);const B=k.a.Ishima;!B.isBanned&&!B.isMember&&!B.alreadyInvited&&this.money>=3e7&&this.city==S.a.Ishima&&e.push(B);const G=k.a.Volhaven;!G.isBanned&&!G.isMember&&!G.alreadyInvited&&this.money>=5e7&&this.city==S.a.Volhaven&&e.push(G);const W=k.a["Speakers for the Dead"];!W.isBanned&&!W.isMember&&!W.alreadyInvited&&this.hacking>=100&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.numPeopleKilled>=30&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(W);const H=k.a["The Dark Army"];!H.isBanned&&!H.isMember&&!H.alreadyInvited&&this.hacking>=300&&this.strength>=300&&this.defense>=300&&this.dexterity>=300&&this.agility>=300&&this.city==S.a.Chongqing&&this.numPeopleKilled>=5&&this.karma<=-45&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(H);const U=k.a["The Syndicate"];!U.isBanned&&!U.isMember&&!U.alreadyInvited&&this.hacking>=200&&this.strength>=200&&this.defense>=200&&this.dexterity>=200&&this.agility>=200&&(this.city==S.a.Aevum||this.city==S.a.Sector12)&&this.money>=1e7&&this.karma<=-90&&!a.includes(C.a.Sector12CIA)&&!a.includes(C.a.Sector12NSA)&&e.push(U);const q=k.a.Silhouette;!q.isBanned&&!q.isMember&&!q.alreadyInvited&&(n.includes("Chief Technology Officer")||n.includes("Chief Financial Officer")||n.includes("Chief Executive Officer"))&&this.money>=15e6&&this.karma<=-22&&e.push(q);const K=k.a.Tetrads;!K.isBanned&&!K.isMember&&!K.alreadyInvited&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&this.strength>=75&&this.defense>=75&&this.dexterity>=75&&this.agility>=75&&this.karma<=-18&&e.push(K);const z=k.a["Slum Snakes"];!z.isBanned&&!z.isMember&&!z.alreadyInvited&&this.strength>=30&&this.defense>=30&&this.dexterity>=30&&this.agility>=30&&this.karma<=-9&&this.money>=1e6&&e.push(z);const $=k.a.Netburners;let Y=0,V=0,J=0;for(let e=0;e=80&&Y>=8&&V>=4&&J>=100&&e.push($);const X=k.a["Tian Di Hui"];!X.isBanned&&!X.isMember&&!X.alreadyInvited&&this.money>=1e6&&this.hacking>=50&&(this.city==S.a.Chongqing||this.city==S.a.NewTokyo||this.city==S.a.Ishima)&&e.push(X);const Q=k.a.CyberSec,Z=Object(R.d)(N.a.CyberSecServer);if(!(Z instanceof A.a))throw new Error("cybersec should be normal server");return null==Z?console.error("Could not find CyberSec Server"):Q.isBanned||Q.isMember||!Z.backdoorInstalled||Q.alreadyInvited||e.push(Q),e}function St(e){this.bitNodeN=e}function Ct(e){for(const t in this.queuedAugmentations)if(this.queuedAugmentations[t].name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);for(const t in this.augmentations)if(this.augmentations[t].name==e)return void console.warn(`tried to queue ${e} twice, this may be a bug`);this.queuedAugmentations.push(new i.a(e))}function xt(e,t=1){if(null==e||null==e.type||null==e)return"No reward for this contract";switch(e.type){case l.c.FactionReputation:if(null==e.name||!(k.a[e.name]instanceof E.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseFactionRepGain*t;return k.a[e.name].playerReputation+=a,`Gained ${a} faction reputation for ${e.name}`;case l.c.FactionReputationAll:const n=f.a.CodingContractBaseFactionRepGain*t,r=["Bladeburners"],i=this.factions.slice().filter(e=>!r.includes(e));if(0==i.length)return e.type=l.c.Money,this.gainCodingContractReward(e,t);const o=Math.floor(n/i.length);for(const e of i)k.a[e]instanceof E.a&&(k.a[e].playerReputation+=o);return`Gained ${o} reputation for each of the following factions: ${i.toString()}`;case l.c.CompanyReputation:{if(null==e.name||!(u.a[e.name]instanceof c.a))return e.type=l.c.FactionReputationAll,this.gainCodingContractReward(e);const a=f.a.CodingContractBaseCompanyRepGain*t;return u.a[e.name].playerReputation+=a,`Gained ${a} company reputation for ${e.name}`}case l.c.Money:default:{const e=f.a.CodingContractBaseMoneyGain*t*s.a.CodingContractMoney;return this.gainMoney(e,"codingcontract"),"Gained "+W.a.formatMoney(e)}}}function Ot(e){return null==_.a[e]?(console.warn("Player.travel() called with invalid city: "+e),!1):(this.city=e,!0)}function Mt(e){return null==w.a[e]?(console.warn("Player.gotoLocation() called with invalid location: "+e),!1):(this.location=e,!0)}function Tt(){return 10===this.bitNodeN||j.a[10]>0}function Rt(e){this.exploits.includes(e)||(this.exploits.push(e),J.b.emit("SF -1 acquired!","success"))}function At(e){return Object(M.a)(this.intelligence,e)}function Pt(){return this.moneySourceA.casino}function Nt(e){return this.hasOwnProperty(e)?this[e]:1}function It(e,t){this.hasOwnProperty(e)&&(this[e]=t)}function Ft(){return 13===this.bitNodeN||j.a[13]>0}function Dt(e){const t=this.sourceFiles.find(t=>t.n===e);return t?t.lvl:0}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return s}));var n=a(0),r=a.n(n);const i={Corporation:r.a.createContext({}),Division:r.a.createContext({})},o=()=>Object(n.useContext)(i.Corporation),s=()=>Object(n.useContext)(i.Division)},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(486),r=a(5),i=a(763),o=a(285),s=a(21);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends n.a{constructor(e={hostname:"",ip:Object(o.a)()}){super(e),l(this,"backdoorInstalled",!1),l(this,"baseDifficulty",1),l(this,"hackDifficulty",1),l(this,"minDifficulty",1),l(this,"moneyAvailable",0),l(this,"moneyMax",0),l(this,"numOpenPortsRequired",5),l(this,"openPortCount",0),l(this,"requiredHackingSkill",1),l(this,"serverGrowth",1),this.hostname.startsWith("hacknet-node-")&&(this.hostname=Object(i.a)(10)),this.purchasedByPlayer=null!=e.purchasedByPlayer&&e.purchasedByPlayer,this.maxRam=null!=e.maxRam?e.maxRam:0,this.requiredHackingSkill=null!=e.requiredHackingSkill?e.requiredHackingSkill:1,this.moneyAvailable=null!=e.moneyAvailable?e.moneyAvailable*r.a.ServerStartingMoney:0,this.moneyMax=25*this.moneyAvailable*r.a.ServerMaxMoney,this.hackDifficulty=null!=e.hackDifficulty?e.hackDifficulty*r.a.ServerStartingSecurity:1,this.baseDifficulty=this.hackDifficulty,this.minDifficulty=Math.max(1,Math.round(this.hackDifficulty/3)),this.serverGrowth=null!=e.serverGrowth?e.serverGrowth:1,this.numOpenPortsRequired=null!=e.numOpenPortsRequired?e.numOpenPortsRequired:5}capDifficulty(){this.hackDifficulty100&&(this.hackDifficulty=100)}changeMinimumSecurity(e,t=!1){t?this.minDifficulty*=e:this.minDifficulty+=e,this.minDifficulty=Math.max(1,this.minDifficulty)}changeMaximumMoney(e){if(this.moneyMax>1e13){const t=this.moneyMax-1e13;e=1+(e-1)/Math.log(t)/Math.log(8)}this.moneyMax*=e}fortify(e){this.hackDifficulty+=e,this.capDifficulty()}weaken(e){this.hackDifficulty-=e*r.a.ServerWeakenRate,this.capDifficulty()}toJSON(){return Object(s.b)("Server",this)}static fromJSON(e){return Object(s.a)(c,e.data)}}s.c.constructors.Server=c},,,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Company=0]="Company",e[e.Gym=1]="Gym",e[e.Hospital=2]="Hospital",e[e.Slums=3]="Slums",e[e.Special=4]="Special",e[e.StockMarket=5]="StockMarket",e[e.TechVendor=6]="TechVendor",e[e.TravelAgency=7]="TravelAgency",e[e.University=8]="University",e[e.Casino=9]="Casino"}(n||(n={}))},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return u})),a.d(t,"e",(function(){return m}));var n=a(0),r=a.n(n),i=a(115),o=a(129);const s={Energy:"Energy",Utilities:"Water Utilities",Agriculture:"Agriculture",Fishing:"Fishing",Mining:"Mining",Food:"Food",Tobacco:"Tobacco",Chemical:"Chemical",Pharmaceutical:"Pharmaceutical",Computer:"Computer Hardware",Robotics:"Robotics",Software:"Software",Healthcare:"Healthcare",RealEstate:"RealEstate"},l={Energy:225e9,Utilities:15e10,Agriculture:4e10,Fishing:8e10,Mining:3e11,Food:1e10,Tobacco:2e10,Chemical:7e10,Pharmaceutical:2e11,Computer:5e11,Robotics:1e12,Software:25e9,Healthcare:75e10,RealEstate:6e11},c={Energy:e=>r.a.createElement(r.a.Fragment,null,"Engage in the production and distribution of energy.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Energy,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Utilities:e=>r.a.createElement(r.a.Fragment,null,"Distribute water and provide wastewater services.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Utilities,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Agriculture:e=>r.a.createElement(r.a.Fragment,null,"Cultivate crops and breed livestock to produce food.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Agriculture,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Fishing:e=>r.a.createElement(r.a.Fragment,null,"Produce food through the breeding and processing of fish and fish products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Fishing,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Mining:e=>r.a.createElement(r.a.Fragment,null,"Extract and process metals from the earth.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Mining,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Food:e=>r.a.createElement(r.a.Fragment,null,"Create your own restaurants all around the world.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Food,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Tobacco:e=>r.a.createElement(r.a.Fragment,null,"Create and distribute tobacco and tobacco-related products.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Tobacco,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Chemical:e=>r.a.createElement(r.a.Fragment,null,"Produce industrial chemicals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Chemical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Pharmaceutical:e=>r.a.createElement(r.a.Fragment,null,"Discover, develop, and create new pharmaceutical drugs.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Pharmaceutical,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Computer:e=>r.a.createElement(r.a.Fragment,null,"Develop and manufacture new computer hardware and networking infrastructures.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Computer,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Robotics:e=>r.a.createElement(r.a.Fragment,null,"Develop and create robots.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Robotics,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),Software:e=>r.a.createElement(r.a.Fragment,null,"Develop computer software and create AI Cores.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Software,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: YES"),Healthcare:e=>r.a.createElement(r.a.Fragment,null,"Create and manage hospitals.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.Healthcare,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO"),RealEstate:e=>r.a.createElement(r.a.Fragment,null,"Develop and manage real estate properties.",r.a.createElement("br",null),r.a.createElement("br",null),"Starting cost: ",r.a.createElement(o.a,{money:l.RealEstate,corp:e}),r.a.createElement("br",null),"Recommended starting Industry: NO")},u={Energy:Object(i.a)(),Utilities:Object(i.a)(),Agriculture:Object(i.a)(),Fishing:Object(i.a)(),Mining:Object(i.a)(),Food:Object(i.b)(),Tobacco:Object(i.b)(),Chemical:Object(i.a)(),Pharmaceutical:Object(i.b)(),Computer:Object(i.b)(),Robotics:Object(i.b)(),Software:Object(i.b)(),Healthcare:Object(i.b)(),RealEstate:Object(i.b)()};function m(){u.Energy=Object(i.a)(),u.Utilities=Object(i.a)(),u.Agriculture=Object(i.a)(),u.Fishing=Object(i.a)(),u.Mining=Object(i.a)(),u.Food=Object(i.a)(),u.Tobacco=Object(i.a)(),u.Chemical=Object(i.a)(),u.Pharmaceutical=Object(i.a)(),u.Computer=Object(i.a)(),u.Robotics=Object(i.a)(),u.Software=Object(i.a)(),u.Healthcare=Object(i.a)(),u.RealEstate=Object(i.a)()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Operations:"Operations",Engineer:"Engineer",Business:"Business",Management:"Management",RandD:"Research & Development",Training:"Training",Unassigned:"Unassigned"}},function(e,t,a){"use strict";a.d(t,"g",(function(){return f})),a.d(t,"l",(function(){return g})),a.d(t,"h",(function(){return y})),a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return E})),a.d(t,"e",(function(){return k})),a.d(t,"f",(function(){return v})),a.d(t,"d",(function(){return _})),a.d(t,"c",(function(){return w})),a.d(t,"n",(function(){return S})),a.d(t,"o",(function(){return C})),a.d(t,"k",(function(){return x})),a.d(t,"j",(function(){return O})),a.d(t,"i",(function(){return M})),a.d(t,"p",(function(){return R})),a.d(t,"m",(function(){return A}));var n=a(229),r=a(184),i=a(165),o=a(36),s=a(85),l=a(330),c=a(256),u=a(331),m=a(40),h=a(27),p=a(45),d=a(74);function f(e){return 9===e.bitNodeN||d.a[9]>0}function g(e){if(m.a.isRunning){if(m.a.currStep!==m.f.HacknetNodesIntroduction)return-1;Object(m.c)()}const t=e.hacknetNodes.length;if(f(e)){const a=E(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetServer is NaN");return!e.canAfford(a)||t>=o.b.MaxServers?-1:(e.loseMoney(a,"hacknet_expenses"),e.createHacknetServer(),R(e),t)}{const a=b(e);if(isNaN(a))throw new Error("Calculated cost of purchasing HacknetNode is NaN");if(!e.canAfford(a))return-1;const r="hacknet-node-"+t,i=new n.a(r,e.hacknet_node_money_mult);return e.loseMoney(a,"hacknet_expenses"),e.hacknetNodes.push(i),t}}function y(e){return f(e)&&e.hacknetNodes.length>=o.b.MaxServers}function b(e){return Object(r.d)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function E(e){return Object(i.f)(e.hacknetNodes.length+1,e.hacknet_node_purchase_cost_mult)}function k(e,t,a){if(null==a)throw new Error("getMaxNumberLevelUpgrades() called without maxLevel arg");if(e.moneyt.calculateLevelUpgradeCost(i,e.hacknet_node_level_cost_mult))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!==a&&e.money>t.calculateLevelUpgradeCost(o,e.hacknet_node_level_cost_mult)&&e.moneyt.calculateLevelUpgradeCost(o,e.hacknet_node_level_cost_mult)))return Math.min(i,o);n=o+1}}return 0}function v(e,t,a){if(null==a)throw new Error("getMaxNumberRamUpgrades() called without maxLevel arg");if(e.moneyt.calculateRamUpgradeCost(n,e.hacknet_node_ram_cost_mult))return n;for(let a=n-1;a>=0;--a)if(e.money>t.calculateRamUpgradeCost(a,e.hacknet_node_ram_cost_mult))return a;return 0}function _(e,t,a){if(null==a)throw new Error("getMaxNumberCoreUpgrades() called without maxLevel arg");if(e.moneyt.calculateCoreUpgradeCost(i,e.hacknet_node_core_cost_mult))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!=a&&e.money>t.calculateCoreUpgradeCost(o,e.hacknet_node_core_cost_mult)&&e.moneyt.calculateCoreUpgradeCost(o,e.hacknet_node_core_cost_mult)))return Math.min(i,o);n=o+1}}return 0}function w(e,t,a){if(null==a)throw new Error("getMaxNumberCacheUpgrades() called without maxLevel arg");if(!e.canAfford(t.calculateCacheUpgradeCost(1)))return 0;let n=1,r=a-1;const i=a-t.cache;if(e.canAfford(t.calculateCacheUpgradeCost(i)))return i;for(;n<=r;){const o=(n+r)/2|0;if(o!=a&&e.canAfford(t.calculateCacheUpgradeCost(o))&&!e.canAfford(t.calculateCacheUpgradeCost(o+1)))return Math.min(i,o);if(e.canAfford(t.calculateCacheUpgradeCost(o))){if(!e.canAfford(t.calculateCacheUpgradeCost(o)))return Math.min(i,o);n=o+1}else r=o-1}return 0}function S(e,t,a=1){const n=Math.round(a),r=t.calculateLevelUpgradeCost(n,e.hacknet_node_level_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const i=t instanceof s.a;if(t.level>=(i?o.b.MaxLevel:o.a.MaxLevel))return!1;if(t.level+n>(i?o.b.MaxLevel:o.a.MaxLevel)){return S(e,t,Math.max(0,(i?o.b.MaxLevel:o.a.MaxLevel)-t.level))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeLevel(n,e.hacknet_node_money_mult),!0)}function C(e,t,a=1){const r=Math.round(a),i=t.calculateRamUpgradeCost(r,e.hacknet_node_ram_cost_mult);if(isNaN(i)||i<=0||r<0)return!1;if(t instanceof s.a&&t.maxRam>=o.b.MaxRam)return!1;if(t instanceof n.a&&t.ram>=o.a.MaxRam)return!1;if(t instanceof s.a){if(t.maxRam*Math.pow(2,r)>o.b.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(o.b.MaxRam/t.maxRam))))}}else if(t instanceof n.a&&t.ram*Math.pow(2,r)>o.a.MaxRam){return C(e,t,Math.max(0,Math.log2(Math.round(o.a.MaxRam/t.ram))))}return!!e.canAfford(i)&&(e.loseMoney(i,"hacknet_expenses"),t.upgradeRam(r,e.hacknet_node_money_mult),!0)}function x(e,t,a=1){const n=Math.round(a),r=t.calculateCoreUpgradeCost(n,e.hacknet_node_core_cost_mult);if(isNaN(r)||r<=0||n<0)return!1;const i=t instanceof s.a;if(t.cores>=(i?o.b.MaxCores:o.a.MaxCores))return!1;if(t.cores+n>(i?o.b.MaxCores:o.a.MaxCores)){return x(e,t,Math.max(0,(i?o.b.MaxCores:o.a.MaxCores)-t.cores))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCore(n,e.hacknet_node_money_mult),!0)}function O(e,t,a=1){const n=Math.round(a),r=t.calculateCacheUpgradeCost(n);if(isNaN(r)||r<=0||n<0)return!1;if(!(t instanceof s.a))return console.warn("purchaseCacheUpgrade() called for a non-HacknetNode"),!1;if(t.cache+n>o.b.MaxCache){return O(e,t,Math.max(0,o.b.MaxCache-t.cache))}return!!e.canAfford(r)&&(e.loseMoney(r,"hacknet_expenses"),t.upgradeCache(n),!0)}function M(e,t){return 0===e.hacknetNodes.length?0:f(e)?function(e,t){if(!(e.hashManager instanceof l.a))throw new Error("Player does not have a HashManager (should be in 'hashManager' prop)");let a=0;for(let r=0;r{var t;null!=o[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),o[t.name]=new r.a(t)});for(const t in o){const a=o[t];e[t]instanceof r.a?(a.favor=e[t].favor,isNaN(a.favor)&&(a.favor=0)):a.favor=0}}function l(e){o=JSON.parse(e,i.c)}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(21);let r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}};function i(){r={"Slum Snakes":{power:1,territory:1/7},Tetrads:{power:1,territory:1/7},"The Syndicate":{power:1,territory:1/7},"The Dark Army":{power:1,territory:1/7},"Speakers for the Dead":{power:1,territory:1/7},NiteSec:{power:1,territory:1/7},"The Black Hand":{power:1,territory:1/7}}}function o(e){r=JSON.parse(e,n.c)}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.Long="L",e.Short="S"}(n||(n={}))},function(e,t,a){"use strict";let n;function r(e){switch(e){case n.HackingChance:return"+x% hack() success chance";case n.HackingSpeed:return"+x% faster hack(), grow(), and weaken()";case n.HackingMoney:return"+x% hack() power";case n.HackingGrow:return"+x% grow() power";case n.Hacking:return"+x% hacking skill";case n.Strength:return"+x% strength skill";case n.Defense:return"+x% defense skill";case n.Dexterity:return"+x% dexterity skill";case n.Agility:return"+x% agility skill";case n.Charisma:return"+x% charisma skill";case n.HacknetMoney:return"+x% hacknet production";case n.HacknetCost:return"-x% all hacknet cost";case n.Rep:return"+x% reputation from factions and companies";case n.WorkMoney:return"+x% work money";case n.Crime:return"+x% crime money";case n.Bladeburner:return"+x% all bladeburner stats"}throw new Error("Calling effect for fragment type that doesn't have an effect "+e)}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),function(e){e[e.None=0]="None",e[e.Delete=1]="Delete",e[e.HackingChance=2]="HackingChance",e[e.HackingSpeed=3]="HackingSpeed",e[e.HackingMoney=4]="HackingMoney",e[e.HackingGrow=5]="HackingGrow",e[e.Hacking=6]="Hacking",e[e.Strength=7]="Strength",e[e.Defense=8]="Defense",e[e.Dexterity=9]="Dexterity",e[e.Agility=10]="Agility",e[e.Charisma=11]="Charisma",e[e.HacknetMoney=12]="HacknetMoney",e[e.HacknetCost=13]="HacknetCost",e[e.Rep=14]="Rep",e[e.WorkMoney=15]="WorkMoney",e[e.Crime=16]="Crime",e[e.Bladeburner=17]="Bladeburner",e[e.Booster=18]="Booster"}(n||(n={}))},,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"l",(function(){return NewIndustry})),__webpack_require__.d(__webpack_exports__,"k",(function(){return NewCity})),__webpack_require__.d(__webpack_exports__,"x",(function(){return UnlockUpgrade})),__webpack_require__.d(__webpack_exports__,"h",(function(){return LevelUpgrade})),__webpack_require__.d(__webpack_exports__,"g",(function(){return IssueDividends})),__webpack_require__.d(__webpack_exports__,"o",(function(){return SellMaterial})),__webpack_require__.d(__webpack_exports__,"p",(function(){return SellProduct})),__webpack_require__.d(__webpack_exports__,"u",(function(){return SetSmartSupply})),__webpack_require__.d(__webpack_exports__,"v",(function(){return SetSmartSupplyUseLeftovers})),__webpack_require__.d(__webpack_exports__,"c",(function(){return BuyMaterial})),__webpack_require__.d(__webpack_exports__,"a",(function(){return AssignJob})),__webpack_require__.d(__webpack_exports__,"y",(function(){return UpgradeOfficeSize})),__webpack_require__.d(__webpack_exports__,"w",(function(){return ThrowParty})),__webpack_require__.d(__webpack_exports__,"m",(function(){return PurchaseWarehouse})),__webpack_require__.d(__webpack_exports__,"z",(function(){return UpgradeWarehouse})),__webpack_require__.d(__webpack_exports__,"b",(function(){return BuyCoffee})),__webpack_require__.d(__webpack_exports__,"f",(function(){return HireAdVert})),__webpack_require__.d(__webpack_exports__,"j",(function(){return MakeProduct})),__webpack_require__.d(__webpack_exports__,"n",(function(){return Research})),__webpack_require__.d(__webpack_exports__,"e",(function(){return ExportMaterial})),__webpack_require__.d(__webpack_exports__,"d",(function(){return CancelExportMaterial})),__webpack_require__.d(__webpack_exports__,"i",(function(){return LimitProductProduction})),__webpack_require__.d(__webpack_exports__,"q",(function(){return SetMaterialMarketTA1})),__webpack_require__.d(__webpack_exports__,"r",(function(){return SetMaterialMarketTA2})),__webpack_require__.d(__webpack_exports__,"s",(function(){return SetProductMarketTA1})),__webpack_require__.d(__webpack_exports__,"t",(function(){return SetProductMarketTA2}));var _IndustryData__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(51),_Industry__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(796),_data_Constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(42),_OfficeSpace__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(334),_Product__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(357),_Warehouse__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(219),_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(137),_EmployeePositions__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(52),_IndustryUpgrades__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(335),_ResearchMap__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(288);function NewIndustry(e,t,a){for(let t=0;t_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage)throw new Error("Invalid value. Must be an integer between 0 and "+_data_Constants__WEBPACK_IMPORTED_MODULE_2__.a.DividendMaxPercentage);e.dividendPercentage=100*t}function SellMaterial(mat,amt,price){""===price&&(price="0"),""===amt&&(amt="0");let cost=price.replace(/\s+/g,"");cost=cost.replace(/[^-()\d/*+.MPe]/g,"");let temp=cost.replace(/MP/g,mat.bCost+"");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell price field");if(cost.includes("MP")?mat.sCost=cost:mat.sCost=temp,amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let q=amt.replace(/\s+/g,"");q=q.replace(/[^-()\d/*+.MAXPROD]/g,"");let tempQty=q.replace(/MAX/g,"1");tempQty=tempQty.replace(/PROD/g,"1");try{tempQty=eval(tempQty)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==tempQty||isNaN(parseFloat(tempQty)))throw new Error("Invalid value or expression for sell price field");mat.sllman[0]=!0,mat.sllman[1]=q}else{if(isNaN(parseFloat(amt)))throw new Error("Invalid value for sell quantity field! Must be numeric or 'MAX'");{let e=parseFloat(amt);isNaN(e)&&(e=0),0===e?(mat.sllman[0]=!1,mat.sllman[1]=0):(mat.sllman[0]=!0,mat.sllman[1]=e)}}}function SellProduct(product,city,amt,price,all){if(price.includes("MP")){price=price.replace(/\s+/g,""),price=price.replace(/[^-()\d/*+.MP]/g,"");let temp=price.replace(/MP/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell quantity field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell quantity field.");product.sCost=price}else{const e=parseFloat(price);if(isNaN(e))throw new Error("Invalid value for sell price field");product.sCost=e}const cities=Object.keys(_Locations_Cities__WEBPACK_IMPORTED_MODULE_6__.a);if(amt=amt.toUpperCase(),amt.includes("MAX")||amt.includes("PROD")){let qty=amt.replace(/\s+/g,"");qty=qty.replace(/[^-()\d/*+.MAXPROD]/g,"");let temp=qty.replace(/MAX/g,"1");temp=temp.replace(/PROD/g,"1");try{temp=eval(temp)}catch(e){throw new Error("Invalid value or expression for sell price field: "+e)}if(null==temp||isNaN(parseFloat(temp)))throw new Error("Invalid value or expression for sell price field");if(all)for(let e=0;e]/g,""),createCity:a,designCost:r,advCost:i});if(t.products[o.name]instanceof _Product__WEBPACK_IMPORTED_MODULE_4__.a)throw new Error("You already have a product with this name!");e.funds=e.funds-(r+i),t.products[o.name]=o}function Research(e,t){const a=_IndustryData__WEBPACK_IMPORTED_MODULE_0__.c[e.type];if(void 0===a)throw new Error(`No research tree for industry '${e.type}'`);if(!a.getAllNodes().includes(t))throw new Error(`No research named '${t}'`);const n=_ResearchMap__WEBPACK_IMPORTED_MODULE_9__.a[t];if(e.sciResearch.qty{var t;null!=i[(t=e).name]&&console.warn("Duplicate Company Position being defined: "+t.name),i[t.name]=new r.a(t)})},,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(9);const r={};r[n.a.AevumECorp]="ECP",r[n.a.Sector12MegaCorp]="MGCP",r[n.a.Sector12BladeIndustries]="BLD",r[n.a.AevumClarkeIncorporated]="CLRK",r[n.a.VolhavenOmniTekIncorporated]="OMTK",r[n.a.Sector12FourSigma]="FSIG",r[n.a.ChongqingKuaiGongInternational]="KGI",r[n.a.AevumFulcrumTechnologies]="FLCM",r[n.a.IshimaStormTechnologies]="STM",r[n.a.NewTokyoDefComm]="DCOMM",r[n.a.VolhavenHeliosLabs]="HLS",r[n.a.NewTokyoVitaLife]="VITA",r[n.a.Sector12IcarusMicrosystems]="ICRS",r[n.a.Sector12UniversalEnergy]="UNV",r[n.a.AevumAeroCorp]="AERO",r[n.a.VolhavenOmniaCybersystems]="OMN",r[n.a.ChongqingSolarisSpaceSystems]="SLRS",r[n.a.NewTokyoGlobalPharmaceuticals]="GPH",r[n.a.IshimaNovaMedical]="NVMD",r[n.a.AevumWatchdogSecurity]="WDS",r[n.a.VolhavenLexoCorp]="LXO",r[n.a.AevumRhoConstruction]="RHOC",r[n.a.Sector12AlphaEnterprises]="APHE",r[n.a.VolhavenSysCoreSecurities]="SYSC",r[n.a.VolhavenCompuTek]="CTK",r[n.a.AevumNetLinkTechnologies]="NTLK",r[n.a.IshimaOmegaSoftware]="OMGA",r[n.a.Sector12FoodNStuff]="FNS",r["Sigma Cosmetics"]="SGC",r["Joes Guns"]="JGN",r["Catalyst Ventures"]="CTYS",r["Microdyne Technologies"]="MDYN",r["Titan Laboratories"]="TITN"},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(287);function i(e,t){const a=(100-e.hackDifficulty)/100,n=1.75*t.hacking,i=(n-e.requiredHackingSkill)/n*a*t.hacking_chance_mult*Object(r.a)(t.intelligence,1);return i>1?1:i<0?0:i}function o(e,t){null==e.baseDifficulty&&(e.baseDifficulty=e.hackDifficulty);let a=3;return a+=e.baseDifficulty*t.hacking_exp_mult*.3,a*n.a.HackExpGain}function s(e,t){const a=(100-e.hackDifficulty)/100*((t.hacking-(e.requiredHackingSkill-1))/t.hacking)*t.hacking_money_mult/240;return a<0?0:a>1?1:a*n.a.ScriptHackMoney}function l(e,t){let a=2.5*(e.requiredHackingSkill*e.hackDifficulty)+500;a/=t.hacking+50;return 5*a/(t.hacking_speed_mult*Object(r.a)(t.intelligence,1))}function c(e,t){return 3.2*l(e,t)}function u(e,t){return 4*l(e,t)}},,function(e,t,a){"use strict";function n(e){return e.endsWith(".js")||e.endsWith(".script")||e.endsWith(".ns")}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Home:"home",FulcrumSecretTechnologies:"fulcrumassets",CyberSecServer:"CSEC",NiteSecServer:"avmnite-02h",TheBlackHandServer:"I.I.I.I",BitRunnersServer:"run4theh111z",TheDarkArmyServer:".",DaedalusServer:"The-Cave",WorldDaemon:"w0r1d_d43m0n",DarkWeb:"darkweb"}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(695).a)},,function(e,t,a){"use strict";a.d(t,"a",(function(){return g})),a.d(t,"b",(function(){return y})),a.d(t,"j",(function(){return b})),a.d(t,"c",(function(){return E})),a.d(t,"i",(function(){return k})),a.d(t,"d",(function(){return v})),a.d(t,"f",(function(){return _})),a.d(t,"h",(function(){return w})),a.d(t,"k",(function(){return C})),a.d(t,"g",(function(){return x})),a.d(t,"e",(function(){return O}));var n=a(622),r=a(299),i=a(136),o=a(561),s=a(783),l=a(100),c=a(68),u=a(88),m=a(8),h=a(118),p=a(4),d=a(15),f=a(21);let g={lastUpdate:0,Orders:{},storedCycles:0,ticksUntilCycle:0};const y={};function b(e,t,a,o,s,l=null){if(!(e instanceof i.a))return l?l.log("stock.placeOrder",()=>`Invalid stock: '${e}'`):Object(d.a)("ERROR: Invalid stock passed to placeOrder() function"),!1;if("number"!=typeof t||"number"!=typeof a)return l?l.log("stock.placeOrder",()=>`Invalid arguments: shares='${t}' price='${a}'`):Object(d.a)("ERROR: Invalid numeric value provided for either 'shares' or 'price' argument"),!1;const c=new n.a(e.symbol,t,a,o,s);if(null==g.Orders){const e={};for(const t in g){const a=g[t];a instanceof i.a&&(e[a.symbol]=[])}g.Orders=e}g.Orders[e.symbol].push(c);const u={stockMarket:g,symbolToStockMap:y};return Object(r.a)(e,c.type,c.pos,u),!0}function E(e,t=null){if(null==g.Orders)return!1;if(e.order&&e.order instanceof n.a){const t=e.order,a=g.Orders[t.stockSymbol];for(let e=0;e=t.cap&&(o=.1,t.b=!1),isNaN(o)&&(o=.5);const s=Math.random(),u={stockMarket:g,symbolToStockMap:y};s{const t={c:this,onClose:()=>{e(c.Cancelled)},onAttempt:t=>{this.isSolution(t)?e(c.Success):e(c.Failure)}};i.a.emit(t)})}toJSON(){return Object(r.b)("CodingContract",this)}static fromJSON(e){return Object(r.a)(u,e.data)}}r.c.constructors.CodingContract=u},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e.LimitBuy="Limit Buy Order",e.LimitSell="Limit Sell Order",e.StopBuy="Stop Buy Order",e.StopSell="Stop Sell Order"}(n||(n={}))},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),i=a(126),o=a(154);const s=Object(i.a)(e=>Object(o.a)({reputation:{color:e.colors.rep}}));function l({reputation:e}){const t=s();return n.createElement("span",{className:t.reputation},"number"==typeof e?r.a.formatReputation(e):e)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return o}));var n=a(21),r=a(623);let i=new r.a;function o(e){i=e?JSON.parse(e,n.c):new r.a}},,function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return l}));var n=a(122),r=a(27);function i(e,t){return new Promise((function(a){t.delay=window.setTimeout(()=>{t.delay=null,a()},e),t.delayResolve=a}))}function o(e,t){const a=Object(r.d)(e.hostname);if(null==a)throw new Error("WorkerScript constructed with invalid server ip: "+e.hostname);return"|DELIMITER|"+a.hostname+"|DELIMITER|"+e.name+"|DELIMITER|"+t}function s(e,t,a){const n=e.scriptRef.threads;if(!a)return isNaN(n)||n<1?1:n;const r=0|a;if(isNaN(a)||r<1)throw o(e,`Invalid thread count passed to ${t}: ${a}. Threads must be a positive number.`);if(a>n)throw o(e,`Too many threads requested by ${t}. Requested: ${a}. Has: ${n}.`);return r}function l(e){if(!Object(n.a)(e))return!1;return 4==e.split("|DELIMITER|").length}},function(e,t,a){"use strict";a.d(t,"b",(function(){return fe})),a.d(t,"a",(function(){return ge}));var n=a(0),r=a.n(n),i=a(140),o=a(182),s=a(336),l=a(9),c=a(227),u=a(40),m=a(812),h=a(332),p=a(321),d=a(15),f=a(27),g=a(24),y=a(223),b=a(95),E=a(126),k=a(154),v=a(32),_=a(1),w=a(25),S=a(815),C=a(818),x=a(839),O=a(847),M=a(866),T=a(898),R=a(913),A=a(949),P=a(963),N=a(966),I=a(967),F=a(1006),D=a(1015),j=a(635),B=a(1046),G=a(358),L=a(543),W=a(1064),H=a(1065),U=a(1071),q=a(1072),K=a(359),z=a(1085),$=a(1095),Y=a(542),V=a(1097),J=a(1106),X=a(1109),Q=a(105),Z=a(1114),ee=a(1118),te=a(163),ae=a(1119),ne=a(253),re=a(201),ie=a(355),oe=a(511),se=a(504),le=a(267),ce=a(29),ue=a(456);const me=location,he=Object(E.a)(e=>Object(k.a)({root:{"-ms-overflow-style":"none","scrollbar-width":"none",margin:e.spacing(0)}}));let pe="",de="",fe={page:()=>{throw new Error("Router called before initialization")},toActiveScripts:()=>{throw new Error("Router called before initialization")},toAugmentations:()=>{throw new Error("Router called before initialization")},toBitVerse:()=>{throw new Error("Router called before initialization")},toBladeburner:()=>{throw new Error("Router called before initialization")},toStats:()=>{throw new Error("Router called before initialization")},toCity:()=>{throw new Error("Router called before initialization")},toCorporation:()=>{throw new Error("Router called before initialization")},toCreateProgram:()=>{throw new Error("Router called before initialization")},toDevMenu:()=>{throw new Error("Router called before initialization")},toFaction:()=>{throw new Error("Router called before initialization")},toFactions:()=>{throw new Error("Router called before initialization")},toGameOptions:()=>{throw new Error("Router called before initialization")},toGang:()=>{throw new Error("Router called before initialization")},toHacknetNodes:()=>{throw new Error("Router called before initialization")},toInfiltration:()=>{throw new Error("Router called before initialization")},toJob:()=>{throw new Error("Router called before initialization")},toMilestones:()=>{throw new Error("Router called before initialization")},toResleeves:()=>{throw new Error("Router called before initialization")},toScriptEditor:()=>{throw new Error("Router called before initialization")},toSleeves:()=>{throw new Error("Router called before initialization")},toStockMarket:()=>{throw new Error("Router called before initialization")},toTerminal:()=>{throw new Error("Router called before initialization")},toTravel:()=>{throw new Error("Router called before initialization")},toTutorial:()=>{throw new Error("Router called before initialization")},toWork:()=>{throw new Error("Router called before initialization")},toBladeburnerCinematic:()=>{throw new Error("Router called before initialization")},toLocation:()=>{throw new Error("Router called before initialization")},toStaneksGift:()=>{throw new Error("Router called before initialization")}};function ge({player:e,engine:t,terminal:a}){const E=he(),[k,ge]=Object(n.useState)(function(e){return ue.b?w.a.Recovery:e.isWorking?w.a.Work:w.a.Terminal}(e)),ye=Object(n.useState)(0)[1],[be,Ee]=Object(n.useState)(e.currentWorkFactionName?g.a[e.currentWorkFactionName]:void 0);if(void 0===be&&k===w.a.Faction)throw new Error("Trying to go to a page without the proper setup");const[ke,ve]=Object(n.useState)(!1),[_e,we]=Object(n.useState)(!1),[Se,Ce]=Object(n.useState)(void 0);if(void 0===Se&&(k===w.a.Infiltration||k===w.a.Location||k===w.a.Job))throw new Error("Trying to go to a page without the proper setup");const[xe,Oe]=Object(n.useState)("");function Me(){ye(e=>e+1)}function Te(){for(const e of Object(f.c)())e.runningScripts=[];o.c.saveGame(),setTimeout(()=>me.reload(),2e3)}return Object(n.useEffect)(()=>h.a.subscribe(Me),[]),fe={page:()=>k,toActiveScripts:()=>ge(w.a.ActiveScripts),toAugmentations:()=>ge(w.a.Augmentations),toBladeburner:()=>ge(w.a.Bladeburner),toStats:()=>ge(w.a.Stats),toCorporation:()=>ge(w.a.Corporation),toCreateProgram:()=>ge(w.a.CreateProgram),toDevMenu:()=>ge(w.a.DevMenu),toFaction:e=>{ge(w.a.Faction),e&&Ee(e)},toFactions:()=>ge(w.a.Factions),toGameOptions:()=>ge(w.a.Options),toGang:()=>ge(w.a.Gang),toHacknetNodes:()=>ge(w.a.Hacknet),toMilestones:()=>ge(w.a.Milestones),toResleeves:()=>ge(w.a.Resleeves),toScriptEditor:(e,t)=>{pe=e,de=t,ge(w.a.ScriptEditor)},toSleeves:()=>ge(w.a.Sleeves),toStockMarket:()=>ge(w.a.StockMarket),toTerminal:()=>ge(w.a.Terminal),toTutorial:()=>ge(w.a.Tutorial),toJob:()=>{Ce(c.a[e.companyName]),ge(w.a.Job)},toCity:()=>{ge(w.a.City)},toTravel:()=>{e.gotoLocation(l.a.TravelAgency),ge(w.a.Travel)},toBitVerse:(e,t)=>{ve(e),we(t),ge(w.a.BitVerse)},toInfiltration:e=>{Ce(e),ge(w.a.Infiltration)},toWork:()=>ge(w.a.Work),toBladeburnerCinematic:()=>{ge(w.a.BladeburnerCinematic),Oe(xe)},toLocation:e=>{Ce(e),ge(w.a.Location)},toStaneksGift:()=>{ge(w.a.StaneksGift)}},Object(n.useEffect)(()=>{pe="",de="",k!==w.a.Terminal&&window.scrollTo(0,0)}),r.a.createElement(ce.a.Player.Provider,{value:e},r.a.createElement(ce.a.Router.Provider,{value:fe},r.a.createElement(ne.c,null,r.a.createElement(S.a,null,u.a.isRunning?r.a.createElement(m.a,null):r.a.createElement(Z.a,{save:()=>o.c.saveGame(),killScripts:Te})),k===w.a.Recovery?r.a.createElement(ue.c,{router:fe}):k===w.a.BitVerse?r.a.createElement(J.a,{flume:ke,enter:le.a,quick:_e}):k===w.a.Infiltration?r.a.createElement(A.a,{location:Se}):k===w.a.BladeburnerCinematic?r.a.createElement(ee.a,null):k===w.a.Work?r.a.createElement(N.a,null):r.a.createElement(v.a,{display:"flex",flexDirection:"row",width:"100%"},r.a.createElement(C.a,{player:e,router:fe,page:k}),r.a.createElement(v.a,{className:E.root,flexGrow:1,display:"block",px:1,height:"100vh"},k===w.a.Terminal?r.a.createElement(H.a,{terminal:a,router:fe,player:e}):k===w.a.Sleeves?r.a.createElement(F.a,null):k===w.a.StaneksGift?r.a.createElement(X.a,{staneksGift:Q.b}):k===w.a.Stats?r.a.createElement($.a,null):k===w.a.ScriptEditor?r.a.createElement(L.a,{filename:pe,code:de,hostname:e.getCurrentServer().hostname,player:e,router:fe}):k===w.a.ActiveScripts?r.a.createElement(q.a,{workerScripts:te.a}):k===w.a.Hacknet?r.a.createElement(D.a,{player:e}):k===w.a.CreateProgram?r.a.createElement(G.a,null):k===w.a.Factions?r.a.createElement(K.a,{player:e,router:fe}):k===w.a.Faction?r.a.createElement(z.a,{faction:be}):k===w.a.Milestones?r.a.createElement(W.a,{player:e}):k===w.a.Tutorial?r.a.createElement(U.a,null):k===w.a.DevMenu?r.a.createElement(O.a,{player:e,engine:t,router:fe}):k===w.a.Gang?r.a.createElement(T.a,null):k===w.a.Corporation?r.a.createElement(R.a,null):k===w.a.Bladeburner?r.a.createElement(M.a,null):k===w.a.Resleeves?r.a.createElement(P.a,null):k===w.a.Travel?r.a.createElement(Y.a,{p:e,router:fe}):k===w.a.StockMarket?r.a.createElement(V.a,{buyStockLong:y.a,buyStockShort:y.d,cancelOrder:b.c,eventEmitterForReset:b.e,initStockMarket:b.g,p:e,placeOrder:b.j,sellStockLong:y.c,sellStockShort:y.b,stockMarket:b.a}):k===w.a.City?r.a.createElement(B.a,null):k===w.a.Job||k===w.a.Location?r.a.createElement(j.a,{loc:Se}):k===w.a.Options?r.a.createElement(I.a,{player:e,save:()=>o.c.saveGame(),export:()=>o.c.exportGame(),forceKill:Te,softReset:()=>{Object(d.a)("Soft Reset!"),Object(p.a)(),fe.toTerminal()}}):k===w.a.Augmentations?r.a.createElement(x.a,{exportGameFn:()=>{o.c.exportGame(),Object(s.c)(e)},installAugmentationsFn:()=>{Object(i.d)(),fe.toTerminal()}}):r.a.createElement(r.a.Fragment,null,r.a.createElement(_.a,null,"Cannot load")))),r.a.createElement(ae.a,null),r.a.createElement(re.c,null),r.a.createElement(ie.b,null),r.a.createElement(oe.b,null),r.a.createElement(se.b,null),r.a.createElement(ne.a,null))))}},,,,function(e,t,a){"use strict";function n(e){return e.startsWith("/")?e.slice(1):e}function r(e){return e.endsWith("/")?e.slice(0,-1):e}function i(e){return null!=e.match(/^[.a-zA-Z0-9_-]+[.][a-zA-Z0-9]+(?:-\d+(?:\.\d*)?%-INC)?$/)}function o(e){let t=e;if(0===t.length)return!1;if(1===t.length)return"/"===t;if(!t.startsWith("/"))return!1;t=t.slice(1),t=r(t);const a=t.split("/");for(const e of a)if("."!==e&&".."!==e&&null==e.match(/^.?[a-zA-Z0-9_-]+$/))return!1;return!0}function s(e){if(null==e||"string"!=typeof e)return!1;const t=e;if(t.length<3)return!1;if(t.endsWith("/"))return!1;const a=t.lastIndexOf("/");if(-1===a)return i(t);const n=t.slice(a+1);return o(t.slice(0,a+1))&&i(n)}function l(e){let t=e;if(t=n(t),t=r(t),-1===t.lastIndexOf("/"))return"/";const a=t.split("/");return 0===a.length?"/":a[0]+"/"}function c(e){const t=e,a=t.lastIndexOf("/");return-1===a?"":t.slice(0,a+1)}function u(e){return!!s(e)&&(null!=e&&0!==e.length&&e.lastIndexOf("/")<=0)}function m(e,t){let a=e;if(a.startsWith("/")||null==t||(a=t+(t.endsWith("/")?"":"/")+a),!o(a))return null;a=n(a),a=r(a);const i=a.split("/"),s=[];for(const e of i)if("."!==e)if(".."===e){if(null==s.pop())return null}else s.push(e);return"/"+s.join("/")}function h(e,t){let a=e;if(a.startsWith("/")||null==t||(a=t+(t.endsWith("/")?"":"/")+a),!s(a))return null;a=n(a);const r=a.split("/"),i=[];for(const e of r)if("."!==e)if(".."===e){if(null==i.pop())return null}else i.push(e);return"/"+i.join("/")}function p(e,t){return e.startsWith("/")||(e="/"+e),t.startsWith("/")||(t="/"+t),e===t}a.d(t,"i",(function(){return n})),a.d(t,"j",(function(){return r})),a.d(t,"g",(function(){return o})),a.d(t,"h",(function(){return s})),a.d(t,"e",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"f",(function(){return u})),a.d(t,"b",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}))},function(e,t,a){"use strict";a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return y})),a.d(t,"b",(function(){return b})),a.d(t,"f",(function(){return E})),a.d(t,"a",(function(){return k})),a.d(t,"e",(function(){return v}));var n=a(20),r=a(279),i=a(6),o=a(5),s=a(8),l=a(181),c=a(24),u=a(2),m=a(13),h=a(222),p=a(74),d=a(15),f=a(504);function g(e){u.a.receiveInvite(e.name),e.alreadyInvited=!0,m.a.SuppressFactionInvites||f.a.emit(e)}function y(e){if(e.isMember)return;e.isMember=!0,u.a.factions.push(e.name);const t=e.getInfo();for(const e in t.enemies){const a=t.enemies[e];c.a[a]instanceof l.a&&(c.a[a].isBanned=!0)}for(let t=0;t0)for(let a=0;a=e.baseCost*l.augmentationPriceMult){const t=new r.a(e.name);if(e.name==i.a.NeuroFluxGovernor&&(t.level=k()),u.a.queuedAugmentations.push(t),u.a.loseMoney(e.baseCost*l.augmentationPriceMult,"augmentations"),e.name==i.a.NeuroFluxGovernor){let t=k();--t;const a=Math.pow(s.a.NeuroFluxGovernorLevelMult,t);e.baseRepRequirement=500*a*o.a.AugmentationRepCost,e.baseCost=75e4*a*o.a.AugmentationMoneyCost;for(let t=0;tObject.keys(n).includes(e)),[...new Set(e)]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(288),r=a(560);function i(e){const t=n.a[e];if(null==t)throw new Error("Invalid research name: "+e);return new r.a({text:t.name,cost:t.cost})}function o(){const e=i("Hi-Tech R&D Laboratory"),t=i("AutoBrew"),a=i("AutoPartyManager"),n=i("Automatic Drug Administration"),r=i("Bulk Purchasing"),o=i("CPH4 Injections"),s=i("Drones"),l=i("Drones - Assembly"),c=i("Drones - Transport"),u=i("Go-Juice"),m=i("HRBuddy-Recruitment"),h=i("HRBuddy-Training"),p=i("JoyWire"),d=i("Market-TA.I"),f=i("Market-TA.II"),g=i("Overclock"),y=i("Self-Correcting Assemblers"),b=i("Sti.mu");return n.addChild(u),n.addChild(o),s.addChild(l),s.addChild(c),m.addChild(h),d.addChild(f),g.addChild(b),e.addChild(t),e.addChild(a),e.addChild(n),e.addChild(r),e.addChild(s),e.addChild(m),e.addChild(p),e.addChild(d),e.addChild(g),e.addChild(y),e}function s(){const e=new r.b;return e.setRoot(o()),e}function l(){const e=new r.b,t=o(),a=i("uPgrade: Fulcrum"),n=i("uPgrade: Capacity.I"),s=i("uPgrade: Capacity.II"),l=i("uPgrade: Dashboard");return n.addChild(s),a.addChild(n),a.addChild(l),t.addChild(a),e.setRoot(t),e}},,,function(e,t,a){"use strict";function n(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}a.d(t,"a",(function(){return r}));class r{constructor(){var e,t,a;a={},(t="subscribers")in(e=this)?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}subscribe(e){let t=n();for(;void 0!==this.subscribers[t];)t=n();return this.subscribers[t]=e,()=>{delete this.subscribers[t]}}emit(...e){for(const t in this.subscribers){const a=this.subscribers[t];void 0!==a&&a(...e)}}}},function(e,t,a){"use strict";a.d(t,"f",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"e",(function(){return p})),a.d(t,"d",(function(){return d})),a.d(t,"a",(function(){return f})),a.d(t,"b",(function(){return g}));var n=a(27),r=a(45),i=a(510),o=a(5),s=a(8),l=a(60),c=a(59),u=a(621);function m(e){if(null!=e.ip&&Object(n.g)(e.ip)&&(e.ip=Object(n.e)()),null!=Object(n.d)(e.hostname)){let t=e.hostname;for(let a=0;a<200&&(t=`${e.hostname}-${a}`,null!=Object(n.d)(t));++a);e.hostname=t}return new r.a(e)}function h(e,t,a,n=1){let r=1+(s.a.ServerBaseGrowthRate-1)/e.hackDifficulty;r>s.a.ServerMaxGrowthRate&&(r=s.a.ServerMaxGrowthRate);const i=e.serverGrowth/100,l=1+(n-1)/16;return Math.log(t)/(Math.log(r)*a.hacking_grow_mult*i*o.a.ServerGrowthRate*l)}function p(e,t,a,n=1){let r=Object(i.a)(e,t,a,n);r<1&&(console.warn("serverGrowth calculated to be less than 1"),r=1);const o=e.moneyAvailable;if(e.moneyAvailable+=1*t,e.moneyAvailable*=r,Object(u.a)(e.moneyMax)&&isNaN(e.moneyAvailable)&&(e.moneyAvailable=e.moneyMax),Object(u.a)(e.moneyMax)&&e.moneyAvailable>e.moneyMax&&(e.moneyAvailable=e.moneyMax),o!==e.moneyAvailable){let r=h(e,e.moneyAvailable/o,a,n);r=Math.min(Math.max(0,Math.ceil(r)),t),e.fortify(2*s.a.ServerFortifyAmount*r)}return e.moneyAvailable/o}function d(e){const t=e.programs.includes(l.a.BitFlume.name);e.programs.length=0,e.runningScripts=[],e.serversOnNetwork=[],e.isConnectedTo=!0,e.ramUsed=0,e.programs.push(l.a.NukeProgram.name),t&&e.programs.push(l.a.BitFlume.name),e.scripts.forEach((function(t){t.updateRamUsage(e.scripts)})),e.messages.length=0,e.messages.push(c.a.HackersStartingHandbook)}function f(e,t){return t>e.serversOnNetwork.length?(console.error("Tried to get server on network that was out of range"),null):Object(n.d)(e.serversOnNetwork[t])}function g(e){return e instanceof r.a&&e.backdoorInstalled}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={BladesIntuition:"Blade's Intuition",Cloak:"Cloak",Marksman:"Marksman",WeaponProficiency:"Weapon Proficiency",ShortCircuit:"Short-Circuit",DigitalObserver:"Digital Observer",Tracer:"Tracer",Overclock:"Overclock",Reaper:"Reaper",EvasiveSystem:"Evasive System",Datamancer:"Datamancer",CybersEdge:"Cyber's Edge",HandsOfMidas:"Hands of Midas",Hyperdrive:"Hyperdrive"}},,function(e,t,a){"use strict";function n(e){return"string"==typeof e||e instanceof String}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(39),o=a(169),s=a(236),l=a(56),c=a(1);function u({rows:e,title:t,wide:a}){const n=a?s.a:i.a;return r.a.createElement(r.a.Fragment,null,t&&r.a.createElement(c.a,null,t),r.a.createElement(n,{size:"small",padding:"none"},r.a.createElement(o.a,null,e.map((e,t)=>r.a.createElement(l.a,{key:t},e.map((e,t)=>r.a.createElement(i.b,{key:t,align:0!==t?"right":"left"},r.a.createElement(c.a,{noWrap:!0},e))))))))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(314),r=a(21);class i extends n.a{constructor(e=null){super(e),this.count=1}getActionTimePenalty(){return 1.5}getChaosCompetencePenalty(){return 1}getChaosDifficultyBonus(){return 1}toJSON(){return Object(r.b)("BlackOperation",this)}static fromJSON(e){return Object(r.a)(i,e.data)}}r.c.constructors.BlackOperation=i},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(4),i=a(126),o=a(154);const s=Object(i.a)(e=>Object(o.a)({unbuyable:{color:e.palette.action.disabled},money:{color:e.colors.money}}));function l(e){const t=s();return e.corp.funds>e.money?n.createElement("span",{className:t.money},r.a.formatMoney(e.money)):n.createElement("span",{className:t.unbuyable},r.a.formatMoney(e.money))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return h}));var n=a(295),r=a(163),i=a(264),o=a(324),s=a(27),l=a(286),c=a(15),u=a(508),m=a(2);function h(e,t,a){if(null!=a&&"boolean"==typeof a||(a=!0),e instanceof n.a)return d(e),!0;if(e instanceof o.a&&"string"==typeof t){const n=p(e.pid,a);if(n)return n;for(const n of r.a.values())if(n.name==e.filename&&n.hostname==t&&Object(l.a)(n.args,e.args))return d(n,a),!0;return!1}return"number"==typeof e?p(e,a):(console.error("killWorkerScript() called with invalid argument:"),console.error(e),!1)}function p(e,t=!0){const a=r.a.get(e);return a instanceof n.a&&(d(a,t),!0)}function d(e,t=!0){if("function"==typeof e.atExit){try{e.atExit()}catch(t){Object(c.a)(`Error trying to call atExit for script ${e.name} on ${e.hostname} ${e.scriptRef.args} ${t}`)}e.atExit=void 0}e.env.stopFlag=!0,function(e){e instanceof n.a&&e.delay&&(clearTimeout(e.delay),e.delayResolve&&e.delayResolve())}(e),function(e,t=!0){const a=e.hostname,n=e.name,o=Object(s.d)(a);if(null==o)return void console.error("Could not find server on which this script is running: "+a);for(let t=0;tu("string"!=typeof t?t:0),size:"large"},r.a.createElement(o.a,null)))),endAdornment:r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{title:"Remove"},r.a.createElement(c.a,{onClick:()=>h("string"!=typeof t?t:0),size:"large"},r.a.createElement(l.a,null))),r.a.createElement(f.a,{title:"Reset"},r.a.createElement(c.a,{onClick:g,size:"large"},r.a.createElement(m.a,null))))}}))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return i}));var n=a(0);const r={Gang:a.n(n).a.createContext({})},i=()=>Object(n.useContext)(r.Gang)},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(21),r=a(31);const i={b:!0,initPrice:1e4,marketCap:1e12,mv:1,name:"",otlkMag:0,spreadPerc:0,shareTxForMovement:1e6,symbol:""};function o(e){let t;switch(typeof e){case"number":return e;case"object":{const a=e;t=Object(r.a)(a.min,a.max);break}default:throw Error(`Do not know how to convert the type '${typeof e}' to a number`)}return"object"==typeof e&&"number"==typeof e.divisor?t/e.divisor:t}class s{constructor(e=i){this.name=e.name,this.symbol=e.symbol,this.price=o(e.initPrice),this.lastPrice=this.price,this.playerShares=0,this.playerAvgPx=0,this.playerShortShares=0,this.playerAvgShortPx=0,this.mv=o(e.mv),this.b=e.b,this.otlkMag=e.otlkMag,this.otlkMagForecast=this.getAbsoluteForecast(),this.cap=Object(r.a)(1e3*this.price,25e3*this.price),this.spreadPerc=o(e.spreadPerc),this.shareTxForMovement=o(e.shareTxForMovement),this.shareTxUntilMovement=this.shareTxForMovement;const t=e.marketCap/this.price;this.totalShares=1e5*Math.round(t/1e5);this.maxShares=1e5*Math.round(.2*this.totalShares/1e5)}changeForecastForecast(e){this.otlkMagForecast=e,this.otlkMagForecast>100?this.otlkMagForecast=100:this.otlkMagForecast<0&&(this.otlkMagForecast=0)}changePrice(e){this.lastPrice=this.price,this.price=e}cycleForecast(e=.1){const t=this.getForecastIncreaseChance();Math.random()5&&(this.otlkMag=Math.max(5,this.otlkMag-e))}influenceForecastForecast(e){this.otlkMagForecast>50?(this.otlkMagForecast-=e,this.otlkMagForecast=Math.max(50,this.otlkMagForecast)):this.otlkMagForecast<50&&(this.otlkMagForecast+=e,this.otlkMagForecast=Math.min(50,this.otlkMagForecast))}toJSON(){return Object(n.b)("Stock",this)}static fromJSON(e){return Object(n.a)(s,e.data)}}n.c.constructors.Stock=s},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={}},,,function(e,t,a){"use strict";a.d(t,"e",(function(){return C})),a.d(t,"d",(function(){return w})),a.d(t,"c",(function(){return k})),a.d(t,"a",(function(){return _})),a.d(t,"b",(function(){return S}));var n=a(34),r=a(20),i=a(279),o=a(6),s=a(5),l=a(8),c=a(24),u=a(2),m=a(321),h=a(60),p=a(74),d=a(15),f=a(1121),g=a(328),y=a(0),b=a.n(y);function E(e){const t=e.name;r.a[t]=e}function k(){for(const e in c.a)c.a.hasOwnProperty(e)&&(c.a[e].augmentations=[]);Object(f.a)(r.a);const e=function(){const e=[{bonuses:{hacking_chance_mult:1.25,hacking_speed_mult:1.1,hacking_money_mult:1.25,hacking_grow_mult:1.1},description:"Increases the player's hacking chance by 25%.
Increases the player's hacking speed by 10%.
Increases the amount of money the player's gains from hacking by 25%.
Improves grow() by 10%."},{bonuses:{hacking_mult:1.15,hacking_exp_mult:2},description:"Increases the player's hacking skill by 15%.
Increases the player's hacking experience gain rate by 100%."},{bonuses:{strength_mult:1.25,strength_exp_mult:2,defense_mult:1.25,defense_exp_mult:2,dexterity_mult:1.25,dexterity_exp_mult:2,agility_mult:1.25,agility_exp_mult:2},description:"Increases all of the player's combat stats by 25%.
Increases all of the player's combat stat experience gain rate by 100%."},{bonuses:{charisma_mult:1.5,charisma_exp_mult:2},description:"This augmentation increases the player's charisma by 50%.
Increases the player's charisma experience gain rate by 100%."},{bonuses:{hacknet_node_money_mult:1.2,hacknet_node_purchase_cost_mult:.85,hacknet_node_ram_cost_mult:.85,hacknet_node_core_cost_mult:.85,hacknet_node_level_cost_mult:.85},description:"Increases the amount of money produced by Hacknet Nodes by 20%.
Decreases all costs related to Hacknet Node by 15%."},{bonuses:{company_rep_mult:1.25,faction_rep_mult:1.15,work_money_mult:1.7},description:"Increases the amount of money the player gains from working by 70%.
Increases the amount of reputation the player gains when working for a company by 25%.
Increases the amount of reputation the player gains for a faction by 15%."},{bonuses:{crime_success_mult:2,crime_money_mult:2},description:"Increases the player's crime success rate by 100%.
Increases the amount of money the player gains from crimes by 100%."}],t=new g.b(Math.floor(u.a.lastUpdate/36e5));for(let e=0;e<5;e++)t.step();return e[Math.floor(e.length*t.random())]}(),t={name:o.a.UnstableCircadianModulator,moneyCost:5e9,repCost:362500,info:"An experimental nanobot injection. Its unstable nature leads to unpredictable results based on your circadian rhythm."};Object.keys(e.bonuses).forEach(a=>t[a]=e.bonuses[a]);const a=new n.a(t);a.addToFactions(["Speakers for the Dead"]),S(o.a.UnstableCircadianModulator)&&delete r.a[o.a.UnstableCircadianModulator],E(a);const i=new n.a({name:o.a.HemoRecirculator,moneyCost:45e6,repCost:1e4,info:"A heart implant that greatly increases the body's ability to effectively use and pump blood.",strength_mult:1.08,defense_mult:1.08,agility_mult:1.08,dexterity_mult:1.08});i.addToFactions(["Tetrads","The Dark Army","The Syndicate"]),S(o.a.HemoRecirculator)&&delete r.a[o.a.HemoRecirculator],E(i);const m=new n.a({name:o.a.Targeting1,moneyCost:15e6,repCost:5e3,info:"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates and enhances balance and hand-eye coordination.",dexterity_mult:1.1});m.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Sector-12","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.Targeting1)&&delete r.a[o.a.Targeting1],E(m);const d=new n.a({name:o.a.Targeting2,moneyCost:425e5,repCost:8750,info:"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting reality by digitally displaying weaknesses and vital signs of threats.",prereqs:[o.a.Targeting1],dexterity_mult:1.2});d.addToFactions(["The Dark Army","The Syndicate","Sector-12","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.Targeting2)&&delete r.a[o.a.Targeting2],E(d);const y=new n.a({name:o.a.Targeting3,moneyCost:115e6,repCost:27500,info:"The latest version of the 'Augmented Targeting' implant adds the ability to lock-on and track threats.",prereqs:[o.a.Targeting2],dexterity_mult:1.3});y.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(o.a.Targeting3)&&delete r.a[o.a.Targeting3],E(y);const k=new n.a({name:o.a.SyntheticHeart,moneyCost:2875e6,repCost:75e4,info:"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood more efficiently than an organic heart.",agility_mult:1.5,strength_mult:1.5});k.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati"]),S(o.a.SyntheticHeart)&&delete r.a[o.a.SyntheticHeart],E(k);const _=new n.a({name:o.a.SynfibrilMuscle,repCost:437500,moneyCost:1125e6,info:"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. Scientists have named these artificially enhanced units 'synfibrils'.",strength_mult:1.3,defense_mult:1.3});_.addToFactions(["KuaiGong International","Fulcrum Secret Technologies","Speakers for the Dead","NWO","The Covenant","Daedalus","Illuminati","Blade Industries"]),S(o.a.SynfibrilMuscle)&&delete r.a[o.a.SynfibrilMuscle],E(_);const w=new n.a({name:o.a.CombatRib1,repCost:7500,moneyCost:2375e4,info:"The rib cage is augmented to continuously release boosters into the bloodstream which increase the oxygen-carrying capacity of blood.",strength_mult:1.1,defense_mult:1.1});w.addToFactions(["Slum Snakes","The Dark Army","The Syndicate","Volhaven","Ishima","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.CombatRib1)&&delete r.a[o.a.CombatRib1],E(w);const C=new n.a({name:o.a.CombatRib2,repCost:18750,moneyCost:65e6,info:"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which improve focus and endurance while decreasing reaction time and fatigue.",prereqs:[o.a.CombatRib1],strength_mult:1.14,defense_mult:1.14});C.addToFactions(["The Dark Army","The Syndicate","Volhaven","OmniTek Incorporated","KuaiGong International","Blade Industries"]),S(o.a.CombatRib2)&&delete r.a[o.a.CombatRib2],E(C);const x=new n.a({name:o.a.CombatRib3,repCost:35e3,moneyCost:12e7,info:"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that improve muscle mass and physical performance while being safe and free of side effects.",prereqs:[o.a.CombatRib2],strength_mult:1.18,defense_mult:1.18});x.addToFactions(["The Dark Army","The Syndicate","OmniTek Incorporated","KuaiGong International","Blade Industries","The Covenant"]),S(o.a.CombatRib3)&&delete r.a[o.a.CombatRib3],E(x);const O=new n.a({name:o.a.NanofiberWeave,repCost:37500,moneyCost:125e6,info:"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, which improves its regenerative and extracellular homeostasis abilities.",strength_mult:1.2,defense_mult:1.2});O.addToFactions(["Tian Di Hui","The Syndicate","The Dark Army","Speakers for the Dead","Blade Industries","Fulcrum Secret Technologies","OmniTek Incorporated"]),S(o.a.NanofiberWeave)&&delete r.a[o.a.NanofiberWeave],E(O);const M=new n.a({name:o.a.SubdermalArmor,repCost:875e3,moneyCost:325e7,info:"The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. The material is implanted underneath the skin, and is the most advanced form of defensive enhancement that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to mitigate damage from any fire or electrical traumas.",defense_mult:2.2});M.addToFactions(["The Syndicate","Fulcrum Secret Technologies","Illuminati","Daedalus","The Covenant"]),S(o.a.SubdermalArmor)&&delete r.a[o.a.SubdermalArmor],E(M);const T=new n.a({name:o.a.WiredReflexes,repCost:1250,moneyCost:25e5,info:"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, supercharging the spread of neural signals and increasing reflex speed.",agility_mult:1.05,dexterity_mult:1.05});T.addToFactions(["Tian Di Hui","Slum Snakes","Sector-12","Volhaven","Aevum","Ishima","The Syndicate","The Dark Army","Speakers for the Dead"]),S(o.a.WiredReflexes)&&delete r.a[o.a.WiredReflexes],E(T);const R=new n.a({name:o.a.GrapheneBoneLacings,repCost:1125e3,moneyCost:425e7,info:"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.",strength_mult:1.7,defense_mult:1.7});R.addToFactions(["Fulcrum Secret Technologies","The Covenant"]),S(o.a.GrapheneBoneLacings)&&delete r.a[o.a.GrapheneBoneLacings],E(R);const A=new n.a({name:o.a.BionicSpine,repCost:45e3,moneyCost:125e6,info:"The spine is reconstructed using plasteel and carbon fibers. It is now capable of stimulating and regulating neural signals passing through the spinal cord, improving senses and reaction speed. The 'Bionic Spine' also interfaces with all other 'Bionic' implants.",strength_mult:1.15,defense_mult:1.15,agility_mult:1.15,dexterity_mult:1.15});A.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(o.a.BionicSpine)&&delete r.a[o.a.BionicSpine],E(A);const P=new n.a({name:o.a.GrapheneBionicSpine,repCost:1625e3,moneyCost:6e9,info:"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene which enhances durability and supercharges all body functions.",prereqs:[o.a.BionicSpine],strength_mult:1.6,defense_mult:1.6,agility_mult:1.6,dexterity_mult:1.6});P.addToFactions(["Fulcrum Secret Technologies","ECorp"]),S(o.a.GrapheneBionicSpine)&&delete r.a[o.a.GrapheneBionicSpine],E(P);const N=new n.a({name:o.a.BionicLegs,repCost:15e4,moneyCost:375e6,info:"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.",agility_mult:1.6});N.addToFactions(["Speakers for the Dead","The Syndicate","KuaiGong International","OmniTek Incorporated","Blade Industries"]),S(o.a.BionicLegs)&&delete r.a[o.a.BionicLegs],E(N);const I=new n.a({name:o.a.GrapheneBionicLegs,repCost:75e4,moneyCost:45e8,info:"An upgrade to the 'Bionic Legs' augmentation. The legs are fused with graphene, greatly enhancing jumping ability.",prereqs:[o.a.BionicLegs],agility_mult:2.5});I.addToFactions(["MegaCorp","ECorp","Fulcrum Secret Technologies"]),S(o.a.GrapheneBionicLegs)&&delete r.a[o.a.GrapheneBionicLegs],E(I);const F=new n.a({name:o.a.SpeechProcessor,repCost:7500,moneyCost:5e7,info:"A cochlear implant with an embedded computer that analyzes incoming speech. The embedded computer processes characteristics of incoming speech, such as tone and inflection, to pick up on subtle cues and aid in social interactions.",charisma_mult:1.2});F.addToFactions(["Tian Di Hui","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Silhouette"]),S(o.a.SpeechProcessor)&&delete r.a[o.a.SpeechProcessor],E(F);const D=new n.a({name:o.a.TITN41Injection,repCost:25e3,moneyCost:19e7,info:"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that control personality. The TITN-41 strain alters these genes so that the subject becomes more outgoing and socialable.",charisma_mult:1.15,charisma_exp_mult:1.15});D.addToFactions(["Silhouette"]),S(o.a.TITN41Injection)&&delete r.a[o.a.TITN41Injection],E(D);const j=new n.a({name:o.a.EnhancedSocialInteractionImplant,repCost:375e3,moneyCost:1375e6,info:"A cranial implant that greatly assists in the user's ability to analyze social situations and interactions. The system uses a wide variety of factors such as facial expressions, body language, and the voice tone, and inflection to determine the best course of action during socialsituations. The implant also uses deep learning software to continuously learn new behaviorpatterns and how to best respond.",charisma_mult:1.6,charisma_exp_mult:1.6});j.addToFactions(["Bachman & Associates","NWO","Clarke Incorporated","OmniTek Incorporated","Four Sigma"]),S(o.a.EnhancedSocialInteractionImplant)&&delete r.a[o.a.EnhancedSocialInteractionImplant],E(j);const B=new n.a({name:o.a.BitWire,repCost:3750,moneyCost:1e7,info:"A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing capabilities.",hacking_mult:1.05});B.addToFactions(["CyberSec","NiteSec"]),S(o.a.BitWire)&&delete r.a[o.a.BitWire],E(B);const G=new n.a({name:o.a.ArtificialBioNeuralNetwork,repCost:275e3,moneyCost:3e9,info:"A network consisting of millions of nanoprocessors is embedded into the brain. The network is meant to mimic the way a biological brain solves a problem, with each nanoprocessor acting similar to the way a neuron would in a neural network. However, these nanoprocessors are programmed to perform computations much faster than organic neurons, allowing the user to solve much more complex problems at a much faster rate.",hacking_speed_mult:1.03,hacking_money_mult:1.15,hacking_mult:1.12});G.addToFactions(["BitRunners","Fulcrum Secret Technologies"]),S(o.a.ArtificialBioNeuralNetwork)&&delete r.a[o.a.ArtificialBioNeuralNetwork],E(G);const L=new n.a({name:o.a.ArtificialSynapticPotentiation,repCost:6250,moneyCost:8e7,info:"The body is injected with a chemical that artificially induces synaptic potentiation, otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.",hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_exp_mult:1.05});L.addToFactions(["The Black Hand","NiteSec"]),S(o.a.ArtificialSynapticPotentiation)&&delete r.a[o.a.ArtificialSynapticPotentiation],E(L);const W=new n.a({name:o.a.EnhancedMyelinSheathing,repCost:1e5,moneyCost:1375e6,info:"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. This process results in the proliferation of new, synthetic myelin sheaths in the nervous system. These myelin sheaths can propogate neuro-signals much faster than their organic counterparts, leading to greater processing speeds and better brain function.",hacking_speed_mult:1.03,hacking_exp_mult:1.1,hacking_mult:1.08});W.addToFactions(["Fulcrum Secret Technologies","BitRunners","The Black Hand"]),S(o.a.EnhancedMyelinSheathing)&&delete r.a[o.a.EnhancedMyelinSheathing],E(W);const H=new n.a({name:o.a.SynapticEnhancement,repCost:2e3,moneyCost:75e5,info:"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and induce stronger synaptic activity. This improves the user's cognitive abilities.",hacking_speed_mult:1.03});H.addToFactions(["CyberSec","Aevum"]),S(o.a.SynapticEnhancement)&&delete r.a[o.a.SynapticEnhancement],E(H);const U=new n.a({name:o.a.NeuralRetentionEnhancement,repCost:2e4,moneyCost:25e7,info:"Chemical injections are used to permanently alter and strengthen the brain's neuronal circuits, strengthening the ability to retain information.",hacking_exp_mult:1.25});U.addToFactions(["NiteSec"]),S(o.a.NeuralRetentionEnhancement)&&delete r.a[o.a.NeuralRetentionEnhancement],E(U);const q=new n.a({name:o.a.DataJack,repCost:112500,moneyCost:45e7,info:"A brain implant that provides an interface for direct, wireless communication between a computer's main memory and the mind. This implant allows the user to not only access a computer's memory, but also alter and delete it.",hacking_money_mult:1.25});q.addToFactions(["BitRunners","The Black Hand","NiteSec","Chongqing","New Tokyo"]),S(o.a.DataJack)&&delete r.a[o.a.DataJack],E(q);const K=new n.a({name:o.a.ENM,repCost:15e3,moneyCost:25e7,info:"A thin device embedded inside the arm containing a wireless module capable of connecting to nearby networks. Once connected, the Netburner Module is capable of capturing and processing all of the traffic on that network. By itself, the Embedded Netburner Module does not do much, but a variety of very powerful upgrades can be installed that allow you to fully control the traffic on a network.",hacking_mult:1.08});K.addToFactions(["BitRunners","The Black Hand","NiteSec","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(o.a.ENM)&&delete r.a[o.a.ENM],E(K);const z=new n.a({name:o.a.ENMCore,repCost:175e3,moneyCost:25e8,info:"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgrade allows the Embedded Netburner Module to generate its own data on a network.",prereqs:[o.a.ENM],hacking_speed_mult:1.03,hacking_money_mult:1.1,hacking_chance_mult:1.03,hacking_exp_mult:1.07,hacking_mult:1.07});z.addToFactions(["BitRunners","The Black Hand","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries"]),S(o.a.ENMCore)&&delete r.a[o.a.ENMCore],E(z);const $=new n.a({name:o.a.ENMCoreV2,repCost:1e6,moneyCost:45e8,info:"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to control information on a network by re-routing traffic, spoofing IP addresses, and altering the data inside network packets.",prereqs:[o.a.ENMCore],hacking_speed_mult:1.05,hacking_money_mult:1.3,hacking_chance_mult:1.05,hacking_exp_mult:1.15,hacking_mult:1.08});$.addToFactions(["BitRunners","ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Blade Industries","OmniTek Incorporated","KuaiGong International"]),S(o.a.ENMCoreV2)&&delete r.a[o.a.ENMCoreV2],E($);const Y=new n.a({name:o.a.ENMCoreV3,repCost:175e4,moneyCost:75e8,info:"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into any device on a network.",prereqs:[o.a.ENMCoreV2],hacking_speed_mult:1.05,hacking_money_mult:1.4,hacking_chance_mult:1.1,hacking_exp_mult:1.25,hacking_mult:1.1});Y.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMCoreV3)&&delete r.a[o.a.ENMCoreV3],E(Y);const V=new n.a({name:o.a.ENMAnalyzeEngine,repCost:625e3,moneyCost:6e9,info:"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster that vastly outperforms the Netburner Module's native single-core processor.",prereqs:[o.a.ENM],hacking_speed_mult:1.1});V.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMAnalyzeEngine)&&delete r.a[o.a.ENMAnalyzeEngine],E(V);const J=new n.a({name:o.a.ENMDMA,repCost:1e6,moneyCost:7e9,info:"This implant installs a Direct Memory Access (DMA) controller into the Embedded Netburner Module. This allows the Module to send and receive data directly to and from the main memory of devices on a network.",prereqs:[o.a.ENM],hacking_money_mult:1.4,hacking_chance_mult:1.2});J.addToFactions(["ECorp","MegaCorp","Fulcrum Secret Technologies","NWO","Daedalus","The Covenant","Illuminati"]),S(o.a.ENMDMA)&&delete r.a[o.a.ENMDMA],E(J);const X=new n.a({name:o.a.Neuralstimulator,repCost:5e4,moneyCost:3e9,info:"A cranial implant that intelligently stimulates certain areas of the brain in order to improve cognitive functions.",hacking_speed_mult:1.02,hacking_chance_mult:1.1,hacking_exp_mult:1.12});X.addToFactions(["The Black Hand","Chongqing","Sector-12","New Tokyo","Aevum","Ishima","Volhaven","Bachman & Associates","Clarke Incorporated","Four Sigma"]),S(o.a.Neuralstimulator)&&delete r.a[o.a.Neuralstimulator],E(X);const Q=new n.a({name:o.a.NeuralAccelerator,repCost:2e5,moneyCost:175e7,info:"A microprocessor that accelerates the processing speed of biological neural networks. This is a cranial implant that is embedded inside the brain.",hacking_mult:1.1,hacking_exp_mult:1.15,hacking_money_mult:1.2});Q.addToFactions(["BitRunners"]),S(o.a.NeuralAccelerator)&&delete r.a[o.a.NeuralAccelerator],E(Q);const Z=new n.a({name:o.a.CranialSignalProcessorsG1,repCost:1e4,moneyCost:7e7,info:"The first generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",hacking_speed_mult:1.01,hacking_mult:1.05});Z.addToFactions(["CyberSec"]),S(o.a.CranialSignalProcessorsG1)&&delete r.a[o.a.CranialSignalProcessorsG1],E(Z);const ee=new n.a({name:o.a.CranialSignalProcessorsG2,repCost:18750,moneyCost:125e6,info:"The second generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG1],hacking_speed_mult:1.02,hacking_chance_mult:1.05,hacking_mult:1.07});ee.addToFactions(["CyberSec","NiteSec"]),S(o.a.CranialSignalProcessorsG2)&&delete r.a[o.a.CranialSignalProcessorsG2],E(ee);const te=new n.a({name:o.a.CranialSignalProcessorsG3,repCost:5e4,moneyCost:55e7,info:"The third generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG2],hacking_speed_mult:1.02,hacking_money_mult:1.15,hacking_mult:1.09});te.addToFactions(["NiteSec","The Black Hand","BitRunners"]),S(o.a.CranialSignalProcessorsG3)&&delete r.a[o.a.CranialSignalProcessorsG3],E(te);const ae=new n.a({name:o.a.CranialSignalProcessorsG4,repCost:125e3,moneyCost:11e8,info:"The fourth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG3],hacking_speed_mult:1.02,hacking_money_mult:1.2,hacking_grow_mult:1.25});ae.addToFactions(["The Black Hand","BitRunners"]),S(o.a.CranialSignalProcessorsG4)&&delete r.a[o.a.CranialSignalProcessorsG4],E(ae);const ne=new n.a({name:o.a.CranialSignalProcessorsG5,repCost:25e4,moneyCost:225e7,info:"The fifth generation of Cranial Signal Processors. Cranial Signal Processors are a set of specialized microprocessors that are attached to neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations so that the brain doesn't have to.",prereqs:[o.a.CranialSignalProcessorsG4],hacking_mult:1.3,hacking_money_mult:1.25,hacking_grow_mult:1.75});ne.addToFactions(["BitRunners"]),S(o.a.CranialSignalProcessorsG5)&&delete r.a[o.a.CranialSignalProcessorsG5],E(ne);const re=new n.a({name:o.a.NeuronalDensification,repCost:187500,moneyCost:1375e6,info:"The brain is surgically re-engineered to have increased neuronal density by decreasing the neuron gap junction. Then, the body is genetically modified to enhance the production and capabilities of its neural stem cells.",hacking_mult:1.15,hacking_exp_mult:1.1,hacking_speed_mult:1.03});re.addToFactions(["Clarke Incorporated"]),S(o.a.NeuronalDensification)&&delete r.a[o.a.NeuronalDensification],E(re);const ie=new n.a({name:o.a.NuoptimalInjectorImplant,repCost:5e3,moneyCost:2e7,info:"This torso implant automatically injects nootropic supplements into the bloodstream to improve memory, increase focus, and provide other cognitive enhancements.",company_rep_mult:1.2});ie.addToFactions(["Tian Di Hui","Volhaven","New Tokyo","Chongqing","Clarke Incorporated","Four Sigma","Bachman & Associates"]),S(o.a.NuoptimalInjectorImplant)&&delete r.a[o.a.NuoptimalInjectorImplant],E(ie);const oe=new n.a({name:o.a.SpeechEnhancement,repCost:2500,moneyCost:125e5,info:"An advanced neural implant that improves your speaking abilities, making you more convincing and likable in conversations and overall improving your social interactions.",company_rep_mult:1.1,charisma_mult:1.1});oe.addToFactions(["Tian Di Hui","Speakers for the Dead","Four Sigma","KuaiGong International","Clarke Incorporated","Bachman & Associates"]),S(o.a.SpeechEnhancement)&&delete r.a[o.a.SpeechEnhancement],E(oe);const se=new n.a({name:o.a.FocusWire,repCost:75e3,moneyCost:9e8,info:"A cranial implant that stops procrastination by blocking specific neural pathways in the brain.",hacking_exp_mult:1.05,strength_exp_mult:1.05,defense_exp_mult:1.05,dexterity_exp_mult:1.05,agility_exp_mult:1.05,charisma_exp_mult:1.05,company_rep_mult:1.1,work_money_mult:1.2});se.addToFactions(["Bachman & Associates","Clarke Incorporated","Four Sigma","KuaiGong International"]),S(o.a.FocusWire)&&delete r.a[o.a.FocusWire],E(se);const le=new n.a({name:o.a.PCDNI,repCost:375e3,moneyCost:375e7,info:"Installs a Direct-Neural Interface jack into your arm that is compatible with most computers. Connecting to a computer through this jack allows you to interface with it using the brain's electrochemical signals.",company_rep_mult:1.3,hacking_mult:1.08});le.addToFactions(["Four Sigma","OmniTek Incorporated","ECorp","Blade Industries"]),S(o.a.PCDNI)&&delete r.a[o.a.PCDNI],E(le);const ce=new n.a({name:o.a.PCDNIOptimizer,repCost:5e5,moneyCost:45e8,info:"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It improves the performance of the interface and gives the user more control options to a connected computer.",prereqs:[o.a.PCDNI],company_rep_mult:1.75,hacking_mult:1.1});ce.addToFactions(["Fulcrum Secret Technologies","ECorp","Blade Industries"]),S(o.a.PCDNIOptimizer)&&delete r.a[o.a.PCDNIOptimizer],E(ce);const ue=new n.a({name:o.a.PCDNINeuralNetwork,repCost:15e5,moneyCost:75e8,info:"This is an additional installation that upgrades the functionality of the PC Direct-Neural Interface augmentation. When connected to a computer, The Neural Network upgrade allows the user to use their own brain's processing power to aid the computer in computational tasks.",prereqs:[o.a.PCDNI],company_rep_mult:2,hacking_mult:1.1,hacking_speed_mult:1.05});ue.addToFactions(["Fulcrum Secret Technologies"]),S(o.a.PCDNINeuralNetwork)&&delete r.a[o.a.PCDNINeuralNetwork],E(ue);const me=new n.a({name:o.a.ADRPheromone1,repCost:3750,moneyCost:175e5,info:"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, triggers feelings of admiration and approval in other people.",company_rep_mult:1.1,faction_rep_mult:1.1});me.addToFactions(["Tian Di Hui","The Syndicate","NWO","MegaCorp","Four Sigma"]),S(o.a.ADRPheromone1)&&delete r.a[o.a.ADRPheromone1],E(me);const he=new n.a({name:o.a.ADRPheromone2,repCost:62500,moneyCost:55e7,info:"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, which is similar to but more potent than ADR-V1. This pheromone, when excreted, triggers feelings of admiration, approval, and respect in others.",company_rep_mult:1.2,faction_rep_mult:1.2});he.addToFactions(["Silhouette","Four Sigma","Bachman & Associates","Clarke Incorporated"]),S(o.a.ADRPheromone2)&&delete r.a[o.a.ADRPheromone2],E(he);const pe=new n.a({name:o.a.ShadowsSimulacrum,repCost:37500,moneyCost:4e8,info:"A crude but functional matter phase-shifter module that is embedded in the brainstem and cerebellum. This augmentation was developed by criminal organizations and allows the user to project and control holographic simulacrums within a large radius. These simulacrums are commonly used for espionage and surveillance work.",company_rep_mult:1.15,faction_rep_mult:1.15});pe.addToFactions(["The Syndicate","The Dark Army","Speakers for the Dead"]),S(o.a.ShadowsSimulacrum)&&delete r.a[o.a.ShadowsSimulacrum],E(pe);const de=new n.a({name:o.a.HacknetNodeCPUUpload,repCost:3750,moneyCost:11e6,info:"Uploads the architecture and design details of a Hacknet Node's CPU into the brain. This allows the user to engineer custom hardware and software for the Hacknet Node that provides better performance.",hacknet_node_money_mult:1.15,hacknet_node_purchase_cost_mult:.85});de.addToFactions(["Netburners"]),S(o.a.HacknetNodeCPUUpload)&&delete r.a[o.a.HacknetNodeCPUUpload],E(de);const fe=new n.a({name:o.a.HacknetNodeCacheUpload,repCost:2500,moneyCost:55e5,info:"Uploads the architecture and design details of a Hacknet Node's main-memory cache into the brain. This allows the user to engineer custom cache hardware for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_level_cost_mult:.85});fe.addToFactions(["Netburners"]),S(o.a.HacknetNodeCacheUpload)&&delete r.a[o.a.HacknetNodeCacheUpload],E(fe);const ge=new n.a({name:o.a.HacknetNodeNICUpload,repCost:1875,moneyCost:45e5,info:"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that offers better performance.",hacknet_node_money_mult:1.1,hacknet_node_purchase_cost_mult:.9});ge.addToFactions(["Netburners"]),S(o.a.HacknetNodeNICUpload)&&delete r.a[o.a.HacknetNodeNICUpload],E(ge);const ye=new n.a({name:o.a.HacknetNodeKernelDNI,repCost:7500,moneyCost:4e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's kernel using electrochemical signals.",hacknet_node_money_mult:1.25});ye.addToFactions(["Netburners"]),S(o.a.HacknetNodeKernelDNI)&&delete r.a[o.a.HacknetNodeKernelDNI],E(ye);const be=new n.a({name:o.a.HacknetNodeCoreDNI,repCost:12500,moneyCost:6e7,info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using electrochemical signals.",hacknet_node_money_mult:1.45});be.addToFactions(["Netburners"]),S(o.a.HacknetNodeCoreDNI)&&delete r.a[o.a.HacknetNodeCoreDNI],E(be);const Ee=new n.a({name:o.a.NeuroFluxGovernor,repCost:1250,moneyCost:375e4,info:"A device that is embedded in the back of the neck. The NeuroFlux Governor monitors and regulates nervous impulses coming to and from the spinal column, essentially 'governing' the body. By doing so, it improves the functionality of the body's nervous system.",stats:b.a.createElement(b.a.Fragment,null,"This special augmentation can be leveled up infinitely. Each level of this augmentation increases ALL multipliers by 1%, stacking multiplicatively."),hacking_chance_mult:1.01,hacking_speed_mult:1.01,hacking_money_mult:1.01,hacking_grow_mult:1.01,hacking_mult:1.01,strength_mult:1.01,defense_mult:1.01,dexterity_mult:1.01,agility_mult:1.01,charisma_mult:1.01,hacking_exp_mult:1.01,strength_exp_mult:1.01,defense_exp_mult:1.01,dexterity_exp_mult:1.01,agility_exp_mult:1.01,charisma_exp_mult:1.01,company_rep_mult:1.01,faction_rep_mult:1.01,crime_money_mult:1.01,crime_success_mult:1.01,hacknet_node_money_mult:1.01,hacknet_node_purchase_cost_mult:.99,hacknet_node_ram_cost_mult:.99,hacknet_node_core_cost_mult:.99,hacknet_node_level_cost_mult:.99,work_money_mult:1.01});let ke=0;for(let e=0;e=0;e--)if(u.a.queuedAugmentations[e].name===o.a.NeuroFluxGovernor){t=e;break}for(let a=0;a"}return u.a.queuedAugmentations=[],Object(d.a)("You slowly drift to sleep as scientists put you under in order to install the following Augmentations:
"+e+"
You wake up in your home...you feel different..."),Object(m.a)(),!0}function S(e){return r.a.hasOwnProperty(e)}function C(e){return(e instanceof n.a?e.name:e)===o.a.NeuroFluxGovernor}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return i})),a.d(t,"c",(function(){return o})),a.d(t,"d",(function(){return s})),a.d(t,"f",(function(){return l})),a.d(t,"e",(function(){return c})),a.d(t,"g",(function(){return m})),a.d(t,"h",(function(){return h}));var n=a(93);let r={},i={};function o(e){r=""===e?{}:JSON.parse(e)}function s(e){i=""===e?{}:JSON.parse(e)}function l(){for(const e in r)r.hasOwnProperty(e)&&n.a.print("alias "+e+"="+r[e]);for(const e in i)i.hasOwnProperty(e)&&n.a.print("global alias "+e+"="+i[e])}function c(e,t=!1){const a=e.match(/^([_|\w|!|%|,|@]+)="(.+)"$/);return null!=a&&3==a.length&&(t?function(e,t){e in r&&delete r[e];i[e]=t.trim()}(a[1],a[2]):function(e,t){e in i&&delete i[e];r[e]=t.trim()}(a[1],a[2]),!0)}function u(e){return i.hasOwnProperty(e)?i[e]:null}function m(e){return r.hasOwnProperty(e)?(delete r[e],!0):!!i.hasOwnProperty(e)&&(delete i[e],!0)}function h(e){const t=e.split(" ");if(t.length>0){if("unalias"===t[0]||"alias"===t[0])return t.join(" ");let e=!0,o=0;for(;e&&o<10;){var a;o++,e=!1;const s=null===(i=t[0],a=r.hasOwnProperty(i)?r[i]:null)||void 0===a?void 0:a.split(" ");null!=s&&(e=!0,t.splice(0,1,...s));for(let a=0;a{i=!0;let t=e.source.value;t.startsWith("./")&&(t=t.slice(2));const a=function(e){for(let t=0;t{a.push(e.id.name),n.push(e)}}),r+="var "+t+";\n(function (namespace) {\n",n.forEach(e=>{r+=Object(E.generate)(e),r+="\n"}),a.forEach(e=>{r+="namespace."+e+" = "+e,r+="\n"}),r+="})("+t+" || ("+t+" = {}));\n"}else{const t=[];e.specifiers.forEach(e=>{t.push(e.local.name)});const a=[];Object(x.b)(o,{FunctionDeclaration:e=>{t.includes(e.id.name)&&a.push(e)}}),a.forEach(e=>{r+=Object(E.generate)(e),r+="\n"})}}}),!i)return{code:e,lineOffset:0};let o=0;if("Program"!==a.type||null==a.body)throw new Error("Code could not be properly parsed");for(let e=a.body.length-1;e>=0;--e)"ImportDeclaration"===a.body[e].type&&(a.body.splice(e,1),++o);const s=(r.match(/\n/g)||[]).length-o;e=Object(E.generate)(a);return{code:e=r+e,lineOffset:s}}(t,e);a=n.code,i=n.lineOffset}catch(t){return Object(k.a)("Error processing Imports in "+e.name+":
"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}const o=function(t,a){const n=Object(m.a)(e);for(const e in n){const i=n[e];if("function"==typeof i)if(["hack","grow","weaken","sleep","prompt","manualHack","scp","write"].includes(e)){const n=function(...e){const a=[];for(let n=0;n"+t),e.env.stopFlag=!0,e.running=!1,Object(n.a)(e),Promise.resolve(e)}return new Promise((function(t,a){try{!function n(){try{if(e.env.stopFlag)return a(e);let r=!0,i=0;for(;i<3&&r;)r=r&&s.step(),i++;r?setTimeout(n,b.a.CodeInstructionRunTime):t(e)}catch(t){return t=t.toString(),Object(u.a)(t)||(t=Object(u.b)(e,t)),e.errorMessage=t,a(e)}}()}catch(t){return Object(w.a)(t)?(e.errorMessage=t,a(e)):t instanceof r.a?a(t):a(e)}}))}function P(e,t,a){return N(e,t,a)?(t.runScript(e),e.pid):0}function N(e,t,a){let l=1;e.threads&&!isNaN(e.threads)?l=e.threads:e.threads=1;const c=Object(f.a)(e),p=Object(_.a)(c*l);if(p>t.maxRam-t.ramUsed)return Object(k.a)(`Not enough RAM to run script ${e.filename} with args `+Object(v.a)(e.args)+". This likely occurred because you re-loaded the game and the script's RAM usage increased (either because of an update to the game or your changes to the script.)"),!1;t.updateRamUsed(Object(_.a)(t.ramUsed+p),M.a);const d=Object(s.a)();if(-1===d)throw new Error("Failed to start script because could not find available PID. This is most because you have too many scripts running.");const g=new r.a(e,d,m.a);g.ramUsage=c,i.a.set(d,g),o.a.emit();let y=null;if(g.name.endsWith(".js")||g.name.endsWith(".ns"))y=function(e){e.running=!0;let t=null;function a(a,n){return function(...r){if(e.env.stopFlag)throw e;if("asleep"===a)return n(...r);if(t)throw e.errorMessage=Object(u.b)(e,Object(S.sprintf)("Concurrent calls to Netscript functions not allowed! Did you forget to await hack(), grow(), or some other promise-returning function? (Currently running: %s tried to run: %s)",t,a)),e;let i;t=a;try{i=n(...r)}catch(e){throw t=null,e}return i&&void 0!==i.finally?i.finally((function(){t=null})):(t=null,i)}}for(const t in e.env.vars)"function"==typeof e.env.vars[t]&&(e.env.vars[t]=a(t,e.env.vars[t]));return e.env.vars.stanek.charge=a("stanek.prop",e.env.vars.stanek.charge),new Promise((t,a)=>{Object(h.b)(e.getServer().scripts,e).then(()=>{t(e)}).catch(e=>a(e))}).catch(t=>{if(t instanceof Error)throw t instanceof SyntaxError?e.errorMessage=Object(u.b)(e,t.message+" (sorry we can't be more helpful)"):e.errorMessage=Object(u.b)(e,t.message+(t.stack&&"\nstack:\n"+t.stack.toString()||"")),e;if(Object(u.a)(t))throw e.errorMessage=t,e;throw t})}(g);else if(y=A(g),!(y instanceof Promise))return!1;return y.then((function(t){void 0!==a&&a.running&&(a.scriptRef.onlineExpGained+=e.onlineExpGained,a.scriptRef.onlineMoneyMade+=e.onlineMoneyMade),Object(n.a)(g),t.log("",()=>"Script finished running")})).catch((function(e){if(e instanceof Error)return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: "+e.toString());if(e instanceof r.a){if(!Object(u.a)(e.errorMessage))return void e.log("",()=>"Script killed");{const t=e.errorMessage.split("|DELIMITER|");if(4!=t.length)return console.error("ERROR: Something wrong with Error text in evaluator..."),void console.error("Error text: "+e.errorMessage);const a=t[1],n=t[2],r=t[3];let i=`RUNTIME ERROR
${n}@${a}
`;e.args.length>0&&(i+=`Args: ${Object(v.a)(e.args)}
`),i+="
",i+=r,Object(k.a)(i),e.log("",()=>"Script crashed with runtime error")}e.running=!1,e.env.stopFlag=!0}else{if(Object(u.a)(e))return Object(k.a)("Script runtime unknown error. This is a bug please contact game developer"),void console.error("ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: "+e.toString());Object(k.a)("An unknown script died for an unknown reason. This is a bug please contact game dev"),console.error(e)}Object(n.a)(g)})),!0}function I(e=1){const t=e*l.a._idleSpeed/1e3;for(const e of i.a.values())e.scriptRef.onlineRunningTime+=t}function F(){const e=-1!==window.location.href.toLowerCase().indexOf("?noscripts");e&&console.info("Skipping the load of any scripts during startup");for(const t of Object(y.c)()){t.ramUsed=0;for(let e=0;e`Invalid arguments: scriptname='${a} args='${n}'`),console.error("runScriptFromScript() failed due to invalid arguments"),0;n.forEach(e=>{if("string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e)throw new Error("Only strings, numbers, and booleans can be passed as arguments to otherscripts.")});if(null!=t.getRunningScript(a,n))return i.log(e,()=>`'${a}' is already running on '${t.hostname}'`),0;for(let t=0;t"Cannot execute a script with null/undefined as an argument"),0;for(let r=0;r`You do not have root access on '${t.hostname}'`),0;if(l>c)return i.log(e,()=>`Cannot run script '${a}' (t=${o}) on '${t.hostname}' because there is not enough available RAM!`),0;{i.log(e,()=>`'${a}' on '${t.hostname}' with ${o} threads and args: ${Object(v.a)(n)}.`);const r=new d.a(s,n);return r.threads=o,P(r,t,i)}}return i.log(e,()=>`Could not find script '${a}' on '${t.hostname}'`),0}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a){this.title=e,this.fn=t,this.txt=a}}},,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n),i=a(1),o=a(26);function s(e){const[t,a]=Object(n.useState)(!1);return r.a.createElement(o.a,{open:t,title:r.a.createElement(i.a,null,"Copied!")},r.a.createElement(i.a,{variant:e.variant,color:e.color,onClick:function(){const t=document.createElement("textarea");t.value=e.value,document.body.appendChild(t),t.select(),t.setSelectionRange(0,1e10),document.execCommand("copy"),document.body.removeChild(t),a(!0),setTimeout(()=>a(!1),1e3)}},e.value))}},,function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r})),function(e){e.Weapon="w",e.Armor="a",e.Vehicle="v",e.Rootkit="r",e.Augmentation="g"}(n||(n={}));const r=[{cost:1e6,mults:{str:1.04,def:1.04},name:"Baseball Bat",upgType:n.Weapon},{cost:12e6,mults:{str:1.08,def:1.08,dex:1.08},name:"Katana",upgType:n.Weapon},{cost:25e6,mults:{str:1.1,def:1.1,dex:1.1,agi:1.1},name:"Glock 18C",upgType:n.Weapon},{cost:5e7,mults:{str:1.12,def:1.1,agi:1.1},name:"P90C",upgType:n.Weapon},{cost:6e7,mults:{str:1.2,def:1.15},name:"Steyr AUG",upgType:n.Weapon},{cost:1e8,mults:{str:1.25,def:1.2},name:"AK-47",upgType:n.Weapon},{cost:15e7,mults:{str:1.3,def:1.25},name:"M15A10 Assault Rifle",upgType:n.Weapon},{cost:225e6,mults:{str:1.3,dex:1.25,agi:1.3},name:"AWM Sniper Rifle",upgType:n.Weapon},{cost:2e6,mults:{def:1.04},name:"Bulletproof Vest",upgType:n.Armor},{cost:5e6,mults:{def:1.08},name:"Full Body Armor",upgType:n.Armor},{cost:25e6,mults:{def:1.15,agi:1.15},name:"Liquid Body Armor",upgType:n.Armor},{cost:4e7,mults:{def:1.2},name:"Graphene Plating Armor",upgType:n.Armor},{cost:3e6,mults:{agi:1.04,cha:1.04},name:"Ford Flex V20",upgType:n.Vehicle},{cost:9e6,mults:{agi:1.08,cha:1.08},name:"ATX1070 Superbike",upgType:n.Vehicle},{cost:18e6,mults:{agi:1.12,cha:1.12},name:"Mercedes-Benz S9001",upgType:n.Vehicle},{cost:3e7,mults:{agi:1.16,cha:1.16},name:"White Ferrari",upgType:n.Vehicle},{cost:5e6,mults:{hack:1.05},name:"NUKE Rootkit",upgType:n.Rootkit},{cost:25e6,mults:{hack:1.1},name:"Soulstealer Rootkit",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Demon Rootkit",upgType:n.Rootkit},{cost:4e7,mults:{hack:1.12},name:"Hmap Node",upgType:n.Rootkit},{cost:75e6,mults:{hack:1.15},name:"Jack the Ripper",upgType:n.Rootkit},{cost:1e10,mults:{str:1.3,dex:1.3},name:"Bionic Arms",upgType:n.Augmentation},{cost:1e10,mults:{agi:1.6},name:"Bionic Legs",upgType:n.Augmentation},{cost:15e9,mults:{str:1.15,def:1.15,dex:1.15,agi:1.15},name:"Bionic Spine",upgType:n.Augmentation},{cost:2e10,mults:{str:1.4,def:1.4},name:"BrachiBlades",upgType:n.Augmentation},{cost:12e9,mults:{str:1.2,def:1.2},name:"Nanofiber Weave",upgType:n.Augmentation},{cost:25e9,mults:{str:1.5,agi:1.5},name:"Synthetic Heart",upgType:n.Augmentation},{cost:15e9,mults:{str:1.3,def:1.3},name:"Synfibril Muscle",upgType:n.Augmentation},{cost:5e9,mults:{hack:1.05},name:"BitWire",upgType:n.Augmentation},{cost:1e10,mults:{hack:1.15},name:"Neuralstimulator",upgType:n.Augmentation},{cost:75e8,mults:{hack:1.1},name:"DataJack",upgType:n.Augmentation},{cost:5e10,mults:{str:1.7,def:1.7},name:"Graphene Bone Lacings",upgType:n.Augmentation}]},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new Map},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={Water:.05,Energy:.01,Food:.03,Plants:.05,Metal:.1,Hardware:.06,Chemicals:.05,Drugs:.02,Robots:.5,AICores:.1,RealEstate:.005,"Real Estate":.005,"AI Cores":.1}},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"d",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return u}));var n=a(5),r=a(36);function i(e,t,a,i,o){return r.b.HashesPerLevel*e*Math.pow(1.07,Math.log2(a))*(1+(i-1)/5)*(1-t/a)*o*n.a.HacknetNodeMoney}function o(e,t=1,a=1){const n=Math.round(t);if(isNaN(n)||n<1)return 0;if(e>=r.b.MaxLevel)return 1/0;const i=r.b.UpgradeLevelMult;let o=0,s=e;for(let e=0;e=r.b.MaxRam)return 1/0;let i=0,o=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.b.MaxCores)return 1/0;const i=r.b.UpgradeCoreMult;let o=0,s=e;for(let e=0;e=r.b.MaxCache)return 1/0;const n=r.b.UpgradeCacheMult;let i=0,o=e;for(let e=0;e=r.b.MaxServers?1/0:r.b.BaseCost*Math.pow(r.b.PurchaseMult,e-1)*t}},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.Field=0]="Field",e[e.Hacking=1]="Hacking",e[e.None=2]="None",e[e.Security=3]="Security"}(n||(n={}))},function(e,t,a){"use strict";function n(e,t=1){return Math.max(Math.floor(t*(32*Math.log(e+534.5)-200)),1)}function r(e,t=1){return Math.exp((e/t+200)/32)-534.6}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}))},,,function(e,t,a){"use strict";function n(e){const t=Object.assign({},{progress:0,totalTicks:20},e);t.progress=Math.max(Math.min(t.progress,1),0);const a=Math.max(Math.floor(t.progress/(1/t.totalTicks)),1),n=Math.max(t.totalTicks-a,0);return`[${"|".repeat(a)}${"-".repeat(n)}]`}a.d(t,"a",(function(){return n}))},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={}){r(this,"name","InitName"),r(this,"qty",0),r(this,"qlt",0),r(this,"dmd",0),r(this,"dmdR",[0,0]),r(this,"cmp",0),r(this,"cmpR",[0,0]),r(this,"mv",0),r(this,"mku",0),r(this,"buy",0),r(this,"sll",0),r(this,"prd",0),r(this,"imp",0),r(this,"exp",[]),r(this,"totalExp",0),r(this,"bCost",0),r(this,"sCost",0),r(this,"prdman",[!1,0]),r(this,"sllman",[!1,0]),r(this,"marketTa1",!1),r(this,"marketTa2",!1),r(this,"marketTa2Price",0),e.name&&(this.name=e.name),this.init()}getMarkupLimit(){return this.qlt/this.mku}init(){switch(this.name){case"Water":this.dmd=75,this.dmdR=[65,85],this.cmp=50,this.cmpR=[40,60],this.bCost=1500,this.mv=.2,this.mku=6;break;case"Energy":this.dmd=90,this.dmdR=[80,99],this.cmp=80,this.cmpR=[65,95],this.bCost=2e3,this.mv=.2,this.mku=6;break;case"Food":this.dmd=80,this.dmdR=[70,90],this.cmp=60,this.cmpR=[35,85],this.bCost=5e3,this.mv=1,this.mku=3;break;case"Plants":this.dmd=70,this.dmdR=[20,90],this.cmp=50,this.cmpR=[30,70],this.bCost=3e3,this.mv=.6,this.mku=3.75;break;case"Metal":this.dmd=80,this.dmdR=[75,85],this.cmp=70,this.cmpR=[60,80],this.bCost=2650,this.mv=1,this.mku=6;break;case"Hardware":this.dmd=85,this.dmdR=[80,90],this.cmp=80,this.cmpR=[65,95],this.bCost=8e3,this.mv=.5,this.mku=1;break;case"Chemicals":this.dmd=55,this.dmdR=[40,70],this.cmp=60,this.cmpR=[40,80],this.bCost=9e3,this.mv=1.2,this.mku=2;break;case"Real Estate":this.dmd=50,this.dmdR=[5,99],this.cmp=50,this.cmpR=[25,75],this.bCost=8e4,this.mv=1.5,this.mku=1.5;break;case"Drugs":this.dmd=60,this.dmdR=[45,75],this.cmp=70,this.cmpR=[40,99],this.bCost=4e4,this.mv=1.6,this.mku=1;break;case"Robots":this.dmd=90,this.dmdR=[80,9],this.cmp=90,this.cmpR=[80,9],this.bCost=75e3,this.mv=.5,this.mku=1;break;case"AI Cores":this.dmd=90,this.dmdR=[80,99],this.cmp=90,this.cmpR=[80,9],this.bCost=15e3,this.mv=.8,this.mku=.5;break;case"Scientific Research":case"InitName":break;default:console.error("Invalid material type in init(): "+this.name)}}processMarket(){const e=1+Math.random()*this.mv/300,t=1+Math.random()*this.mv/100;Math.random()<.5?(this.cmp*=t,this.cmp>this.cmpR[1]&&(this.cmp=this.cmpR[1]),this.bCost*=1/e):(this.cmp*=1/t,this.cmpthis.dmdR[1]&&(this.dmd=this.dmdR[1]),this.bCost*=e):(this.dmd*=1/a,this.dmdf.b.emit("Game Saved!","info")).catch(e=>console.error(e))}exportGame(){const e=this.getSaveString(),t=Math.round(Date.now()/1e3),a=c.a.bitNodeN;O(`bitburnerSave_${t}_BN${a}x${h.a[a]}.json`,e)}toJSON(){return Object(b.b)("BitburnerSaveObject",this)}static fromJSON(e){return Object(b.a)(S,e.data)}}function C(e){if(!e)return!1;e=decodeURIComponent(escape(atob(e)));const t=JSON.parse(e,b.c);if(Object(c.b)(t.PlayerSave),Object(u.h)(t.AllServersSave),Object(r.c)(t.CompaniesSave),Object(o.d)(t.FactionsSave),t.hasOwnProperty("StaneksGiftSave")?Object(d.a)(t.StaneksGiftSave):(console.warn("Could not load Staneks Gift from save"),Object(d.a)("")),t.hasOwnProperty("AliasesSave"))try{Object(n.c)(t.AliasesSave)}catch(e){console.warn("Could not load Aliases from save"),Object(n.c)("")}else console.warn("Save file did not contain an Aliases property"),Object(n.c)("");if(t.hasOwnProperty("GlobalAliasesSave"))try{Object(n.d)(t.GlobalAliasesSave)}catch(e){console.warn("Could not load GlobalAliases from save"),Object(n.d)("")}else console.warn("Save file did not contain a GlobalAliases property"),Object(n.d)("");if(t.hasOwnProperty("MessagesSave"))try{Object(l.d)(t.MessagesSave)}catch(e){console.warn("Could not load Messages from save"),Object(l.c)()}else console.warn("Save file did not contain a Messages property"),Object(l.c)();if(t.hasOwnProperty("StockMarketSave"))try{Object(p.i)(t.StockMarketSave)}catch(e){Object(p.i)("")}else Object(p.i)("");if(t.hasOwnProperty("SettingsSave"))try{m.a.load(t.SettingsSave)}catch(e){console.error("ERROR: Failed to parse Settings. Re-initing default values"),m.a.init()}else m.a.init();if(t.hasOwnProperty("LastExportBonus"))try{g.d(JSON.parse(t.LastExportBonus))}catch(e){g.d((new Date).getTime()),console.error("ERROR: Failed to parse last export bonus Settings "+e)}if(c.a.inGang()&&t.hasOwnProperty("AllGangsSave"))try{Object(s.b)(t.AllGangsSave)}catch(e){console.error("ERROR: Failed to parse AllGangsSave: "+e)}if(t.hasOwnProperty("VersionSave"))try{const e=JSON.parse(t.VersionSave,b.c);!function(e){const t=c.a;if("string"==typeof e){if(e<="0.41.2"){null!=t.companyPosition&&"string"!=typeof t.companyPosition&&(t.companyPosition=t.companyPosition.data.positionName,null==t.companyPosition&&(t.companyPosition=""));for(const e in r.a){const t=r.a[e];if(0==t.name&&null!=t.companyName&&(t.name=t.companyName),t.companyPositions instanceof Array){const e={};for(let a=0;ae.name===v.a.NeuroFluxGovernor);if(e)e.level+=10;else{const e=new _.a(v.a.NeuroFluxGovernor);e.level=10,c.a.augmentations.push(e)}c.a.reapplyAllAugmentations(!0),c.a.reapplyAllSourceFiles()}if(e<3&&(t.money=parseFloat(t.money),t.corporation)){t.corporation.funds=parseFloat(t.corporation.funds),t.corporation.revenue=parseFloat(t.corporation.revenue),t.corporation.expenses=parseFloat(t.corporation.expenses);for(let e=0;ePlease report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) or the Bitburner subreddit (reddit.com/r/bitburner).
"+i.a.LatestUpdate):e!==i.a.VersionNumber&&x()}catch(e){x()}else x();return!0}function x(){setTimeout(()=>Object(y.a)("New update!
Please report any bugs/issues through the github repository or the Bitburner subreddit (reddit.com/r/bitburner).
"+i.a.LatestUpdate),1e3)}function O(e,t){const a=new Blob([t],{type:"text/plain"}),n=window.navigator;if(n.msSaveOrOpenBlob)n.msSaveOrOpenBlob(a,e);else{const t=document.createElement("a"),n=URL.createObjectURL(a);t.href=n,t.download=e,document.body.appendChild(t),t.click(),setTimeout((function(){document.body.removeChild(t),window.URL.revokeObjectURL(n)}),0)}}b.c.constructors.BitburnerSaveObject=S;const M=new S},function(e,t,a){"use strict";let n,r;a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r})),function(e){e[e.Cost=0]="Cost",e[e.Default=1]="Default",e[e.Reputation=2]="Reputation",e[e.Purchasable=3]="Purchasable"}(n||(n={})),function(e){e[e.Alphabetically=0]="Alphabetically",e[e.AcquirementTime=1]="AcquirementTime"}(r||(r={}))},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"e",(function(){return s})),a.d(t,"a",(function(){return l})),a.d(t,"d",(function(){return c}));var n=a(5),r=a(36);function i(e,t,a,i){return e*r.a.MoneyGainPerLevel*Math.pow(1.035,t-1)*((a+5)/6)*i*n.a.HacknetNodeMoney}function o(e,t=1,a=1){const n=Math.round(t);if(isNaN(n)||n<1)return 0;if(e>=r.a.MaxLevel)return 1/0;const i=r.a.UpgradeLevelMult;let o=0,s=e;for(let e=0;e=r.a.MaxRam)return 1/0;let i=0,o=Math.round(Math.log2(e)),s=e;for(let e=0;e=r.a.MaxCores)return 1/0;const i=r.a.CoreBaseCost,o=r.a.UpgradeCoreMult;let s=0,l=e;for(let e=0;e1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}class s extends n.Component{win(e,t){e.gainMoney(t,"casino")}reachedLimit(e){const t=e.getCasinoWinnings()>1e10;return t&&Object(r.a)(n.createElement(n.Fragment,null,"Alright cheater get out of here. You're not allowed here anymore.")),t}}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));const n=!1,r=!0,i={O:[[r,r],[r,r]],I:[[r,r,r,r]],L:[[n,n,r],[r,r,r]],J:[[r,n,n],[r,r,r]],S:[[n,r,r],[r,r,n]],Z:[[r,r,n],[n,r,r]],T:[[r,r,r],[n,r,n]]}},,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n);function i(e){return Object(n.useEffect)(()=>{function t(t){if(!t.isTrusted)return;e.onKeyDown.bind(this)(t)}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)}),r.a.createElement(r.a.Fragment,null)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(1319),r=a(0),i=a.n(r),o=a(1317),s=a(46);const l=Object(o.a)(e=>({root:{backgroundColor:e.palette.background.paper},bar:{transition:"none",backgroundColor:e.palette.primary.main}}))(n.a);function c(e){const[t,a]=Object(r.useState)(100);return Object(r.useEffect)(()=>{const t=setInterval(()=>{a(t=>(t<=0&&e.onExpire(),t-200/e.millis*100))},200);return()=>{clearInterval(t)}},[]),i.a.createElement(s.a,{item:!0,xs:12},i.a.createElement(l,{variant:"determinate",value:t,color:"primary"}))}},function(e,t,a){"use strict";function n(e,t,a){function n(e,t,n){function r(e,t,a){return(1-a)*e+a*t}for(const i of Object.keys(e))a[i]=r(e[i],t[i],n);return e}return t<0?n(e.Trivial,e.Trivial,0):t>=0&&t<1?n(e.Trivial,e.Normal,t):t>=1&&t<2?n(e.Normal,e.Hard,t-1):t>=2&&t<3?n(e.Hard,e.Impossible,t-2):n(e.Impossible,e.Impossible,0)}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"a",(function(){return w})),a.d(t,"c",(function(){return C}));var n=a(0),r=a.n(n),i=a(118),o=a(131),s=a(1),l=a(32),c=a(10),u=a(73),m=a(481),h=a.n(m),p=a(784),d=a(126),f=a(154),g=a(512),y=a.n(g),b=a(163),E=a(144),k=a(27);let v=0;const _=new i.a,w=new i.a;let S=[];function C(){const e=Object(n.useState)(!0)[1];function t(){e(e=>!e)}return Object(n.useEffect)(()=>_.subscribe(e=>{const a=e.server+"-"+e.filename+e.args.map(e=>""+e).join("-");S.find(e=>e.id===a)||(S.push({id:a,script:e}),t())}),[]),Object(n.useEffect)(()=>w.subscribe(()=>{S=[],t()})),r.a.createElement(r.a.Fragment,null,S.map(e=>r.a.createElement(O,{key:e.id,script:e.script,id:e.id,onClose:()=>{return a=e.id,S=S.filter(e=>e.id!==a),void t();var a}})))}const x=Object(d.a)(e=>Object(f.a)({logs:{overflowY:"scroll",overflowX:"hidden",scrollbarWidth:"auto",display:"flex",flexDirection:"column-reverse"},success:{color:e.colors.success},error:{color:e.palette.error.main},primary:{color:e.palette.primary.main},info:{color:e.palette.info.main},warning:{color:e.palette.warning.main}}));function O(e){const t=x(),a=Object(n.useRef)(null),i=Object(n.useState)(!1)[1];function m(){i(e=>!e)}function d(){const e=a.current;null!==e&&(e.style.zIndex=1500+v+"",v++,m())}return Object(n.useEffect)(()=>{d();const e=setInterval(m,1e3);return()=>clearInterval(e)},[]),r.a.createElement(h.a,{handle:".drag"},r.a.createElement(u.a,{style:{display:"flex",flexFlow:"column",position:"fixed",left:"40%",top:"30%",zIndex:1400},ref:a},r.a.createElement("div",{onMouseDown:d},r.a.createElement(u.a,{style:{cursor:"grab"}},r.a.createElement(l.a,{className:"drag",display:"flex",alignItems:"center"},r.a.createElement(s.a,{color:"primary",variant:"h6"},function(){const t=`${e.script.filename} ${e.script.args.map(e=>""+e).join(" ")}`;return t.length<=30?t:t.slice(0,27)+"..."}()),r.a.createElement(l.a,{position:"absolute",right:0},!b.a.has(e.script.pid)&&r.a.createElement(c.a,{onClick:function(){const t=Object(k.d)(e.script.server);null!==t&&Object(E.e)(e.script,t)}},"Run"),b.a.has(e.script.pid)&&r.a.createElement(c.a,{onClick:function(){Object(o.a)(e.script,e.script.server,!0)}},"Kill"),r.a.createElement(c.a,{onClick:e.onClose},"Close")))),r.a.createElement(u.a,{sx:{overflow:"scroll",overflowWrap:"break-word",whiteSpace:"pre-wrap"}},r.a.createElement(p.ResizableBox,{className:t.logs,height:500,width:500,handle:r.a.createElement("span",{style:{position:"absolute",right:"-10px",bottom:"-13px",cursor:"nw-resize"}},r.a.createElement(y.a,{color:"primary",style:{transform:"rotate(45deg)"}}))},r.a.createElement(l.a,null,e.script.logs.map((e,a)=>{return r.a.createElement(s.a,{key:a,className:(n=e,n.match(/(^\[[^\]]+\] )?ERROR/)||n.match(/(^\[[^\]]+\] )?FAIL/)?t.error:n.match(/(^\[[^\]]+\] )?SUCCESS/)?t.success:n.match(/(^\[[^\]]+\] )?WARN/)?t.warning:n.match(/(^\[[^\]]+\] )?INFO/)?t.info:t.primary)},e,r.a.createElement("br",null));var n})))))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(225),r=a(120);const i={};i[r.a.BladesIntuition]=new n.a({name:r.a.BladesIntuition,desc:"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%",baseCost:3,costInc:2.1,successChanceAll:3}),i[r.a.Cloak]=new n.a({name:r.a.Cloak,desc:"Each level of this skill increases your success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%",baseCost:2,costInc:1.1,successChanceStealth:5.5}),i[r.a.ShortCircuit]=new n.a({name:r.a.ShortCircuit,desc:"Each level of this skill increases your success chance in Contracts, Operations, and BlackOps that involve retirement by 5.5%",baseCost:2,costInc:2.1,successChanceKill:5.5}),i[r.a.DigitalObserver]=new n.a({name:r.a.DigitalObserver,desc:"Each level of this skill increases your success chance in all Operations and BlackOps by 4%",baseCost:2,costInc:2.1,successChanceOperation:4}),i[r.a.Tracer]=new n.a({name:r.a.Tracer,desc:"Each level of this skill increases your success chance in all Contracts by 4%",baseCost:2,costInc:2.1,successChanceContract:4}),i[r.a.Overclock]=new n.a({name:r.a.Overclock,desc:"Each level of this skill decreases the time it takes to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)",baseCost:3,costInc:1.4,maxLvl:90,actionTime:1}),i[r.a.Reaper]=new n.a({name:r.a.Reaper,desc:"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%",baseCost:2,costInc:2.1,effStr:2,effDef:2,effDex:2,effAgi:2}),i[r.a.EvasiveSystem]=new n.a({name:r.a.EvasiveSystem,desc:"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%",baseCost:2,costInc:2.1,effDex:4,effAgi:4}),i[r.a.Datamancer]=new n.a({name:r.a.Datamancer,desc:"Each level of this skill increases your effectiveness in synthoid population analysis and investigation by 5%. This affects all actions that can potentially increase the accuracy of your synthoid population/community estimates.",baseCost:3,costInc:1,successChanceEstimate:5}),i[r.a.CybersEdge]=new n.a({name:r.a.CybersEdge,desc:"Each level of this skill increases your max stamina by 2%",baseCost:1,costInc:3,stamina:2}),i[r.a.HandsOfMidas]=new n.a({name:r.a.HandsOfMidas,desc:"Each level of this skill increases the amount of money you receive from Contracts by 10%",baseCost:2,costInc:2.5,money:10}),i[r.a.Hyperdrive]=new n.a({name:r.a.Hyperdrive,desc:"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%",baseCost:1,costInc:2.5,expGain:10})},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(160),r=a(774);const i={};n.b.forEach(e=>{i[e.name]=new r.a(e.name,e.cost,e.upgType,e.mults)})},function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(136),r=a(68),i=a(8);function o(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);return a===r.a.Long?t*e.getAskPrice()+i.a.StockMarketCommission:t*e.getBidPrice()+i.a.StockMarketCommission}function s(e,t,a){if(isNaN(t)||t<=0||!(e instanceof n.a))return null;t=Math.min(t,e.maxShares);if(a===r.a.Long)return t*e.getBidPrice()-i.a.StockMarketCommission;return t*e.playerAvgShortPx+((e.playerAvgShortPx-e.getAskPrice())*t-i.a.StockMarketCommission)}function l(e,t){if(isNaN(t)||t<=0||!(e instanceof n.a))return;t=Math.min(t,e.maxShares);const a=e.shareTxUntilMovement;if(t<=a)return e.shareTxUntilMovement-=t,void(e.shareTxUntilMovement<=0&&(e.shareTxUntilMovement=e.shareTxForMovement,e.influenceForecast(.006),e.influenceForecastForecast(e.mv/100*.006)));const r=t-a;let i=1+Math.ceil(r/e.shareTxForMovement);e.shareTxUntilMovement=e.shareTxForMovement-(t-e.shareTxUntilMovement)%e.shareTxForMovement,(e.shareTxUntilMovement===e.shareTxForMovement||e.shareTxUntilMovement<=0)&&(++i,e.shareTxUntilMovement=e.shareTxForMovement);const o=.006*(i-1),s=o*(e.mv/100);e.influenceForecast(o),e.influenceForecastForecast(s)}function c(e,t,a){if(!(e instanceof n.a))return 0;const o=t===r.a.Long,s=a-i.a.StockMarketCommission,l=o?e.getAskPrice():e.getBidPrice();return Math.floor(s/l)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return u}));var n=a(5),r=a(23),i=a(8),o=a(167),s=a(287);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(){return{hack:0,str:0,def:0,dex:0,agi:0,cha:0,money:0}}class u{constructor(){l(this,"hacking",1),l(this,"strength",1),l(this,"defense",1),l(this,"dexterity",1),l(this,"agility",1),l(this,"charisma",1),l(this,"intelligence",1),l(this,"hp",10),l(this,"max_hp",10),l(this,"hacking_exp",0),l(this,"strength_exp",0),l(this,"defense_exp",0),l(this,"dexterity_exp",0),l(this,"agility_exp",0),l(this,"charisma_exp",0),l(this,"intelligence_exp",0),l(this,"hacking_mult",1),l(this,"strength_mult",1),l(this,"defense_mult",1),l(this,"dexterity_mult",1),l(this,"agility_mult",1),l(this,"charisma_mult",1),l(this,"hacking_exp_mult",1),l(this,"strength_exp_mult",1),l(this,"defense_exp_mult",1),l(this,"dexterity_exp_mult",1),l(this,"agility_exp_mult",1),l(this,"charisma_exp_mult",1),l(this,"hacking_chance_mult",1),l(this,"hacking_speed_mult",1),l(this,"hacking_money_mult",1),l(this,"hacking_grow_mult",1),l(this,"company_rep_mult",1),l(this,"faction_rep_mult",1),l(this,"crime_money_mult",1),l(this,"crime_success_mult",1),l(this,"work_money_mult",1),l(this,"hacknet_node_money_mult",1),l(this,"hacknet_node_purchase_cost_mult",1),l(this,"hacknet_node_ram_cost_mult",1),l(this,"hacknet_node_core_cost_mult",1),l(this,"hacknet_node_level_cost_mult",1),l(this,"bladeburner_max_stamina_mult",1),l(this,"bladeburner_stamina_gain_mult",1),l(this,"bladeburner_analysis_mult",1),l(this,"bladeburner_success_chance_mult",1),l(this,"augmentations",[]),l(this,"queuedAugmentations",[]),l(this,"city",r.a.Sector12)}applyAugmentation(e){for(const t in e.mults)null==this[t]?console.warn("Augmentation has unrecognized multiplier property: "+t):this[t]*=e.mults[t]}calculateStat(e,t=1){return Object(o.b)(e,t)}getFactionFieldWorkRepGain(){return.9*(this.hacking/i.a.MaxSkillLevel+this.strength/i.a.MaxSkillLevel+this.defense/i.a.MaxSkillLevel+this.dexterity/i.a.MaxSkillLevel+this.agility/i.a.MaxSkillLevel+this.charisma/i.a.MaxSkillLevel)/5.5*this.faction_rep_mult}getFactionHackingWorkRepGain(){return this.hacking/i.a.MaxSkillLevel*this.faction_rep_mult}getFactionSecurityWorkRepGain(){return.9*(this.hacking/i.a.MaxSkillLevel+this.strength/i.a.MaxSkillLevel+this.defense/i.a.MaxSkillLevel+this.dexterity/i.a.MaxSkillLevel+this.agility/i.a.MaxSkillLevel)/4.5*this.faction_rep_mult}resetMultipliers(){this.hacking_mult=1,this.strength_mult=1,this.defense_mult=1,this.dexterity_mult=1,this.agility_mult=1,this.charisma_mult=1,this.hacking_exp_mult=1,this.strength_exp_mult=1,this.defense_exp_mult=1,this.dexterity_exp_mult=1,this.agility_exp_mult=1,this.charisma_exp_mult=1,this.company_rep_mult=1,this.faction_rep_mult=1,this.crime_money_mult=1,this.crime_success_mult=1,this.work_money_mult=1}updateStatLevels(){this.hacking=Math.max(1,Math.floor(this.calculateStat(this.hacking_exp,this.hacking_mult*n.a.HackingLevelMultiplier))),this.strength=Math.max(1,Math.floor(this.calculateStat(this.strength_exp,this.strength_mult*n.a.StrengthLevelMultiplier))),this.defense=Math.max(1,Math.floor(this.calculateStat(this.defense_exp,this.defense_mult*n.a.DefenseLevelMultiplier))),this.dexterity=Math.max(1,Math.floor(this.calculateStat(this.dexterity_exp,this.dexterity_mult*n.a.DexterityLevelMultiplier))),this.agility=Math.max(1,Math.floor(this.calculateStat(this.agility_exp,this.agility_mult*n.a.AgilityLevelMultiplier))),this.charisma=Math.max(1,Math.floor(this.calculateStat(this.charisma_exp,this.charisma_mult*n.a.CharismaLevelMultiplier)));const e=this.hp/this.max_hp;this.max_hp=Math.floor(10+this.defense/10),this.hp=Math.round(this.max_hp*e)}getIntelligenceBonus(e){return Object(s.a)(this.intelligence,e)}}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(0),r=a.n(n),i=a(5);class o{constructor(e,t,a,n="",i=r.a.createElement(r.a.Fragment,null)){this.number=e,this.difficulty=t,this.name=a,this.desc=n,this.info=i}}const s={};function l(e){null==e.bitNodeN&&(e.bitNodeN=1);for(const e in i.a)i.a.hasOwnProperty(e)&&(i.a[e]=1);switch(i.a.StaneksGiftExtraSize=0,e.bitNodeN){case 1:break;case 2:i.a.HackingLevelMultiplier=.8,i.a.ServerGrowthRate=.8,i.a.ServerMaxMoney=.2,i.a.ServerStartingMoney=.4,i.a.CrimeMoney=3,i.a.InfiltrationMoney=3,i.a.FactionWorkRepGain=.5,i.a.FactionPassiveRepGain=0,i.a.StaneksGiftPowerMultiplier=2,i.a.StaneksGiftExtraSize=-6,i.a.PurchasedServerSoftcap=1.3,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=5;break;case 3:i.a.HackingLevelMultiplier=.8,i.a.RepToDonateToFaction=.5,i.a.AugmentationRepCost=3,i.a.AugmentationMoneyCost=3,i.a.ServerMaxMoney=.2,i.a.ServerStartingMoney=.2,i.a.ServerGrowthRate=.2,i.a.ScriptHackMoney=.2,i.a.CompanyWorkMoney=.25,i.a.CrimeMoney=.25,i.a.HacknetNodeMoney=.25,i.a.HomeComputerRamCost=1.5,i.a.PurchasedServerCost=2,i.a.StaneksGiftPowerMultiplier=.75,i.a.StaneksGiftExtraSize=-2,i.a.PurchasedServerSoftcap=1.3,i.a.GangSoftcap=.9,i.a.WorldDaemonDifficulty=2;break;case 4:i.a.ServerMaxMoney=.15,i.a.ServerStartingMoney=.75,i.a.ScriptHackMoney=.2,i.a.CompanyWorkMoney=.1,i.a.CrimeMoney=.2,i.a.HacknetNodeMoney=.05,i.a.CompanyWorkExpGain=.5,i.a.ClassGymExpGain=.5,i.a.FactionWorkExpGain=.5,i.a.HackExpGain=.4,i.a.CrimeExpGain=.5,i.a.FactionWorkRepGain=.75,i.a.StaneksGiftPowerMultiplier=1.5,i.a.StaneksGiftExtraSize=0,i.a.PurchasedServerSoftcap=1.2,i.a.WorldDaemonDifficulty=3;break;case 5:i.a.ServerMaxMoney=2,i.a.ServerStartingSecurity=2,i.a.ServerStartingMoney=.5,i.a.ScriptHackMoney=.15,i.a.HacknetNodeMoney=.2,i.a.CrimeMoney=.5,i.a.InfiltrationRep=1.5,i.a.InfiltrationMoney=1.5,i.a.AugmentationMoneyCost=2,i.a.HackExpGain=.5,i.a.CorporationValuation=.5,i.a.StaneksGiftPowerMultiplier=1.3,i.a.StaneksGiftExtraSize=0,i.a.PurchasedServerSoftcap=1.2,i.a.WorldDaemonDifficulty=1.5;break;case 6:i.a.HackingLevelMultiplier=.35,i.a.ServerMaxMoney=.4,i.a.ServerStartingMoney=.5,i.a.ServerStartingSecurity=1.5,i.a.ScriptHackMoney=.75,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.75,i.a.InfiltrationMoney=.75,i.a.CorporationValuation=.2,i.a.HacknetNodeMoney=.2,i.a.FactionPassiveRepGain=0,i.a.HackExpGain=.25,i.a.DaedalusAugsRequirement=1.166,i.a.PurchasedServerSoftcap=2,i.a.StaneksGiftPowerMultiplier=.5,i.a.StaneksGiftExtraSize=2,i.a.GangSoftcap=.7,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 7:i.a.BladeburnerRank=.6,i.a.BladeburnerSkillCost=2,i.a.AugmentationMoneyCost=3,i.a.HackingLevelMultiplier=.35,i.a.ServerMaxMoney=.4,i.a.ServerStartingMoney=.5,i.a.ServerStartingSecurity=1.5,i.a.ScriptHackMoney=.5,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.75,i.a.InfiltrationMoney=.75,i.a.CorporationValuation=.2,i.a.HacknetNodeMoney=.2,i.a.FactionPassiveRepGain=0,i.a.HackExpGain=.25,i.a.FourSigmaMarketDataCost=2,i.a.FourSigmaMarketDataApiCost=2,i.a.DaedalusAugsRequirement=1.166,i.a.PurchasedServerSoftcap=2,i.a.StaneksGiftPowerMultiplier=.9,i.a.StaneksGiftExtraSize=-1,i.a.GangSoftcap=.7,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 8:i.a.ScriptHackMoney=.3,i.a.ScriptHackMoneyGain=0,i.a.ManualHackMoney=0,i.a.CompanyWorkMoney=0,i.a.CrimeMoney=0,i.a.HacknetNodeMoney=0,i.a.InfiltrationMoney=0,i.a.RepToDonateToFaction=0,i.a.CorporationValuation=0,i.a.CodingContractMoney=0,i.a.StaneksGiftExtraSize=-7,i.a.PurchasedServerSoftcap=4,i.a.GangSoftcap=0,i.a.CorporationSoftCap=0;break;case 9:i.a.HackingLevelMultiplier=.5,i.a.StrengthLevelMultiplier=.45,i.a.DefenseLevelMultiplier=.45,i.a.DexterityLevelMultiplier=.45,i.a.AgilityLevelMultiplier=.45,i.a.CharismaLevelMultiplier=.45,i.a.PurchasedServerLimit=0,i.a.HomeComputerRamCost=5,i.a.CrimeMoney=.5,i.a.ScriptHackMoney=.1,i.a.HackExpGain=.05,i.a.ServerStartingMoney=.1,i.a.ServerMaxMoney=.1,i.a.ServerStartingSecurity=2.5,i.a.CorporationValuation=.5,i.a.FourSigmaMarketDataCost=5,i.a.FourSigmaMarketDataApiCost=4,i.a.BladeburnerRank=.9,i.a.BladeburnerSkillCost=1.2,i.a.StaneksGiftPowerMultiplier=.5,i.a.StaneksGiftExtraSize=2,i.a.GangSoftcap=.8,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 10:i.a.HackingLevelMultiplier=.35,i.a.StrengthLevelMultiplier=.4,i.a.DefenseLevelMultiplier=.4,i.a.DexterityLevelMultiplier=.4,i.a.AgilityLevelMultiplier=.4,i.a.CharismaLevelMultiplier=.4,i.a.CompanyWorkMoney=.5,i.a.CrimeMoney=.5,i.a.HacknetNodeMoney=.5,i.a.ManualHackMoney=.5,i.a.ScriptHackMoney=.5,i.a.CodingContractMoney=.5,i.a.InfiltrationMoney=.5,i.a.CorporationValuation=.5,i.a.AugmentationMoneyCost=5,i.a.AugmentationRepCost=2,i.a.HomeComputerRamCost=1.5,i.a.PurchasedServerCost=5,i.a.PurchasedServerLimit=.6,i.a.PurchasedServerMaxRam=.5,i.a.BladeburnerRank=.8,i.a.StaneksGiftPowerMultiplier=.75,i.a.StaneksGiftExtraSize=-3,i.a.PurchasedServerSoftcap=1.1,i.a.GangSoftcap=.9,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=2;break;case 11:i.a.HackingLevelMultiplier=.6,i.a.HackExpGain=.5,i.a.ServerMaxMoney=.1,i.a.ServerStartingMoney=.1,i.a.ServerGrowthRate=.2,i.a.ServerWeakenRate=2,i.a.CrimeMoney=3,i.a.CompanyWorkMoney=.5,i.a.HacknetNodeMoney=.1,i.a.AugmentationMoneyCost=2,i.a.InfiltrationMoney=2.5,i.a.InfiltrationRep=2.5,i.a.CorporationValuation=.1,i.a.CodingContractMoney=.25,i.a.FourSigmaMarketDataCost=4,i.a.FourSigmaMarketDataApiCost=4,i.a.PurchasedServerSoftcap=2,i.a.CorporationSoftCap=.9,i.a.WorldDaemonDifficulty=1.5;break;case 12:{let t=0;for(let a=0;aObject(o.a)({money:{color:e.colors.money}}));function l({hashes:e}){const t=s();return n.createElement("span",{className:t.money},"number"==typeof e?r.a.formatHashes(e):e)}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return I}));var n=a(21),r=a(233),i=a(38),o=a(462),s=a(244),l=a(125),c=a(314),u=a(557),m=a(231),h=a(22),p=a(202),d=a(225),f=a(375),g=a(25),y=a(558),b=a(242),E=a(31),k=a(57),v=a(4),_=a(5),w=a(269),S=a(181),C=a(24),x=a(356),O=a(15),M=a(13),T=a(20),R=a(6),A=a(769),P=a(113);function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class I{constructor(e){N(this,"numHosp",0),N(this,"moneyLost",0),N(this,"rank",0),N(this,"maxRank",0),N(this,"skillPoints",0),N(this,"totalSkillPoints",0),N(this,"teamSize",0),N(this,"teamLost",0),N(this,"hpLost",0),N(this,"storedCycles",0),N(this,"randomEventCounter",Object(E.a)(240,600)),N(this,"actionTimeToComplete",0),N(this,"actionTimeCurrent",0),N(this,"actionTimeOverflow",0),N(this,"action",new r.a({type:i.a.Idle})),N(this,"cities",{}),N(this,"city",k.a.CityNames[2]),N(this,"skills",{}),N(this,"skillMultipliers",{}),N(this,"staminaBonus",0),N(this,"maxStamina",0),N(this,"stamina",0),N(this,"contracts",{}),N(this,"operations",{}),N(this,"blackops",{}),N(this,"logging",{general:!0,contracts:!0,ops:!0,blackops:!0,events:!0}),N(this,"automateEnabled",!1),N(this,"automateActionHigh",new r.a({type:i.a.Idle})),N(this,"automateThreshHigh",0),N(this,"automateActionLow",new r.a({type:i.a.Idle})),N(this,"automateThreshLow",0),N(this,"consoleHistory",[]),N(this,"consoleLogs",["Bladeburner Console","Type 'help' to see console commands"]);for(let e=0;e50&&this.consoleHistory.splice(0,1));const a=t.split(";");for(let t=0;t100&&this.consoleLogs.shift())}log(e){this.postToConsole(`[${Object(A.a)()}] ${e}`)}resetAction(){this.action=new r.a({type:i.a.Idle})}clearConsole(){this.consoleLogs.length=0}prestige(){this.resetAction();const e=C.a.Bladeburners;this.rank>=k.a.RankNeededForFaction&&Object(P.d)(e)}storeCycles(e=0){this.storedCycles+=e}getActionIdFromTypeAndName(e="",t=""){if(""===e||""===t)return null;const a=new r.a,n=e.toLowerCase().trim(),o=t.toLowerCase().trim();switch(n){case"contract":case"contracts":case"contr":return a.type=i.a.Contract,this.contracts.hasOwnProperty(t)?(a.name=t,a):null;case"operation":case"operations":case"op":case"ops":return a.type=i.a.Operation,this.operations.hasOwnProperty(t)?(a.name=t,a):null;case"blackoperation":case"black operation":case"black operations":case"black op":case"black ops":case"blackop":case"blackops":return a.type=i.a.BlackOp,s.a.hasOwnProperty(t)?(a.name=t,a):null;case"general":case"general action":case"gen":break;default:return null}if(n.startsWith("gen")){switch(o){case"training":a.type=i.a.Training,a.name="Training";break;case"recruitment":case"recruit":a.type=i.a.Recruitment,a.name="Recruitment";break;case"field analysis":case"fieldanalysis":a.type=i.a["Field Analysis"],a.name="Field Analysis";break;case"diplomacy":a.type=i.a.Diplomacy,a.name="Diplomacy";break;case"hyperbolic regeneration chamber":a.type=i.a["Hyperbolic Regeneration Chamber"],a.name="Hyperbolic Regeneration Chamber";break;case"incite violence":a.type=i.a["Incite Violence"],a.name="Incite Violence";break;default:return null}return a}return null}executeStartConsoleCommand(e,t){if(3!==t.length)return this.postToConsole("Invalid usage of 'start' console command: start [type] [name]"),void this.postToConsole("Use 'help start' for more info");const a=t[2];switch(t[1].toLowerCase()){case"general":case"gen":null!=m.a[a]?(this.action.type=i.a[a],this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid action name specified: "+t[2]);break;case"contract":case"contracts":null!=this.contracts[a]?(this.action.type=i.a.Contract,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid contract name specified: "+t[2]);break;case"ops":case"op":case"operations":case"operation":null!=this.operations[a]?(this.action.type=i.a.Operation,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid Operation name specified: "+t[2]);break;case"blackops":case"blackop":case"black operations":case"black operation":null!=s.a[a]?(this.action.type=i.a.BlackOperation,this.action.name=a,this.startAction(e,this.action)):this.postToConsole("Invalid BlackOp name specified: "+t[2]);break;default:this.postToConsole("Invalid action/event type specified: "+t[1]),this.postToConsole("Examples of valid action/event identifiers are: [general, contract, op, blackop]")}}executeSkillConsoleCommand(e){switch(e.length){case 1:this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info");break;case 2:if("list"===e[1].toLowerCase()){this.postToConsole("Skills: ");const e=Object.keys(p.a);for(let t=0;t=n?(this.skillPoints-=n,this.upgradeSkill(a),this.log(a.name+" upgraded to Level "+this.skills[t])):this.postToConsole("You do not have enough Skill Points to upgrade this. You need "+Object(h.c)(n,0))}else this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info");break}default:this.postToConsole("Invalid usage of 'skill' console command: skill [action] [name]"),this.postToConsole("Use 'help skill' for more info")}}executeLogConsoleCommand(e){if(e.length<3)return this.postToConsole("Invalid usage of log command: log [enable/disable] [action/event]"),void this.postToConsole("Use 'help log' for more details and examples");let t=!0;switch(e[1].toLowerCase().includes("d")&&(t=!1),e[2].toLowerCase()){case"general":case"gen":this.logging.general=t,this.log("Logging "+(t?"enabled":"disabled")+" for general actions");break;case"contract":case"contracts":this.logging.contracts=t,this.log("Logging "+(t?"enabled":"disabled")+" for Contracts");break;case"ops":case"op":case"operations":case"operation":this.logging.ops=t,this.log("Logging "+(t?"enabled":"disabled")+" for Operations");break;case"blackops":case"blackop":case"black operations":case"black operation":this.logging.blackops=t,this.log("Logging "+(t?"enabled":"disabled")+" for BlackOps");break;case"event":case"events":this.logging.events=t,this.log("Logging "+(t?"enabled":"disabled")+" for events");break;case"all":this.logging.general=t,this.logging.contracts=t,this.logging.ops=t,this.logging.blackops=t,this.logging.events=t,this.log("Logging "+(t?"enabled":"disabled")+" for everything");break;default:this.postToConsole("Invalid action/event type specified: "+e[2]),this.postToConsole("Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]")}}executeHelpConsoleCommand(e){if(1===e.length)for(const e of y.a.helpList)this.postToConsole(e);else for(let t=1;t0&&(i*=Object(E.a)(2,4),--n.comms,++a.comms);const o=Math.round(n.pop*i);n.pop-=o,a.pop+=o}triggerPotentialMigration(e,t){(null==t||isNaN(t))&&console.error("Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()"),t>1&&(t/=100),Math.random()1&&(u=Math.pow(u,.8)),e.gainIntelligenceExp(u)}getDiplomacyEffectiveness(e){return(100-(Math.pow(e.charisma,.045)+e.charisma/1e3))/100}getRecruitmentSuccessChance(e){return Math.pow(e.charisma,.45)/(this.teamSize+1)}getRecruitmentTime(e){const t=e.charisma*this.skillMultipliers.effCha,a=Math.pow(t,.81)+t/90;return Math.max(10,Math.round(k.a.BaseRecruitmentTimeNeeded-a))}resetSkillMultipliers(){this.skillMultipliers={successChanceAll:1,successChanceStealth:1,successChanceKill:1,successChanceContract:1,successChanceOperation:1,successChanceEstimate:1,actionTime:1,effHack:1,effStr:1,effDef:1,effDex:1,effAgi:1,effCha:1,effInt:1,stamina:1,money:1,expGain:1}}updateSkillMultipliers(){this.resetSkillMultipliers();for(const e in this.skills)if(this.skills.hasOwnProperty(e)){const t=p.a[e];if(null==t)throw new Error("Could not find Skill Object for: "+e);const a=this.skills[e];if(null==a||a<=0)continue;const n=Object.keys(this.skillMultipliers);for(let e=0;e=1){let n;n=e?Math.ceil(a/2):Math.floor(a);const r=Object(E.a)(0,n);this.teamSize-=r,this.teamLost+=r,this.logging.ops&&r>0&&this.log("Lost "+Object(h.c)(r,0)+" team members during this "+t.name)}const n=this.getCurrentCity();switch(t.name){case"Investigation":e?n.improvePopulationEstimateByPercentage(.4*this.skillMultipliers.successChanceEstimate):this.triggerPotentialMigration(this.city,.1);break;case"Undercover Operation":e?n.improvePopulationEstimateByPercentage(.8*this.skillMultipliers.successChanceEstimate):this.triggerPotentialMigration(this.city,.15);break;case"Sting Operation":e&&n.changePopulationByPercentage(-.1,{changeEstEqually:!0,nonZero:!0}),n.changeChaosByCount(.1);break;case"Raid":if(e)n.changePopulationByPercentage(-1,{changeEstEqually:!0,nonZero:!0}),--n.comms;else{const e=Object(E.a)(-10,-5)/10;n.changePopulationByPercentage(e,{nonZero:!0,changeEstEqually:!1})}n.changeChaosByPercentage(Object(E.a)(1,5));break;case"Stealth Retirement Operation":e&&n.changePopulationByPercentage(-.5,{changeEstEqually:!0,nonZero:!0}),n.changeChaosByPercentage(Object(E.a)(-3,-1));break;case"Assassination":e&&n.changePopulationByCount(-1,{estChange:-1,estOffset:0}),n.changeChaosByPercentage(Object(E.a)(-5,5));break;default:throw new Error("Invalid Action name in completeOperation: "+this.action.name)}}getActionObject(e){switch(e.type){case i.a.Contract:return this.contracts[e.name];case i.a.Operation:return this.operations[e.name];case i.a.BlackOp:case i.a.BlackOperation:return s.a[e.name];case i.a.Training:return m.a.Training;case i.a["Field Analysis"]:return m.a["Field Analysis"];case i.a.Recruitment:return m.a.Recruitment;case i.a.Diplomacy:return m.a.Diplomacy;case i.a["Hyperbolic Regeneration Chamber"]:return m.a["Hyperbolic Regeneration Chamber"];case i.a["Incite Violence"]:return m.a["Incite Violence"];default:return null}}completeContract(e){if(this.action.type!==i.a.Contract)throw new Error("completeContract() called even though current action is not a Contract");const t=this.getCurrentCity();if(e)switch(this.action.name){case"Tracking":t.improvePopulationEstimateByCount(Object(E.a)(100,1e3));break;case"Bounty Hunter":t.changePopulationByCount(-1,{estChange:-1,estOffset:0}),t.changeChaosByCount(.02);break;case"Retirement":t.changePopulationByCount(-1,{estChange:-1,estOffset:0}),t.changeChaosByCount(.04);break;default:throw new Error("Invalid Action name in completeContract: "+this.action.name)}}completeAction(e,t){switch(this.action.type){case i.a.Contract:case i.a.Operation:try{const e=this.action.type===i.a.Operation,a=this.getActionObject(this.action);if(null==a)throw new Error("Failed to get Contract/Operation Object for: "+this.action.name);const n=a.getDifficulty(),r=Math.pow(n,k.a.DiffMultExponentialFactor)+n/k.a.DiffMultLinearFactor,o=Math.pow(a.rewardFac,a.level-1);if(this.stamina-=k.a.BaseStaminaLoss*r,this.stamina<0&&(this.stamina=0),a.attempt(this)){this.gainActionStats(t,a,!0),++a.successes,--a.count;let n=0;if(e||(n=k.a.ContractBaseMoneyGain*o*this.skillMultipliers.money,t.gainMoney(n,"bladeburner")),e?a.setMaxLevel(k.a.OperationSuccessesPerLevel):a.setMaxLevel(k.a.ContractSuccessesPerLevel),a.rankGain){const r=Object(w.a)(a.rankGain*o*_.a.BladeburnerRank,10);this.changeRank(t,r),e&&this.logging.ops?this.log(a.name+" successfully completed! Gained "+Object(h.c)(r,3)+" rank"):!e&&this.logging.contracts&&this.log(a.name+" contract successfully completed! Gained "+Object(h.c)(r,3)+" rank and "+v.a.formatMoney(n))}e?this.completeOperation(!0):this.completeContract(!0)}else{this.gainActionStats(t,a,!1),++a.failures;let n=0,i=0;if(a.rankLoss&&(n=Object(w.a)(a.rankLoss*o,10),this.changeRank(t,-1*n)),a.hpLoss){i=a.hpLoss*r,i=Math.ceil(Object(w.a)(i,10)),this.hpLost+=i;const e=Object(x.a)(t,i);t.takeDamage(i)&&(++this.numHosp,this.moneyLost+=e)}let s="";n>0&&(s+="Lost "+Object(h.c)(n,3)+" rank. "),i>0&&(s+="Took "+Object(h.c)(i,0)+" damage."),e&&this.logging.ops?this.log(a.name+" failed! "+s):!e&&this.logging.contracts&&this.log(a.name+" contract failed! "+s),e?this.completeOperation(!1):this.completeContract(!1)}a.autoLevel&&(a.level=a.maxLevel),this.startAction(t,this.action)}catch(e){Object(b.a)(e)}break;case i.a.BlackOp:case i.a.BlackOperation:try{const a=this.getActionObject(this.action);if(null==a||!(a instanceof l.a))throw new Error("Failed to get BlackOperation Object for: "+this.action.name);const n=a.getDifficulty(),r=Math.pow(n,k.a.DiffMultExponentialFactor)+n/k.a.DiffMultLinearFactor;this.stamina-=k.a.BaseStaminaLoss*r,this.stamina<0&&(this.stamina=0);const i=a.teamCount;let o;if(a.attempt(this)){this.gainActionStats(t,a,!0),a.count=0,this.blackops[a.name]=!0;let n=0;if(a.rankGain&&(n=Object(w.a)(a.rankGain*_.a.BladeburnerRank,10),this.changeRank(t,n)),o=Math.ceil(i/2),"Operation Daedalus"===a.name)return this.resetAction(),e.toBitVerse(!1,!1);this.logging.blackops&&this.log(a.name+" successful! Gained "+Object(h.c)(n,1)+" rank")}else{this.gainActionStats(t,a,!1);let e=0,n=0;if(a.rankLoss&&(e=Object(w.a)(a.rankLoss,10),this.changeRank(t,-1*e)),a.hpLoss){n=a.hpLoss*r,n=Math.ceil(Object(w.a)(n,10));const e=Object(x.a)(t,n);t.takeDamage(n)&&(++this.numHosp,this.moneyLost+=e)}o=Math.floor(i),this.logging.blackops&&this.log(a.name+" failed! Lost "+Object(h.c)(e,1)+" rank and took "+Object(h.c)(n,0)+" damage")}if(this.resetAction(),i>=1){const e=Object(E.a)(1,o);this.teamSize-=e,this.teamLost+=e,this.logging.blackops&&this.log("You lost "+Object(h.c)(e,0)+" team members during "+a.name)}}catch(e){Object(b.a)(e)}break;case i.a.Training:{this.stamina-=.5*k.a.BaseStaminaLoss;const e=30*t.strength_exp_mult,a=30*t.defense_exp_mult,n=30*t.dexterity_exp_mult,r=30*t.agility_exp_mult,i=.04*this.skillMultipliers.stamina;t.gainStrengthExp(e),t.gainDefenseExp(a),t.gainDexterityExp(n),t.gainAgilityExp(r),this.staminaBonus+=i,this.logging.general&&this.log("Training completed. Gained: "+Object(h.c)(e,1)+" str exp, "+Object(h.c)(a,1)+" def exp, "+Object(h.c)(n,1)+" dex exp, "+Object(h.c)(r,1)+" agi exp, "+Object(h.c)(i,3)+" max stamina"),this.startAction(t,this.action);break}case i.a.FieldAnalysis:case i.a["Field Analysis"]:{let e=.04*Math.pow(t.hacking,.3)+.04*Math.pow(t.intelligence,.9)+.02*Math.pow(t.charisma,.3);if(e*=t.bladeburner_analysis_mult,isNaN(e)||e<0)throw new Error("Field Analysis Effectiveness calculated to be NaN or negative");const a=20*t.hacking_exp_mult,n=20*t.charisma_exp_mult;t.gainHackingExp(a),t.gainIntelligenceExp(k.a.BaseIntGain),t.gainCharismaExp(n),this.changeRank(t,.1*_.a.BladeburnerRank),this.getCurrentCity().improvePopulationEstimateByPercentage(e*this.skillMultipliers.successChanceEstimate),this.logging.general&&this.log("Field analysis completed. Gained 0.1 rank, "+Object(h.c)(a,1)+" hacking exp, and "+Object(h.c)(n,1)+" charisma exp"),this.startAction(t,this.action);break}case i.a.Recruitment:{const e=this.getRecruitmentSuccessChance(t);if(Math.random()=a){const e=Math.floor((this.maxRank-a)/k.a.RanksPerSkillPoint+1);this.skillPoints+=e,this.totalSkillPoints+=e}}processAction(e,t,a){if(this.action.type!==i.a.Idle){if(this.actionTimeToComplete<=0)throw new Error(`Invalid actionTimeToComplete value: ${this.actionTimeToComplete}, type; ${this.action.type}`);if(!(this.action instanceof r.a))throw new Error("Bladeburner.action is not an ActionIdentifier Object");return this.actionTimeCurrent+=a+this.actionTimeOverflow,this.actionTimeOverflow=0,this.actionTimeCurrent>=this.actionTimeToComplete?(this.actionTimeOverflow=this.actionTimeCurrent-this.actionTimeToComplete,this.completeAction(e,t)):void 0}}calculateStaminaGainPerSecond(e){const t=e.agility*this.skillMultipliers.effAgi,a=this.maxStamina/k.a.MaxStaminaToGainFactor;return(k.a.StaminaGainPerSecond+a)*Math.pow(t,.17)*(this.skillMultipliers.stamina*e.bladeburner_stamina_gain_mult)}calculateMaxStamina(e){const t=e.agility*this.skillMultipliers.effAgi,a=(Math.pow(t,.8)+this.staminaBonus)*this.skillMultipliers.stamina*e.bladeburner_max_stamina_mult;if(this.maxStamina!==a){const e=this.maxStamina;this.maxStamina=a,this.stamina=this.maxStamina*this.stamina/e}if(isNaN(a))throw new Error("Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()")}create(){this.contracts.Tracking=new u.a({name:"Tracking",baseDifficulty:125,difficultyFac:1.02,rewardFac:1.041,rankGain:.3,hpLoss:.5,count:Object(E.a)(25,150),weights:{hack:0,str:.05,def:.05,dex:.35,agi:.35,cha:.1,int:.05},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.9,int:1},isStealth:!0}),this.contracts["Bounty Hunter"]=new u.a({name:"Bounty Hunter",baseDifficulty:250,difficultyFac:1.04,rewardFac:1.085,rankGain:.9,hpLoss:1,count:Object(E.a)(5,150),weights:{hack:0,str:.15,def:.15,dex:.25,agi:.25,cha:.1,int:.1},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.8,int:.9},isKill:!0}),this.contracts.Retirement=new u.a({name:"Retirement",baseDifficulty:200,difficultyFac:1.03,rewardFac:1.065,rankGain:.6,hpLoss:1,count:Object(E.a)(5,150),weights:{hack:0,str:.2,def:.2,dex:.2,agi:.2,cha:.1,int:.1},decays:{hack:0,str:.91,def:.91,dex:.91,agi:.91,cha:.8,int:.9},isKill:!0}),this.operations.Investigation=new c.a({name:"Investigation",baseDifficulty:400,difficultyFac:1.03,rewardFac:1.07,reqdRank:25,rankGain:2.2,rankLoss:.2,count:Object(E.a)(1,100),weights:{hack:.25,str:.05,def:.05,dex:.2,agi:.1,cha:.25,int:.1},decays:{hack:.85,str:.9,def:.9,dex:.9,agi:.9,cha:.7,int:.9},isStealth:!0}),this.operations["Undercover Operation"]=new c.a({name:"Undercover Operation",baseDifficulty:500,difficultyFac:1.04,rewardFac:1.09,reqdRank:100,rankGain:4.4,rankLoss:.4,hpLoss:2,count:Object(E.a)(1,100),weights:{hack:.2,str:.05,def:.05,dex:.2,agi:.2,cha:.2,int:.1},decays:{hack:.8,str:.9,def:.9,dex:.9,agi:.9,cha:.7,int:.9},isStealth:!0}),this.operations["Sting Operation"]=new c.a({name:"Sting Operation",baseDifficulty:650,difficultyFac:1.04,rewardFac:1.095,reqdRank:500,rankGain:5.5,rankLoss:.5,hpLoss:2.5,count:Object(E.a)(1,150),weights:{hack:.25,str:.05,def:.05,dex:.25,agi:.1,cha:.2,int:.1},decays:{hack:.8,str:.85,def:.85,dex:.85,agi:.85,cha:.7,int:.9},isStealth:!0}),this.operations.Raid=new c.a({name:"Raid",baseDifficulty:800,difficultyFac:1.045,rewardFac:1.1,reqdRank:3e3,rankGain:55,rankLoss:2.5,hpLoss:50,count:Object(E.a)(1,150),weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.7,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.9},isKill:!0}),this.operations["Stealth Retirement Operation"]=new c.a({name:"Stealth Retirement Operation",baseDifficulty:1e3,difficultyFac:1.05,rewardFac:1.11,reqdRank:2e4,rankGain:22,rankLoss:2,hpLoss:10,count:Object(E.a)(1,150),weights:{hack:.1,str:.1,def:.1,dex:.3,agi:.3,cha:0,int:.1},decays:{hack:.7,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.9},isStealth:!0,isKill:!0}),this.operations.Assassination=new c.a({name:"Assassination",baseDifficulty:1500,difficultyFac:1.06,rewardFac:1.14,reqdRank:5e4,rankGain:44,rankLoss:4,hpLoss:5,count:Object(E.a)(1,150),weights:{hack:.1,str:.1,def:.1,dex:.3,agi:.3,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.8},isStealth:!0,isKill:!0})}process(e,t){if(e.page()!==g.a.BitVerse&&this.blackops.hasOwnProperty("Operation Daedalus"))return e.toBitVerse(!1,!1);if(!1===T.a[R.a.BladesSimulacrum].owned&&t.isWorking){if(this.action.type!==i.a.Idle){let e="Your Bladeburner action was cancelled because you started doing something else.";this.automateEnabled&&(e+="
Your automation was disabled as well. You will have to re-enable it through the Bladeburner console",this.automateEnabled=!1),M.a.SuppressBladeburnerPopup||Object(O.a)(e)}this.resetAction()}if(this.stamina<=0&&(this.log("Your Bladeburner action was cancelled because your stamina hit 0"),this.resetAction()),this.storedCycles>=k.a.CyclesPerSecond){let a=Math.floor(this.storedCycles/k.a.CyclesPerSecond);a=Math.min(a,5),this.storedCycles-=a*k.a.CyclesPerSecond,this.calculateMaxStamina(t),this.stamina+=this.calculateStaminaGainPerSecond(t)*a,this.stamina=Math.min(this.maxStamina,this.stamina);for(const e of Object.values(this.contracts)){const t=o.a[e.name];if(void 0===t)throw new Error(`growth formula for action '${e.name}' is undefined`);e.count+=a*t()/k.a.ActionCountGrowthPeriod}for(const e of Object.values(this.operations)){const t=o.a[e.name];if(void 0===t)throw new Error(`growth formula for action '${e.name}' is undefined`);void 0!==t&&(e.count+=a*t()/k.a.ActionCountGrowthPeriod)}for(const e of k.a.CityNames){const t=this.cities[e];if(!(t instanceof f.a))throw new Error("Invalid City object when processing passive chaos reduction in Bladeburner.process");t.chaos-=1e-4*a,t.chaos=Math.max(0,t.chaos)}this.randomEventCounter-=a,this.randomEventCounter<=0&&(this.randomEvent(),this.randomEventCounter+=Object(E.a)(240,600)),this.processAction(e,t,a),this.automateEnabled&&(this.stamina<=this.automateThreshLow?this.action.name===this.automateActionLow.name&&this.action.type===this.automateActionLow.type||(this.action=new r.a({type:this.automateActionLow.type,name:this.automateActionLow.name}),this.startAction(t,this.action)):this.stamina>=this.automateThreshHigh&&(this.action.name===this.automateActionHigh.name&&this.action.type===this.automateActionHigh.type||(this.action=new r.a({type:this.automateActionHigh.type,name:this.automateActionHigh.name}),this.startAction(t,this.action))))}}getTypeAndNameFromActionId(e){const t={type:"",name:""},a=Object.keys(i.a);for(let n=0;nr),!1;if(o.type===i.a.BlackOp){const e=this.getActionObject(o);if(null==e)throw new Error(`Action not found ${o.type}, ${o.name}`);if(!(e instanceof l.a))throw new Error("Action should be BlackOperation but isn't");if(e.reqdRank>this.rank)return n.log("bladeburner.startAction",()=>`Insufficient rank to start Black Op '${o.name}'.`),!1;if(null!=this.blackops[o.name])return n.log("bladeburner.startAction",()=>`Black Op ${o.name} has already been completed.`),!1;const t=[];for(const e in s.a)s.a.hasOwnProperty(e)&&t.push(e);t.sort((function(e,t){return s.a[e].reqdRank-s.a[t].reqdRank}));const r=t.indexOf(o.name);if(-1===r)return n.log("bladeburner.startAction",()=>`Invalid Black Op: '${a}'`),!1;if(r>0&&null==this.blackops[t[r-1]])return n.log("bladeburner.startAction",()=>`Preceding Black Op must be completed before starting '${o.name}'.`),!1}try{return this.startAction(e,o),n.log("bladeburner.startAction",()=>`Starting bladeburner action with type '${t}' and name ${a}"`),!0}catch(e){return this.resetAction(),n.log("bladeburner.startAction",()=>r),!1}}getActionTimeNetscriptFn(e,t,a,n){const r=`Invalid action: type='${t}' name='${a}'`,o=this.getActionIdFromTypeAndName(t,a);if(null==o)return n.log("bladeburner.getActionTime",()=>r),-1;const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.getActionTime",()=>r),-1;switch(o.type){case i.a.Contract:case i.a.Operation:case i.a.BlackOp:case i.a.BlackOperation:return 1e3*s.getActionTime(this);case i.a.Training:case i.a["Field Analysis"]:case i.a.FieldAnalysis:return 3e4;case i.a.Recruitment:return 1e3*this.getRecruitmentTime(e);case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return 6e4;default:return n.log("bladeburner.getActionTime",()=>r),-1}}getActionEstimatedSuccessChanceNetscriptFn(e,t,a,n){const r=`Invalid action: type='${t}' name='${a}'`,o=this.getActionIdFromTypeAndName(t,a);if(null==o)return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1];const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1];switch(o.type){case i.a.Contract:case i.a.Operation:case i.a.BlackOp:case i.a.BlackOperation:return s.getEstSuccessChance(this);case i.a.Training:case i.a["Field Analysis"]:case i.a.FieldAnalysis:case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return[1,1];case i.a.Recruitment:{const t=this.getRecruitmentSuccessChance(e);return[t,t]}default:return n.log("bladeburner.getActionEstimatedSuccessChance",()=>r),[-1,-1]}}getActionCountRemainingNetscriptFn(e,t,a){const n=`Invalid action: type='${e}' name='${t}'`,r=this.getActionIdFromTypeAndName(e,t);if(null==r)return a.log("bladeburner.getActionCountRemaining",()=>n),-1;const o=this.getActionObject(r);if(null==o)return a.log("bladeburner.getActionCountRemaining",()=>n),-1;switch(r.type){case i.a.Contract:case i.a.Operation:return Math.floor(o.count);case i.a.BlackOp:case i.a.BlackOperation:return null!=this.blackops[t]?0:1;case i.a.Training:case i.a.Recruitment:case i.a["Field Analysis"]:case i.a.FieldAnalysis:case i.a.Diplomacy:case i.a["Hyperbolic Regeneration Chamber"]:case i.a["Incite Violence"]:return 1/0;default:return a.log("bladeburner.getActionCountRemaining",()=>n),-1}}getSkillLevelNetscriptFn(e,t){return""!==e&&p.a.hasOwnProperty(e)?null==this.skills[e]?0:this.skills[e]:(t.log("bladeburner.getSkillLevel",()=>`Invalid skill: '${e}'`),-1)}getSkillUpgradeCostNetscriptFn(e,t){if(""===e||!p.a.hasOwnProperty(e))return t.log("bladeburner.getSkillUpgradeCost",()=>`Invalid skill: '${e}'`),-1;const a=p.a[e];return null==this.skills[e]?a.calculateCost(0):a.calculateCost(this.skills[e])}upgradeSkillNetscriptFn(e,t){const a=`Invalid skill: '${e}'`;if(!p.a.hasOwnProperty(e))return t.log("bladeburner.upgradeSkill",()=>a),!1;const n=p.a[e];let r=0;this.skills[e]&&!isNaN(this.skills[e])&&(r=this.skills[e]);const i=n.calculateCost(r);return n.maxLvl&&r>=n.maxLvl?(t.log("bladeburner.upgradeSkill",()=>`Skill '${e}' is already maxed.`),!1):this.skillPoints`You do not have enough skill points to upgrade ${e} (You have ${this.skillPoints}, you need ${i})`),!1):(this.skillPoints-=i,this.upgradeSkill(n),t.log("bladeburner.upgradeSkill",()=>`'${e}' upgraded to level ${this.skills[e]}`),!0)}getTeamSizeNetscriptFn(e,t,a){if(""===e&&""===t)return this.teamSize;const n=`Invalid action: type='${e}' name='${t}'`,r=this.getActionIdFromTypeAndName(e,t);if(null==r)return a.log("bladeburner.getTeamSize",()=>n),-1;const o=this.getActionObject(r);return null==o?(a.log("bladeburner.getTeamSize",()=>n),-1):r.type===i.a.Operation||r.type===i.a.BlackOp||r.type===i.a.BlackOperation?o.teamCount:0}setTeamSizeNetscriptFn(e,t,a,n){const r=`Invalid action: type='${e}' name='${t}'`,o=this.getActionIdFromTypeAndName(e,t);if(null==o)return n.log("bladeburner.setTeamSize",()=>r),-1;if(o.type!==i.a.Operation&&o.type!==i.a.BlackOp&&o.type!==i.a.BlackOperation)return n.log("bladeburner.setTeamSize",()=>"Only valid for 'Operations' and 'BlackOps'"),-1;const s=this.getActionObject(o);if(null==s)return n.log("bladeburner.setTeamSize",()=>r),-1;let l=Math.round(a);return isNaN(l)||l<0?(n.log("bladeburner.setTeamSize",()=>"Invalid size: "+a),-1):(this.teamSize`Team size for '${t}' set to ${l}.`),l)}joinBladeburnerFactionNetscriptFn(e){const t=C.a.Bladeburners;return!!t.isMember||(this.rank>=k.a.RankNeededForFaction?(Object(P.d)(t),e.log("bladeburner.joinBladeburnerFaction",()=>"Joined Bladeburners faction."),!0):(e.log("bladeburner.joinBladeburnerFaction",()=>`You do not have the required rank (${this.rank}/${k.a.RankNeededForFaction}).`),!1))}toJSON(){return Object(n.b)("Bladeburner",this)}static fromJSON(e){return Object(n.a)(I,e.data)}}n.c.constructors.Bladeburner=I},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(322),r=a(28),i=a(8),o=a(21);const s={name:"",info:"",companyPositions:{},expMultiplier:1,salaryMultiplier:1,jobStatReqOffset:0};class l{constructor(e=s){this.name=e.name,this.info=e.info,this.companyPositions=e.companyPositions,this.expMultiplier=e.expMultiplier,this.salaryMultiplier=e.salaryMultiplier,this.jobStatReqOffset=e.jobStatReqOffset,this.isPlayerEmployed=!1,this.playerReputation=1,this.favor=0,this.rolloverRep=0,this.isMegacorp=!1,e.isMegacorp&&(this.isMegacorp=!0)}hasPosition(e){return e instanceof n.a?null!=this.companyPositions[e.name]:null!=this.companyPositions[e]}hasAgentPositions(){return null!=this.companyPositions[r.a[0]]}hasBusinessConsultantPositions(){return null!=this.companyPositions[r.c[0]]}hasBusinessPositions(){return null!=this.companyPositions[r.b[0]]}hasEmployeePositions(){return null!=this.companyPositions[r.e[1]]}hasITPositions(){return null!=this.companyPositions[r.d[0]]}hasSecurityPositions(){return null!=this.companyPositions[r.h[2]]}hasSoftwareConsultantPositions(){return null!=this.companyPositions[r.k[0]]}hasSoftwarePositions(){return null!=this.companyPositions[r.j[0]]}hasWaiterPositions(){return null!=this.companyPositions[r.e[0]]}gainFavor(){null==this.favor&&(this.favor=0),null==this.rolloverRep&&(this.rolloverRep=0);const e=this.getFavorGain();2==e.length?(this.favor+=e[0],this.rolloverRep=e[1]):console.error("Invalid result from getFavorGain() function")}getFavorGain(){null==this.favor&&(this.favor=0),null==this.rolloverRep&&(this.rolloverRep=0);let e=0,t=this.playerReputation+this.rolloverRep,a=i.a.CompanyReputationToFavorBase*Math.pow(i.a.CompanyReputationToFavorMult,this.favor);for(;t>0&&t>=a;)++e,t-=a,a*=i.a.FactionReputationToFavorMult;return[e,t]}toJSON(){return Object(o.b)("Company",this)}static fromJSON(e){return Object(o.a)(l,e.data)}}o.c.constructors.Company=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"e",(function(){return h})),a.d(t,"d",(function(){return p}));var n=a(27),r=a(119),i=a(5),o=a(8),s=a(15),l=a(782);function c(e){const t=Math.round(e);if(isNaN(t)||!Object(l.a)(t))return 1/0;if(t>m())return 1/0;const a=Math.max(0,Math.log(t)/Math.log(2)-6);return t*o.a.BaseCostFor1GBOfRamServer*i.a.PurchasedServerCost*Math.pow(i.a.PurchasedServerSoftcap,a)}function u(){return Math.round(o.a.PurchasedServerLimit*i.a.PurchasedServerLimit)}function m(){const e=Math.round(o.a.PurchasedServerMaxRam*i.a.PurchasedServerMaxRam);return 1<<31-Math.clz32(e)}function h(e,t,a,i){if(!i.canAfford(a))return void Object(s.a)("You don't have enough money to purchase this server!");if(i.purchasedServers.length>=u())return void Object(s.a)("You have reached the maximum limit of "+u()+" servers. You cannot purchase any more. You can delete some of your purchased servers using the deleteServer() Netscript function in a script");if(""==e)return void Object(s.a)("You must enter a hostname for your new server!");const o=Object(r.f)({adminRights:!0,hostname:e,ip:Object(n.e)(),isConnectedTo:!1,maxRam:t,organizationName:"",purchasedByPlayer:!0});Object(n.a)(o),i.purchasedServers.push(o.hostname);const l=i.getHomeComputer();l.serversOnNetwork.push(o.hostname),o.serversOnNetwork.push(l.hostname),i.loseMoney(a,"servers"),Object(s.a)("Server successfully purchased with hostname "+e)}function p(e){const t=e.getUpgradeHomeRamCost();if(!e.canAfford(t))return void Object(s.a)("You do not have enough money to purchase additional RAM for your home computer");const a=e.getHomeComputer();a.maxRam>=o.a.HomeComputerMaxRam?Object(s.a)("You cannot upgrade your home computer RAM because it is at its maximum possible value"):(a.maxRam*=2,e.loseMoney(t,"servers"))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(175),r=a(164),i=a(21),o=a(242);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l{constructor(e={}){var t;s(this,"level",1),s(this,"sizeUsed",0),s(this,"smartSupplyEnabled",!1),s(this,"smartSupplyUseLeftovers",{}),s(this,"smartSupplyStore",0),this.loc=e.loc?e.loc:"",this.size=e.size?e.size:0,this.materials={Water:new n.a({name:"Water"}),Energy:new n.a({name:"Energy"}),Food:new n.a({name:"Food"}),Plants:new n.a({name:"Plants"}),Metal:new n.a({name:"Metal"}),Hardware:new n.a({name:"Hardware"}),Chemicals:new n.a({name:"Chemicals"}),Drugs:new n.a({name:"Drugs"}),Robots:new n.a({name:"Robots"}),AICores:new n.a({name:"AI Cores"}),RealEstate:new n.a({name:"Real Estate"})},this.smartSupplyUseLeftovers={Water:!0,Energy:!0,Food:!0,Plants:!0,Metal:!0,Hardware:!0,Chemicals:!0,Drugs:!0,Robots:!0,AICores:!0,RealEstate:!0},e.corp&&e.industry&&this.updateSize(e.corp,e.industry),null!==(t=e.corp)&&void 0!==t&&t.unlockUpgrades[1]&&(this.smartSupplyEnabled=!0)}updateMaterialSizeUsed(){this.sizeUsed=0;for(const e in this.materials){const t=this.materials[e];r.a.hasOwnProperty(e)&&(this.sizeUsed+=t.qty*r.a[e])}this.sizeUsed>this.size&&console.warn("Warehouse size used greater than capacity, something went wrong")}updateSize(e,t){try{this.size=100*this.level*e.getStorageMultiplier()*t.getStorageMultiplier()}catch(e){Object(o.a)(e)}}toJSON(){return Object(i.b)("Warehouse",this)}static fromJSON(e){return Object(i.a)(l,e.data)}}i.c.constructors.Warehouse=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(772),r=a(506);const i={};n.a.forEach(e=>{i[e.name]=new r.a(e.name,e.desc,e.isHacking,e.isCombat,e.params)})},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"d",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(69),r=a(187);const i=[];class o{constructor(e,t,a,n,r){this.id=e,this.shape=t,this.type=a,this.power=n,this.limit=r}fullAt(e,t,a){if(t<0)return!1;if(t>=this.height(a))return!1;if(e<0)return!1;if(e>=this.width(a))return!1;let[n,r,i,o]=[0,0,1,1];1===a?[n,r,i,o]=[this.width(a)-1,0,-1,1]:2===a?[n,r,i,o]=[this.width(a)-1,this.height(a)-1,-1,-1]:3===a&&([n,r,i,o]=[0,this.height(a)-1,1,-1]);let[s,l]=[n+i*e,r+o*t];return a%2==1&&([s,l]=[l,s]),this.shape[l][s]}width(e){return e%2==0?this.shape[0].length:this.shape.length}height(e){return e%2==0?this.shape.length:this.shape[0].length}neighboors(e){const t=[],a=(a,n)=>{this.fullAt(a,n,e)||t.some(e=>e[0]===a&&e[1]===n)||t.push([a,n])};for(let t=0;tt[0]===e[0]&&t[1]===e[1])||n.push(e);return n}copy(){return new o(this.id,this.shape.map(e=>e.slice()),this.type,this.power,this.limit)}}function s(e){for(const t of i)if(t.id===e)return t;return null}!function(){const e=!1,t=!0;i.push(new o(0,r.a.S,n.b.Hacking,1,1)),i.push(new o(1,r.a.Z,n.b.Hacking,1,1)),i.push(new o(5,r.a.T,n.b.HackingSpeed,1.3,1)),i.push(new o(6,r.a.I,n.b.HackingMoney,2,1)),i.push(new o(7,r.a.J,n.b.HackingGrow,.5,1)),i.push(new o(10,r.a.T,n.b.Strength,2,1)),i.push(new o(12,r.a.L,n.b.Defense,2,1)),i.push(new o(14,r.a.L,n.b.Dexterity,2,1)),i.push(new o(16,r.a.S,n.b.Agility,2,1)),i.push(new o(18,r.a.S,n.b.Charisma,3,1)),i.push(new o(20,r.a.I,n.b.HacknetMoney,1,1)),i.push(new o(21,r.a.O,n.b.HacknetCost,-1,1)),i.push(new o(25,r.a.J,n.b.Rep,.5,1)),i.push(new o(27,r.a.J,n.b.WorkMoney,10,1)),i.push(new o(28,r.a.L,n.b.Crime,2,1)),i.push(new o(30,r.a.S,n.b.Bladeburner,.4,1)),i.push(new o(100,[[e,t,t],[t,t,e],[e,t,e]],n.b.Booster,1.1,99)),i.push(new o(101,[[t,t,t,t],[t,e,e,e]],n.b.Booster,1.1,99)),i.push(new o(102,[[e,t,t,t],[t,t,e,e]],n.b.Booster,1.1,99)),i.push(new o(103,[[t,t,t,e],[e,e,t,t]],n.b.Booster,1.1,99)),i.push(new o(104,[[e,t,t],[e,t,e],[t,t,e]],n.b.Booster,1.1,99)),i.push(new o(105,[[e,e,t],[e,t,t],[t,t,e]],n.b.Booster,1.1,99)),i.push(new o(106,[[t,e,e],[t,t,t],[t,e,e]],n.b.Booster,1.1,99)),i.push(new o(107,[[e,t,e],[t,t,t],[e,t,e]],n.b.Booster,1.1,99))}();const l=new o(-2,[],n.b.None,0,1/0),c=new o(-2,[],n.b.Delete,0,1/0)},function(e,t,a){"use strict";a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return l}));var n=a(8),r=a(5);function i(e){let t=1+e.favor/100;return isNaN(t)&&(t=1),t*r.a.FactionWorkRepGain}function o(e,t){return(e.hacking+e.intelligence/3)/n.a.MaxSkillLevel*e.faction_rep_mult*e.getIntelligenceBonus(1)*i(t)}function s(e,t){return.9*(e.hacking/n.a.MaxSkillLevel+e.strength/n.a.MaxSkillLevel+e.defense/n.a.MaxSkillLevel+e.dexterity/n.a.MaxSkillLevel+e.agility/n.a.MaxSkillLevel+e.intelligence/n.a.MaxSkillLevel)/4.5*e.faction_rep_mult*i(t)*e.getIntelligenceBonus(1)}function l(e,t){return.9*(e.hacking/n.a.MaxSkillLevel+e.strength/n.a.MaxSkillLevel+e.defense/n.a.MaxSkillLevel+e.dexterity/n.a.MaxSkillLevel+e.agility/n.a.MaxSkillLevel+e.charisma/n.a.MaxSkillLevel+e.intelligence/n.a.MaxSkillLevel)/5.5*e.faction_rep_mult*i(t)*e.getIntelligenceBonus(1)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"d",(function(){return p})),a.d(t,"b",(function(){return d}));var n=a(204),r=a(68),i=a(8),o=a(2),s=a(4),l=a(16),c=a(15),u=a(0);function m(e,t,a=null,m={}){if((t=Math.round(t))<=0)return!1;if(null==e||isNaN(t))return a?a.log("stock.buy",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==m.suppressDialog&&Object(c.a)("Failed to buy stock. This may be a bug, contact developer"),!1;const h=Object(n.b)(e,t,r.a.Long);if(null==h)return!1;if(o.a.money`You do not have enough money to purchase this position. You need ${s.a.formatMoney(h)}.`):!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"You do not have enough money to purchase this. You need ",u.createElement(l.a,{money:h}))),!1;if(t+e.playerShares+e.playerShortShares>e.maxShares)return a?a.log("stock.buy",()=>`Purchasing '${t+e.playerShares+e.playerShortShares}' shares would exceed ${e.symbol}'s maximum (${e.maxShares}) number of shares`):!0!==m.suppressDialog&&Object(c.a)(`You cannot purchase this many shares. ${e.symbol} has a maximum of ${s.a.formatShares(e.maxShares)} shares.`),!1;const p=e.playerShares*e.playerAvgPx;o.a.loseMoney(h,"stock");const d=p+h-i.a.StockMarketCommission;if(e.playerShares=Math.round(e.playerShares+t),e.playerAvgPx=d/e.playerShares,Object(n.d)(e,t),null!=m.rerenderFn&&"function"==typeof m.rerenderFn&&m.rerenderFn(),a){const n=`Bought ${s.a.formatShares(t)} shares of ${e.symbol} for ${s.a.formatMoney(h)}. Paid ${s.a.formatMoney(i.a.StockMarketCommission)} in commission fees.`;a.log("stock.buy",()=>n)}else!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"Bought ",s.a.formatShares(t)," shares of ",e.symbol," for ",u.createElement(l.a,{money:h}),". Paid"," ",u.createElement(l.a,{money:i.a.StockMarketCommission})," in commission fees."));return!0}function h(e,t,a=null,i={}){if(null==e||t<0||isNaN(t))return a?a.log("stock.sell",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==i.suppressDialog&&Object(c.a)("Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer"),!1;if((t=Math.round(t))>e.playerShares&&(t=e.playerShares),0===t)return!1;const m=Object(n.c)(e,t,r.a.Long);if(null==m)return!1;let h=m-e.playerAvgPx*t;if(isNaN(h)&&(h=0),o.a.gainMoney(m,"stock"),a&&(a.scriptRef.onlineMoneyMade+=h,o.a.scriptProdSinceLastAug+=h),e.playerShares=Math.round(e.playerShares-t),0===e.playerShares&&(e.playerAvgPx=0),Object(n.d)(e,t),null!=i.rerenderFn&&"function"==typeof i.rerenderFn&&i.rerenderFn(),a){const n=`Sold ${s.a.formatShares(t)} shares of ${e.symbol}. After commissions, you gained a total of ${s.a.formatMoney(m)}.`;a.log("stock.sell",()=>n)}else!0!==i.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"Sold ",s.a.formatShares(t)," shares of ",e.symbol,". After commissions, you gained a total of"," ",u.createElement(l.a,{money:m}),"."));return!0}function p(e,t,a=null,m={}){if((t=Math.round(t))<=0)return!1;if(null==e||isNaN(t))return a?a.log("stock.short",()=>`Invalid arguments: stock='${e}' shares='${t}'`):!0!==m.suppressDialog&&Object(c.a)("Failed to initiate a short position in a stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, so contact developer"),!1;const h=Object(n.b)(e,t,r.a.Short);if(null==h)return!1;if(o.a.money"You do not have enough money to purchase this short position. You need "+s.a.formatMoney(h)):!0!==m.suppressDialog&&Object(c.a)(u.createElement(u.Fragment,null,"You do not have enough money to purchase this short position. You need ",u.createElement(l.a,{money:h}))),!1;if(t+e.playerShares+e.playerShortShares>e.maxShares)return a?a.log("stock.short",()=>`This '${t+e.playerShares+e.playerShortShares}' short shares would exceed ${e.symbol}'s maximum (${e.maxShares}) number of shares.`):!0!==m.suppressDialog&&Object(c.a)(`You cannot purchase this many shares. ${e.symbol} has a maximum of ${e.maxShares} shares.`),!1;const p=e.playerShortShares*e.playerAvgShortPx;o.a.loseMoney(h,"stock");const d=p+h-i.a.StockMarketCommission;if(e.playerShortShares=Math.round(e.playerShortShares+t),e.playerAvgShortPx=d/e.playerShortShares,Object(n.d)(e,t),null!=m.rerenderFn&&"function"==typeof m.rerenderFn&&m.rerenderFn(),a){const n=`Bought a short position of ${s.a.formatShares(t)} shares of ${e.symbol} for ${s.a.formatMoney(h)}. Paid ${s.a.formatMoney(i.a.StockMarketCommission)} in commission fees.`;a.log("stock.short",()=>n)}else m.suppressDialog||Object(c.a)(u.createElement(u.Fragment,null,"Bought a short position of ",s.a.formatShares(t)," shares of ",e.symbol," for"," ",u.createElement(l.a,{money:h}),". Paid ",u.createElement(l.a,{money:i.a.StockMarketCommission})," in commission fees."));return!0}function d(e,t,a=null,i={}){if(null==e||isNaN(t)||t<0)return a?a.log("stock.sellShort",()=>`Invalid arguments: stock='${e}' shares='${t}'`):i.suppressDialog||Object(c.a)("Failed to sell a short position in a stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, so contact developer"),!1;if((t=Math.round(t))>e.playerShortShares&&(t=e.playerShortShares),0===t)return!1;const m=t*e.playerAvgShortPx,h=Object(n.c)(e,t,r.a.Short);if(null==h||isNaN(h)||null==m)return a?a.log("stock.sellShort",()=>"Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug"):i.suppressDialog||Object(c.a)("Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug"),!1;let p=h-m;if(isNaN(p)&&(p=0),o.a.gainMoney(h,"stock"),a&&(a.scriptRef.onlineMoneyMade+=p,o.a.scriptProdSinceLastAug+=p),e.playerShortShares=Math.round(e.playerShortShares-t),0===e.playerShortShares&&(e.playerAvgShortPx=0),Object(n.d)(e,t),null!=i.rerenderFn&&"function"==typeof i.rerenderFn&&i.rerenderFn(),a){const n=`Sold your short position of ${s.a.formatShares(t)} shares of ${e.symbol}. After commissions, you gained a total of `+s.a.formatMoney(h);a.log("stock.sellShort",()=>n)}else i.suppressDialog||Object(c.a)(u.createElement(u.Fragment,null,"Sold your short position of ",s.a.formatShares(t)," shares of ",e.symbol,". After commissions, you gained a total of ",u.createElement(l.a,{money:h})));return!0}},function(e,t,a){"use strict";a.d(t,"b",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"d",(function(){return u}));var n=a(0),r=a.n(n),i=a(13),o=a(329);class s{constructor(e,t){i.a.TimestampsFormat&&(e="["+Object(o.a)(i.a.TimestampsFormat)+"] "+e),this.text=e,this.color=t}}class l{constructor(e){i.a.TimestampsFormat&&(e=r.a.createElement(r.a.Fragment,null,"[",Object(o.a)(i.a.TimestampsFormat),"] ",e)),this.raw=e}}class c{constructor(e,t){i.a.TimestampsFormat&&(e="["+Object(o.a)(i.a.TimestampsFormat)+"] "+e),this.hostname=t,this.dashes=e}}class u{constructor(e,t){this.time=e,this.timeLeft=e,this.action=t}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(5);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={name:"foo",desc:"foo"}){if(r(this,"baseCost",1),r(this,"costInc",1),r(this,"maxLvl",0),r(this,"successChanceAll",0),r(this,"successChanceStealth",0),r(this,"successChanceKill",0),r(this,"successChanceContract",0),r(this,"successChanceOperation",0),r(this,"successChanceEstimate",0),r(this,"actionTime",0),r(this,"effHack",0),r(this,"effStr",0),r(this,"effDef",0),r(this,"effDex",0),r(this,"effAgi",0),r(this,"effCha",0),r(this,"stamina",0),r(this,"money",0),r(this,"expGain",0),!e.name)throw new Error("Failed to initialize Bladeburner Skill. No name was specified in ctor");if(!e.desc)throw new Error("Failed to initialize Bladeburner Skills. No desc was specified in ctor");this.name=e.name,this.desc=e.desc,this.baseCost=e.baseCost?e.baseCost:1,this.costInc=e.costInc?e.costInc:1,e.maxLvl&&(this.maxLvl=e.maxLvl),e.successChanceAll&&(this.successChanceAll=e.successChanceAll),e.successChanceStealth&&(this.successChanceStealth=e.successChanceStealth),e.successChanceKill&&(this.successChanceKill=e.successChanceKill),e.successChanceContract&&(this.successChanceContract=e.successChanceContract),e.successChanceOperation&&(this.successChanceOperation=e.successChanceOperation),e.successChanceEstimate&&(this.successChanceEstimate=e.successChanceEstimate),e.actionTime&&(this.actionTime=e.actionTime),e.effHack&&(this.effHack=e.effHack),e.effStr&&(this.effStr=e.effStr),e.effDef&&(this.effDef=e.effDef),e.effDex&&(this.effDex=e.effDex),e.effAgi&&(this.effAgi=e.effAgi),e.effCha&&(this.effCha=e.effCha),e.stamina&&(this.stamina=e.stamina),e.money&&(this.money=e.money),e.expGain&&(this.expGain=e.expGain)}calculateCost(e){return Math.floor((this.baseCost+e*this.costInc)*n.a.BladeburnerSkillCost)}getMultiplier(e){return"successChanceAll"===e?this.successChanceAll:"successChanceStealth"===e?this.successChanceStealth:"successChanceKill"===e?this.successChanceKill:"successChanceContract"===e?this.successChanceContract:"successChanceOperation"===e?this.successChanceOperation:"successChanceEstimate"===e?this.successChanceEstimate:"actionTime"===e?this.actionTime:"effHack"===e?this.effHack:"effStr"===e?this.effStr:"effDef"===e?this.effDef:"effDex"===e?this.effDex:"effAgi"===e?this.effAgi:"effCha"===e?this.effCha:"stamina"===e?this.stamina:"money"===e?this.money:"expGain"===e?this.expGain:0}}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(377),r=a(137),i=a(627),o=a(23),s=a(811);const l={};function c(e){if(!e.name)throw new Error("Invalid constructor parameters for Location. No 'name' property");return l[e.name]instanceof i.a&&console.warn(`Property with name ${e.name} already exists and is being overwritten`),l[e.name]=new i.a(e),l[e.name]}r.a[o.a.Aevum]=new n.a(o.a.Aevum),r.a[o.a.Chongqing]=new n.a(o.a.Chongqing),r.a[o.a.Ishima]=new n.a(o.a.Ishima),r.a[o.a.NewTokyo]=new n.a(o.a.NewTokyo),r.a[o.a.Sector12]=new n.a(o.a.Sector12),r.a[o.a.Volhaven]=new n.a(o.a.Volhaven),r.a[o.a.Aevum].asciiArt="\n [aevum police headquarters] 26 \n o \n I \\ [bachman & associates] \n \\ 56 B \n x \\ [summit university] \n \\ \\ 28 \n \\ [snap fitness gym] x o--L-----------N \n K \\ / \n \\ \\ Q [casino] \n x 58 \\ / [travel agency] \n \\ 94 95 o \n 90 x 59 o------o | \n \\ / \\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\ | \\ / \n [hospital] \\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\ [rho construction] \n H [netlink tech.] | J \n | | \\ \n | 34 x \\ \n [clarke inc.] C | \\ [world stock exchange] \n | | \\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P ",r.a[o.a.Chongqing].asciiArt="\n | \n 75 o \n \\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\ o 78 [kuaigong international] \n \\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D ",r.a[o.a.Ishima].asciiArt="\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\ x 57 \n / / | \\ | \n / / | \\ | \n o 22 o | \\| 29/56 \n | | o \n | [hospital] D / \\ 3 2 1 \n o | / \\ o-------x------o \n / o / \\ / \n 48 o / 55 x \\ / \n \\ / / x [glitch] \n \\ / [nova medical] / 4/30 \\ \n 49 x A \\ H \n / \\ / \\ \n / \\ [travel agency] F o 31 \n / \\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E ",r.a[o.a.NewTokyo].asciiArt="\n \n \n o \n \\ \n \\ [defcomm] \n \\ \n o--x---A--x--o [travel agency] \n 7 8 10 G \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\ 24 25 26 27 \n \\ \n [noodle bar] x 14 \n \\ \n \\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--E--x-----x-----x---+---x----x--H--x-o \n | \n | \n o 17 \n \n \n \n F [the slums] \n ",r.a[o.a.Sector12].asciiArt="\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\ | \\ / \n | \\ | [iron gym] x 95 \n (79) x \\ | / \\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\ / \n | C [cia] \\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\ \n | o------------o 34 / \\ \n (29) | / [carmichael sec.] D \\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] ",r.a[o.a.Volhaven].asciiArt="\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\ / \\ \n \\ o 65 o 69 \n [syscore sec.] H | | \n \\ | | [millenium fitness gym] \n \\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K ";for(const e of s.a){const t=c(e),a=t.city;if(null===a)for(const e in r.a)r.a[e].addLocation(t.name);else r.a[a].addLocation(t.name)}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(8),r=a(184),i=a(36),o=a(15),s=a(21);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c{constructor(e="",t=1){l(this,"cores",1),l(this,"level",1),l(this,"moneyGainRatePerSecond",0),l(this,"onlineTimeSeconds",0),l(this,"ram",1),l(this,"totalMoneyGenerated",0),this.name=e,this.updateMoneyGainRate(t)}calculateCoreUpgradeCost(e=1,t){return Object(r.a)(this.cores,e,t)}calculateLevelUpgradeCost(e=1,t){return Object(r.b)(this.level,e,t)}calculateRamUpgradeCost(e=1,t){return Object(r.e)(this.ram,e,t)}process(e=1){const t=e*n.a.MilliPerCycle/1e3;let a=this.moneyGainRatePerSecond*t;return isNaN(a)&&(console.error(`Hacknet Node ${this.name} calculated earnings of NaN`),a=0),this.totalMoneyGenerated+=a,this.onlineTimeSeconds+=t,a}upgradeCore(e=1,t){this.cores=Math.min(i.a.MaxCores,Math.round(this.cores+e)),this.updateMoneyGainRate(t)}upgradeLevel(e=1,t){this.level=Math.min(i.a.MaxLevel,Math.round(this.level+e)),this.updateMoneyGainRate(t)}upgradeRam(e=1,t){for(let t=0;t13)throw new Error("Card instantiated with improper value: "+e)}formatValue(){switch(this.value){case 1:return"A";case 11:return"J";case 12:return"Q";case 13:return"K";default:return""+this.value}}isRedSuit(){return this.suit===n.Hearts||this.suit===n.Diamonds}getStringRepresentation(){return`${this.formatValue()} of ${this.suit}`}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e={}){r(this,"name",""),r(this,"type",-1),e.name&&(this.name=e.name),e.type&&(this.type=e.type)}toJSON(){return Object(n.b)("ActionIdentifier",this)}static fromJSON(e){return Object(n.a)(i,e.data)}}n.c.constructors.ActionIdentifier=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(211);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e,t){r(this,"lvl",1),r(this,"owned",!1);const a="BitNode"+e,i=n.a[a];if(null==i)throw new Error("Invalid Bit Node for this Source File");this.n=e,this.name=`Source-File ${e}: ${i.name}`,this.info=t}}},,,,function(e,t,a){"use strict";function n(e,t){return Math.random()*(t-e)+e}function r(e){switch(e.key){case"ArrowUp":case"w":return"↑";case"ArrowLeft":case"a":return"←";case"ArrowDown":case"s":return"↓";case"ArrowRight":case"d":return"→"}return""}a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}))},,function(e,t,a){"use strict";a.d(t,"c",(function(){return u})),a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return h}));var n=a(8),r=a(2),i=a(45),o=a(119),s=a(27),l=a(4),c=a(286);function u(e){const t=((new Date).getTime()-r.a.lastUpdate)/1e3;let a=e.onlineRunningTime/14400;a>=1&&(a=1);for(const a in e.dataMap)if(e.dataMap.hasOwnProperty(a)){if(0==e.dataMap[a][2]||null==e.dataMap[a][2])continue;const n=Object(s.d)(a);if(null==n)continue;const c=Math.round(.5*e.dataMap[a][2]/e.onlineRunningTime*t);e.log(`Called on ${n.hostname} ${c} times while offline`);const u=Object(s.d)(e.server);if(null===u)throw new Error("getServer of null key?");if(!(n instanceof i.a))throw new Error("trying to grow a non-normal server");const m=Object(o.e)(n,c,r.a,u.cpuCores);e.log(`'${n.hostname}' grown by ${l.a.format(100*m-100,"0.000000%")} while offline`)}const c=a*(e.onlineExpGained/e.onlineRunningTime)*t;r.a.gainHackingExp(c),e.offlineRunningTime+=t,e.offlineExpGained+=c;for(const a in e.dataMap)if(e.dataMap.hasOwnProperty(a)){if(0==e.dataMap[a][3]||null==e.dataMap[a][3])continue;const r=Object(s.d)(a);if(null==r)continue;if(!(r instanceof i.a))throw new Error("trying to weaken a non-normal server");const o=Object(s.d)(e.server);if(null===o)throw new Error("getServer of null key?");const l=Math.round(.5*e.dataMap[a][3]/e.onlineRunningTime*t);e.log(`Called weaken() on ${r.hostname} ${l} times while offline`);const c=1+(o.cpuCores-1)/16;r.weaken(n.a.ServerWeakenAmount*l*c)}}function m(e,t,a){for(let n=0;n{document.body.removeChild(e),window.URL.revokeObjectURL(a)},0)}}read(){return this.text}show(){Object(n.a)(`${this.fn}
${this.text}`)}toJSON(){return Object(r.b)("TextFile",this)}write(e){this.text=e}static fromJSON(e){return Object(r.a)(i,e.data)}}function o(e,t){const a=e.endsWith(".txt")?e:e+".txt";for(const e of t.textFiles)if(e.fn===a)return e;return null}function s(e,t,a){if(null!==o(e,a))return void console.error(`A file named "${e}" already exists on server ${a.hostname}.`);const n=new i(e,t);return a.textFiles.push(n),n}r.c.constructors.TextFile=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(15);function r(e){console.error(e),Object(n.a)("Caught an exception: "+e+"
Filename: "+(e.fileName||"UNKNOWN FILE NAME")+"
Line Number: "+(e.lineNumber||"UNKNOWN LINE NUMBER")+"
This is a bug, please report to game developer with this message as well as details about how to reproduce the bug.
If you want to be safe, I suggest refreshing the game WITHOUT saving so that your safe doesn't get corrupted")}},function(e,t,a){"use strict";a.d(t,"a",(function(){return y})),a.d(t,"b",(function(){return f})),a.d(t,"e",(function(){return d})),a.d(t,"d",(function(){return b})),a.d(t,"c",(function(){return k}));var n=a(298),r=a(20),i=a(6),o=a(60),s=a(2),l=a(267),c=a(27),u=a(13),m=a(15),h=a(21);function p(e,t=!1){e.recvd=!0,!t&&u.a.SuppressMessages||d(e.filename),function(e,t){const a=Object(c.d)(t);if(null==a)return void console.warn("Could not find server "+t);for(let t=0;t
This message was saved as "+t.filename+" onto your home computer.";Object(m.a)(a)}function f(){if(l.b)return;const e=y[E.Jumper0],t=y[E.Jumper1],a=y[E.Jumper2],n=y[E.Jumper3],c=y[E.Jumper4],u=y[E.CyberSecTest],m=y[E.NiteSecTest],h=y[E.BitRunnersTest],d=y[E.RedPill];let f=!1;if(r.a[i.a.TheRedPill].owned&&(f=!0),d&&f&&0===s.a.sourceFiles.length&&!l.b)p(d,!0);else if(d&&f)l.b||p(d);else if(e&&!e.recvd&&s.a.hacking>=25){p(e);const t=o.a.Flight.name,a=s.a.getHomeComputer();a.programs.includes(t)||a.programs.push(t)}else t&&!t.recvd&&s.a.hacking>=40?p(t):u&&!u.recvd&&s.a.hacking>=50?p(u):a&&!a.recvd&&s.a.hacking>=175?p(a):m&&!m.recvd&&s.a.hacking>=200?p(m):n&&!n.recvd&&s.a.hacking>=350?p(n):c&&!c.recvd&&s.a.hacking>=490?p(c):h&&!h.recvd&&s.a.hacking>=500&&p(h)}function g(e){y[e.filename]=e}let y={};function b(e){y=JSON.parse(e,h.c)}const E={Jumper0:"j0.msg",Jumper1:"j1.msg",Jumper2:"j2.msg",Jumper3:"j3.msg",Jumper4:"j4.msg",CyberSecTest:"csec-test.msg",NiteSecTest:"nitesec-test.msg",BitRunnersTest:"19dfj3l1nd.msg",RedPill:"icarus.msg"};function k(){y={},g(new n.a(E.Jumper0,"I know you can sense it. I know you're searching for it. It's why you spend night after night at your computer.
It's real, I've seen it. And I can help you find it. But not right now. You're not ready yet.
Use this program to track your progress
The fl1ght.exe program was added to your home computer
-jump3R")),g(new n.a(E.Jumper1,"Soon you will be contacted by a hacking group known as CyberSec. They can help you with your search.
You should join them, garner their favor, and exploit them for their Augmentations. But do not trust them. They are not what they seem. No one is.
-jump3R")),g(new n.a(E.Jumper2,"Do not try to save the world. There is no world to save. If you want to find the truth, worry only about yourself. Ethics and morals will get you killed.
Watch out for a hacking group known as NiteSec.
-jump3R")),g(new n.a(E.Jumper3,"You must learn to walk before you can run. And you must run before you can fly. Look for the black hand.
I.I.I.I
-jump3R")),g(new n.a(E.Jumper4,"To find what you are searching for, you must understand the bits. The bits are all around us. The runners will help you.
-jump3R")),g(new n.a(E.CyberSecTest,"We've been watching you. Your skills are very impressive. But you're wasting your talents. If you join us, you can put your skills to good use and change the world for the better. If you join us, we can unlock your full potential.
But first, you must pass our test. Find and install the backdoor on our server.
-CyberSec")),g(new n.a(E.NiteSecTest,"People say that the corrupted governments and corporations rule the world. Yes, maybe they do. But do you know who everyone really fears? People like us. Because they can't hide from us. Because they can't fight shadows and ideas with bullets.
Join us, and people will fear you, too.
Find and install the backdoor on our server. Then, we will contact you again.
-NiteSec")),g(new n.a(E.BitRunnersTest,"We know what you are doing. We know what drives you. We know what you are looking for.
We can help you find the answers.
run4theh111z")),g(new n.a(E.RedPill,"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*%
)@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B)
@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB
DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(125);const r={};r["Operation Typhoon"]=new n.a({name:"Operation Typhoon",baseDifficulty:2e3,reqdRank:2500,rankGain:50,rankLoss:10,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Zero"]=new n.a({name:"Operation Zero",baseDifficulty:2500,reqdRank:5e3,rankGain:60,rankLoss:15,hpLoss:50,weights:{hack:.2,str:.15,def:.15,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation X"]=new n.a({name:"Operation X",baseDifficulty:3e3,reqdRank:7500,rankGain:75,rankLoss:15,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Titan"]=new n.a({name:"Operation Titan",baseDifficulty:4e3,reqdRank:1e4,rankGain:100,rankLoss:20,hpLoss:100,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Ares"]=new n.a({name:"Operation Ares",baseDifficulty:5e3,reqdRank:12500,rankGain:125,rankLoss:20,hpLoss:200,weights:{hack:0,str:.25,def:.25,dex:.25,agi:.25,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Archangel"]=new n.a({name:"Operation Archangel",baseDifficulty:7500,reqdRank:15e3,rankGain:200,rankLoss:20,hpLoss:25,weights:{hack:0,str:.2,def:.2,dex:.3,agi:.3,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Juggernaut"]=new n.a({name:"Operation Juggernaut",baseDifficulty:1e4,reqdRank:2e4,rankGain:300,rankLoss:40,hpLoss:300,weights:{hack:0,str:.25,def:.25,dex:.25,agi:.25,cha:0,int:0},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Red Dragon"]=new n.a({name:"Operation Red Dragon",baseDifficulty:12500,reqdRank:25e3,rankGain:500,rankLoss:50,hpLoss:500,weights:{hack:.05,str:.2,def:.2,dex:.25,agi:.25,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation K"]=new n.a({name:"Operation K",baseDifficulty:15e3,reqdRank:3e4,rankGain:750,rankLoss:60,hpLoss:1e3,weights:{hack:.05,str:.2,def:.2,dex:.25,agi:.25,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Deckard"]=new n.a({name:"Operation Deckard",baseDifficulty:2e4,reqdRank:4e4,rankGain:1e3,rankLoss:75,hpLoss:200,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:0,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Tyrell"]=new n.a({name:"Operation Tyrell",baseDifficulty:25e3,reqdRank:5e4,rankGain:1500,rankLoss:100,hpLoss:500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Wallace"]=new n.a({name:"Operation Wallace",baseDifficulty:3e4,reqdRank:75e3,rankGain:2e3,rankLoss:150,hpLoss:1500,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Shoulder of Orion"]=new n.a({name:"Operation Shoulder of Orion",baseDifficulty:35e3,reqdRank:1e5,rankGain:2500,rankLoss:500,hpLoss:1500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation Hyron"]=new n.a({name:"Operation Hyron",baseDifficulty:4e4,reqdRank:125e3,rankGain:3e3,rankLoss:1e3,hpLoss:500,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Morpheus"]=new n.a({name:"Operation Morpheus",baseDifficulty:45e3,reqdRank:15e4,rankGain:4e3,rankLoss:1e3,hpLoss:100,weights:{hack:.05,str:.15,def:.15,dex:.3,agi:.3,cha:0,int:.05},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isStealth:!0}),r["Operation Ion Storm"]=new n.a({name:"Operation Ion Storm",baseDifficulty:5e4,reqdRank:175e3,rankGain:5e3,rankLoss:1e3,hpLoss:5e3,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Annihilus"]=new n.a({name:"Operation Annihilus",baseDifficulty:55e3,reqdRank:2e5,rankGain:7500,rankLoss:1e3,hpLoss:1e4,weights:{hack:0,str:.24,def:.24,dex:.24,agi:.24,cha:0,int:.04},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Ultron"]=new n.a({name:"Operation Ultron",baseDifficulty:6e4,reqdRank:25e4,rankGain:1e4,rankLoss:2e3,hpLoss:1e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75},isKill:!0}),r["Operation Centurion"]=new n.a({name:"Operation Centurion",baseDifficulty:7e4,reqdRank:3e5,rankGain:15e3,rankLoss:5e3,hpLoss:1e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}}),r["Operation Vindictus"]=new n.a({name:"Operation Vindictus",baseDifficulty:75e3,reqdRank:35e4,rankGain:2e4,rankLoss:2e4,hpLoss:2e4,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}}),r["Operation Daedalus"]=new n.a({name:"Operation Daedalus",baseDifficulty:8e4,reqdRank:4e5,rankGain:4e4,rankLoss:1e4,hpLoss:1e5,weights:{hack:.1,str:.2,def:.2,dex:.2,agi:.2,cha:0,int:.1},decays:{hack:.6,str:.8,def:.8,dex:.8,agi:.8,cha:0,int:.75}})},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(8);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e="",t="",a=0,n=0,i=0,o=0,s={}){r(this,"difficulty",0),r(this,"karma",0),r(this,"kills",0),r(this,"money",0),r(this,"name",""),r(this,"time",0),r(this,"type",""),r(this,"hacking_success_weight",0),r(this,"strength_success_weight",0),r(this,"defense_success_weight",0),r(this,"dexterity_success_weight",0),r(this,"agility_success_weight",0),r(this,"charisma_success_weight",0),r(this,"hacking_exp",0),r(this,"strength_exp",0),r(this,"defense_exp",0),r(this,"dexterity_exp",0),r(this,"agility_exp",0),r(this,"charisma_exp",0),r(this,"intelligence_exp",0),this.name=e,this.type=t,this.time=a,this.money=n,this.difficulty=i,this.karma=o,this.hacking_success_weight=s.hacking_success_weight?s.hacking_success_weight:0,this.strength_success_weight=s.strength_success_weight?s.strength_success_weight:0,this.defense_success_weight=s.defense_success_weight?s.defense_success_weight:0,this.dexterity_success_weight=s.dexterity_success_weight?s.dexterity_success_weight:0,this.agility_success_weight=s.agility_success_weight?s.agility_success_weight:0,this.charisma_success_weight=s.charisma_success_weight?s.charisma_success_weight:0,this.hacking_exp=s.hacking_exp?s.hacking_exp:0,this.strength_exp=s.strength_exp?s.strength_exp:0,this.defense_exp=s.defense_exp?s.defense_exp:0,this.dexterity_exp=s.dexterity_exp?s.dexterity_exp:0,this.agility_exp=s.agility_exp?s.agility_exp:0,this.charisma_exp=s.charisma_exp?s.charisma_exp:0,this.intelligence_exp=s.intelligence_exp?s.intelligence_exp:0,this.kills=s.kills?s.kills:0}commit(e,t,a=1,n=null){return a<=0&&(a=1),t.startCrime(e,this.type,this.hacking_exp/a,this.strength_exp/a,this.defense_exp/a,this.dexterity_exp/a,this.agility_exp/a,this.charisma_exp/a,this.money/a,this.time,n),this.time}successRate(e){let t=this.hacking_success_weight*e.hacking+this.strength_success_weight*e.strength+this.defense_success_weight*e.defense+this.dexterity_success_weight*e.dexterity+this.agility_success_weight*e.agility+this.charisma_success_weight*e.charisma+n.a.IntelligenceCrimeWeight*e.intelligence;return t/=n.a.MaxSkillLevel,t/=this.difficulty,t*=e.crime_success_mult,t*=e.getIntelligenceBonus(1),Math.min(t,1)}}},,,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(625),o=a(118),s=a(1311),l=a(73);function c(e){return r.a.createElement(i.a,{dense:!0,maxSnack:9,anchorOrigin:{horizontal:"right",vertical:"bottom"},autoHideDuration:2e3},e.children)}const u=new o.a;function m(){const{enqueueSnackbar:e}=Object(i.b)();return Object(n.useEffect)(()=>u.subscribe((t,a)=>e(r.a.createElement(s.a,{severity:a},t),{content:(e,t)=>r.a.createElement(l.a,{key:e},t),variant:a}))),r.a.createElement(r.a.Fragment,null)}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(779),r=a(780);const i={};for(const e of r.a)i[(o=e).name]=new n.a(o);var o},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(5),r=a(8);function i(){return r.a.MarketData4SCost*n.a.FourSigmaMarketDataCost}function o(){return r.a.MarketDataTixApi4SCost*n.a.FourSigmaMarketDataApiCost}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(452),i=a(29),o=a(10),s=a(26);function l(e){const t=i.b.Player();return n.createElement(n.Fragment,null,n.createElement(s.a,{title:n.createElement("span",{dangerouslySetInnerHTML:{__html:function(){const a=t.getNextCompanyPosition(e.company,e.entryPosType);return null==a?"":e.company.hasPosition(a)?Object(r.a)(e.company,a,!0):""}()}})},n.createElement(o.a,{onClick:e.onClick},e.text)),n.createElement("br",null))}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(118).a)},,,function(e,t,a){"use strict";a.d(t,"b",(function(){return m})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a(0),r=a.n(n),i=a(2),o=a(321),s=a(507),l=a(74),c=a(323),u=a(15);let m=!1;function h(e){m=e}function p(e,t,a,n){t?0===l.a[5]&&5!==n&&(i.a.intelligence=0,i.a.intelligence_exp=0):function(e){const t="SourceFile"+e.toString(),a=c.a[t];if(null==a)return void console.error("Could not find source file for Bit node: "+e);let n=!1,o=null;for(let t=0;t=3&&12!==o.n?Object(u.a)("The Source-File for the BitNode you just destroyed, "+a.name+", is already at max level!"):(++o.lvl,Object(u.a)(a.name+" was upgraded to level "+o.lvl+" for destroying its corresponding BitNode!"));else{const t=new s.a(e,1);i.a.sourceFiles.push(t),5===e&&0===i.a.intelligence&&(i.a.intelligence=1),Object(u.a)(r.a.createElement(r.a.Fragment,null,"You received a Source-File for destroying a BitNode!",r.a.createElement("br",null),r.a.createElement("br",null),a.name,r.a.createElement("br",null),r.a.createElement("br",null),a.info))}}(a),5===n&&0===i.a.intelligence&&(i.a.intelligence=1),m=!1,i.a.bitNodeN=n,6===n?e.toBladeburnerCinematic():e.toTerminal(),Object(o.b)(t)}},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a(0),r=a.n(n),i=a(551),o=a(692),s=a(1284),l=a(118),c=a(13);const u=new l.a;let m;function h(){m=Object(i.a)({colors:{hp:c.a.theme.hp,money:c.a.theme.money,hack:c.a.theme.hack,combat:c.a.theme.combat,cha:c.a.theme.cha,int:c.a.theme.int,rep:c.a.theme.rep,backgroundprimary:c.a.theme.backgroundprimary,backgroundsecondary:c.a.theme.backgroundsecondary,button:c.a.theme.button,successlight:c.a.theme.successlight,success:c.a.theme.success,successdark:c.a.theme.successdark},palette:{primary:{light:c.a.theme.primarylight,main:c.a.theme.primary,dark:c.a.theme.primarydark},secondary:{light:c.a.theme.secondarylight,main:c.a.theme.secondary,dark:c.a.theme.secondarydark},error:{light:c.a.theme.errorlight,main:c.a.theme.error,dark:c.a.theme.errordark},info:{light:c.a.theme.infolight,main:c.a.theme.info,dark:c.a.theme.infodark},warning:{light:c.a.theme.warninglight,main:c.a.theme.warning,dark:c.a.theme.warningdark},background:{default:c.a.theme.backgroundprimary,paper:c.a.theme.well},action:{disabled:c.a.theme.disabled}},typography:{fontFamily:"Lucida Console, Lucida Sans Unicode, Fira Mono, Consolas, Courier New, Courier, monospace, Times New Roman",button:{textTransform:"none"}},components:{MuiInputBase:{styleOverrides:{root:{backgroundColor:c.a.theme.well,color:c.a.theme.primary},input:{"&::placeholder":{userSelect:"none",color:c.a.theme.primarydark}}}},MuiInput:{styleOverrides:{root:{backgroundColor:c.a.theme.well,borderBottomColor:"#fff"},underline:{"&:hover":{borderBottomColor:c.a.theme.primarydark},"&:before":{borderBottomColor:c.a.theme.primary},"&:after":{borderBottomColor:c.a.theme.primarylight}}}},MuiInputLabel:{styleOverrides:{root:{color:c.a.theme.primarydark,userSelect:"none","&:before":{color:c.a.theme.primarylight}}}},MuiButton:{styleOverrides:{root:{backgroundColor:c.a.theme.button,border:"1px solid "+c.a.theme.well,"&:hover":{backgroundColor:c.a.theme.backgroundsecondary},borderRadius:0}}},MuiSelect:{styleOverrides:{icon:{color:c.a.theme.primary}},defaultProps:{variant:"standard"}},MuiTextField:{defaultProps:{variant:"standard"}},MuiTypography:{defaultProps:{color:"primary"}},MuiMenu:{styleOverrides:{list:{backgroundColor:c.a.theme.well}}},MuiMenuItem:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiAccordionSummary:{styleOverrides:{root:{backgroundColor:"#111"}}},MuiAccordionDetails:{styleOverrides:{root:{backgroundColor:c.a.theme.backgroundsecondary}}},MuiIconButton:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiTooltip:{styleOverrides:{tooltip:{fontSize:"1em",color:c.a.theme.primary,backgroundColor:c.a.theme.well,borderRadius:0,border:"2px solid white",maxWidth:"100vh"}},defaultProps:{disableInteractive:!0}},MuiSlider:{styleOverrides:{valueLabel:{color:c.a.theme.primary,backgroundColor:c.a.theme.well}}},MuiDrawer:{styleOverrides:{paper:{"&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none",backgroundColor:c.a.theme.backgroundsecondary},paperAnchorDockedLeft:{borderRight:"1px solid "+c.a.theme.welllight}}},MuiDivider:{styleOverrides:{root:{backgroundColor:c.a.theme.welllight}}},MuiFormControlLabel:{styleOverrides:{root:{color:c.a.theme.primary}}},MuiSwitch:{styleOverrides:{switchBase:{color:c.a.theme.primarydark},track:{backgroundColor:c.a.theme.welllight}}},MuiPaper:{styleOverrides:{root:{borderRadius:0,backgroundColor:c.a.theme.backgroundsecondary,border:"1px solid "+c.a.theme.welllight}}},MuiTablePagination:{styleOverrides:{select:{color:c.a.theme.primary},selectLabel:{color:c.a.theme.primary},displayedRows:{color:c.a.theme.primary}}},MuiTab:{styleOverrides:{textColorPrimary:{color:c.a.theme.secondary,"&.Mui-selected":{color:c.a.theme.primary}}}},MuiAlert:{styleOverrides:{root:{backgroundColor:c.a.theme.black,borderRadius:0,border:"1px solid "+c.a.theme.well},standardSuccess:{color:c.a.theme.primarylight},standardError:{color:c.a.theme.errorlight},standardWarning:{color:c.a.theme.warninglight},standardInfo:{color:c.a.theme.infolight}}}}})}h();const p=({children:e})=>r.a.createElement(o.a,{injectFirst:!0},r.a.createElement(s.a,{theme:m},e))},function(e,t,a){"use strict";function n(e,t){if(t<0||t>100)return e;const a=e*(t/100);return e+(Math.random()*(2*a)-a)}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";let n;a.d(t,"a",(function(){return n})),function(e){e[e.SyntaxError=-1]="SyntaxError",e[e.ImportError=-2]="ImportError",e[e.URLImportError=-3]="URLImportError"}(n||(n={}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a){this.program=e,this.price=t,this.description=a}}},,,,,,,function(e,t,a){"use strict";function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return r}));class r{constructor(e=""){n(this,"level",1),n(this,"name",""),this.name=e}}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(441),r=a(21),i=a(442);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}let s=0;class l{constructor(e="",t="",a="",n=[]){o(this,"code",""),o(this,"filename",""),o(this,"url",""),o(this,"module",""),o(this,"dependencies",[]),o(this,"ramUsage",0),o(this,"server",""),this.filename=e,this.code=t,this.ramUsage=0,this.server=a,this.module="",this.moduleSequenceNumber=++s,""!==this.code&&this.updateRamUsage(n)}download(){const e=this.filename,t=new Blob([this.code],{type:"text/plain"}),a=window.navigator;if(a.msSaveOrOpenBlob)a.msSaveOrOpenBlob(t,e);else{const a=document.createElement("a"),n=URL.createObjectURL(t);a.href=n,a.download=e,document.body.appendChild(a),a.click(),setTimeout((function(){document.body.removeChild(a),window.URL.revokeObjectURL(n)}),0)}}markUpdated(){this.module="",this.moduleSequenceNumber=++s}saveScript(e,t,a,n){this.code=t.replace(/^\s+|\s+$/g,""),this.filename=e,this.server=a,this.updateRamUsage(n),this.markUpdated()}async updateRamUsage(e){const t=await Object(n.a)(this.code,e);t>0&&(this.ramUsage=Object(i.a)(t)),this.markUpdated()}imports(){return[]}toJSON(){return Object(r.b)("Script",this)}static fromJSON(e){return Object(r.a)(l,e.data)}}r.c.constructors.Script=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(461);function r(){return Object(n.a)(99)+"."+Object(n.a)(9)+"."+Object(n.a)(9)+"."+Object(n.a)(9)}},function(e,t,a){"use strict";function n(e,t){if(e.length!==t.length)return!1;for(let a=0;aObject(o.a)({favor:{color:e.colors.rep}}));function l({favor:e}){const t=s();return n.createElement("span",{className:t.favor},"number"==typeof e?r.a.formatFavor(e):e)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(272),r=a(60);const i={BruteSSHProgram:new n.a(r.a.BruteSSHProgram.name,5e5,"Opens up SSH Ports."),FTPCrackProgram:new n.a(r.a.FTPCrackProgram.name,15e5,"Opens up FTP Ports."),RelaySMTPProgram:new n.a(r.a.RelaySMTPProgram.name,5e6,"Opens up SMTP Ports."),HTTPWormProgram:new n.a(r.a.HTTPWormProgram.name,3e7,"Opens up HTTP Ports."),SQLInjectProgram:new n.a(r.a.SQLInjectProgram.name,25e7,"Opens up SQL Ports."),ServerProfiler:new n.a(r.a.ServerProfiler.name,5e5,"Displays detailed information about a server."),DeepscanV1:new n.a(r.a.DeepscanV1.name,5e5,"Enables 'scan-analyze' with a depth up to 5."),DeepscanV2:new n.a(r.a.DeepscanV2.name,25e6,"Enables 'scan-analyze' with a depth up to 10."),AutolinkProgram:new n.a(r.a.AutoLink.name,1e6,"Enables direct connect via 'scan-analyze."),FormulasProgram:new n.a(r.a.Formulas.name,5e9,"Unlock access to the formulas API.")}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={GangRespectToReputationRatio:75,MaximumGangMembers:12,CyclesPerTerritoryAndPowerUpdate:100,AscensionMultiplierRatio:.15,Names:["Slum Snakes","Tetrads","The Syndicate","The Dark Army","Speakers for the Dead","NiteSec","The Black Hand"]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return b}));var n=a(72),r=a(205),i=a(5),o=a(77),s=a(61),l=a(215),c=a(86),u=a(8),m=a(181),h=a(24),p=a(166),d=a(23),f=a(9),g=a(21);function y(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class b extends r.a{constructor(e=null){super(),y(this,"className",""),y(this,"crimeType",""),y(this,"currentTask",n.a.Idle),y(this,"currentTaskLocation",""),y(this,"currentTaskMaxTime",0),y(this,"currentTaskTime",0),y(this,"earningsForSleeves",Object(r.b)()),y(this,"earningsForPlayer",Object(r.b)()),y(this,"earningsForTask",Object(r.b)()),y(this,"factionWorkType",p.a.None),y(this,"gainRatesForTask",Object(r.b)()),y(this,"gymStatType",""),y(this,"logs",[]),y(this,"memory",1),y(this,"shock",1),y(this,"storedCycles",0),y(this,"sync",1),null!=e&&this.shockRecovery(e)}commitCrime(e,t){const a=o.a[t]||Object.values(o.a).find(e=>e.name===t);return!!a&&(this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.gainRatesForTask.hack=a.hacking_exp*this.hacking_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.str=a.strength_exp*this.strength_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.def=a.defense_exp*this.defense_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.dex=a.dexterity_exp*this.dexterity_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.agi=a.agility_exp*this.agility_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.cha=a.charisma_exp*this.charisma_exp_mult*i.a.CrimeExpGain,this.gainRatesForTask.money=a.money*this.crime_money_mult*i.a.CrimeMoney,this.currentTaskLocation=String(this.gainRatesForTask.money),this.crimeType=a.name,this.currentTaskMaxTime=a.time,this.currentTask=n.a.Crime,!0)}finishTask(e){let t=Object(r.b)();if(this.currentTask===n.a.Crime&&this.currentTaskTime>=this.currentTaskMaxTime){const a=Object.values(o.a).find(e=>e.name===this.crimeType);if(!a)return console.error("Invalid data stored in sleeve.crimeType: "+this.crimeType),this.resetTaskStatus(),t;if(Math.random()0&&(this.hacking_exp+=t.hack),t.str>0&&(this.strength_exp+=t.str),t.def>0&&(this.defense_exp+=t.def),t.dex>0&&(this.dexterity_exp+=t.dex),t.agi>0&&(this.agility_exp+=t.agi),t.cha>0&&(this.charisma_exp+=t.cha),Object(r.b)();const i=this.shock/100*(this.sync/100)*a,o=t.hack*i,s=t.str*i,l=t.def*i,c=t.dex*i,u=t.agi*i,m=t.cha*i;return o>0&&(this.hacking_exp+=o,e.gainHackingExp(o),this.earningsForPlayer.hack+=o,this.earningsForTask.hack+=o),s>0&&(this.strength_exp+=s,e.gainStrengthExp(s),this.earningsForPlayer.str+=s,this.earningsForTask.str+=s),l>0&&(this.defense_exp+=l,e.gainDefenseExp(l),this.earningsForPlayer.def+=l,this.earningsForTask.def+=l),c>0&&(this.dexterity_exp+=c,e.gainDexterityExp(c),this.earningsForPlayer.dex+=c,this.earningsForTask.dex+=c),u>0&&(this.agility_exp+=u,e.gainAgilityExp(u),this.earningsForPlayer.agi+=u,this.earningsForTask.agi+=u),m>0&&(this.charisma_exp+=m,e.gainCharismaExp(m),this.earningsForPlayer.cha+=m,this.earningsForTask.cha+=m),this.earningsForSleeves.hack+=o*(this.sync/100),this.earningsForSleeves.str+=s*(this.sync/100),this.earningsForSleeves.def+=l*(this.sync/100),this.earningsForSleeves.dex+=c*(this.sync/100),this.earningsForSleeves.agi+=u*(this.sync/100),this.earningsForSleeves.cha+=m*(this.sync/100),{hack:o*(this.sync/100),str:s*(this.sync/100),def:l*(this.sync/100),dex:c*(this.sync/100),agi:u*(this.sync/100),cha:m*(this.sync/100),money:0}}gainMoney(e,t,a=1){const n=t.money*a;this.earningsForTask.money+=n,this.earningsForPlayer.money+=n,e.gainMoney(n,"sleeves")}getMemoryUpgradeCost(e){const t=Math.round(e);if(t<0)return 0;if(this.memory+t>100)return this.getMemoryUpgradeCost(100-this.memory);let a=0,n=this.memory-1;for(let t=0;t50&&this.logs.shift()}prestige(e){this.hacking_exp=0,this.strength_exp=0,this.defense_exp=0,this.dexterity_exp=0,this.agility_exp=0,this.charisma_exp=0,this.resetTaskStatus(),this.earningsForSleeves=Object(r.b)(),this.earningsForPlayer=Object(r.b)(),this.shockRecovery(e),this.augmentations=[],this.resetMultipliers(),this.shock=1,this.storedCycles=0,this.sync=Math.max(this.memory,1),this.logs=[]}process(e,t=1){const a=1e3/u.a.MilliPerCycle;if(this.storedCycles+=t,this.storedCyclesthis.currentTaskMaxTime&&(o=this.currentTaskMaxTime-this.currentTaskTime,i=Math.floor(o/u.a.MilliPerCycle),(o<0||i<0)&&(console.warn("Sleeve.process() calculated negative cycle usage"),o=0,i=0)),this.currentTaskTime+=o,this.shock=Math.min(100,this.shock+1e-4*i);let c=Object(r.b)();switch(this.currentTask){case n.a.Idle:break;case n.a.Class:case n.a.Gym:this.updateTaskGainRates(e),c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);break;case n.a.Faction:{c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);const t=h.a[this.currentTaskLocation];if(!(t instanceof m.a)){console.error("Invalid faction for Sleeve task: "+this.currentTaskLocation);break}t.playerReputation+=this.getRepGain(e)*i;break}case n.a.Company:{c=this.gainExperience(e,this.gainRatesForTask,i),this.gainMoney(e,this.gainRatesForTask,i);const t=s.a[this.currentTaskLocation];if(!(t instanceof l.a)){console.error("Invalid company for Sleeve task: "+this.currentTaskLocation);break}t.playerReputation+=this.getRepGain(e)*i;break}case n.a.Recovery:this.shock=Math.min(100,this.shock+2e-4*i),this.shock>=100&&this.resetTaskStatus();break;case n.a.Synchro:this.sync=Math.min(100,this.sync+2e-4*e.getIntelligenceBonus(.5)*i),this.sync>=100&&this.resetTaskStatus()}return 0!==this.currentTaskMaxTime&&this.currentTaskTime>=this.currentTaskMaxTime&&(this.currentTask===n.a.Crime?c=this.finishTask(e):this.finishTask(e)),this.updateStatLevels(),this.storedCycles-=i,c}resetTaskStatus(){this.earningsForTask=Object(r.b)(),this.gainRatesForTask=Object(r.b)(),this.currentTask=n.a.Idle,this.currentTaskTime=0,this.currentTaskMaxTime=0,this.factionWorkType=p.a.None,this.crimeType="",this.currentTaskLocation="",this.gymStatType="",this.className=""}shockRecovery(e){return this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.currentTask=n.a.Recovery,!0}synchronize(e){return this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus(),this.currentTask=n.a.Synchro,!0}takeUniversityCourse(e,t,a){this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();let r=1;switch(t.toLowerCase()){case f.a.AevumSummitUniversity.toLowerCase():if(this.city!==d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumSummitUniversity,r=4;break;case f.a.Sector12RothmanUniversity.toLowerCase():if(this.city!==d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12RothmanUniversity,r=3;break;case f.a.VolhavenZBInstituteOfTechnology.toLowerCase():if(this.city!==d.a.Volhaven)return!1;this.currentTaskLocation=f.a.VolhavenZBInstituteOfTechnology,r=5;break;default:return!1}switch(a.toLowerCase()){case"study computer science":break;case"data structures":this.gainRatesForTask.money=u.a.ClassDataStructuresBaseCost*r*-1;break;case"networks":this.gainRatesForTask.money=u.a.ClassNetworksBaseCost*r*-1;break;case"algorithms":this.gainRatesForTask.money=u.a.ClassAlgorithmsBaseCost*r*-1;break;case"management":this.gainRatesForTask.money=u.a.ClassManagementBaseCost*r*-1;break;case"leadership":this.gainRatesForTask.money=u.a.ClassLeadershipBaseCost*r*-1;break;default:return!1}return this.className=a,this.currentTask=n.a.Class,!0}travel(e,t){return e.loseMoney(u.a.TravelCost,"sleeves"),this.city=t,!0}tryBuyAugmentation(e,t){return!!e.canAfford(t.startingCost)&&(!this.augmentations.some(e=>e.name===t.name)&&(e.loseMoney(t.startingCost,"sleeves"),this.installAugmentation(t),!0))}updateTaskGainRates(e){if(this.currentTask!==n.a.Class)if(this.currentTask!==n.a.Gym)console.warn("Sleeve.updateTaskGainRates() called for unexpected task type "+this.currentTask);else{let t=1;switch(this.currentTaskLocation.toLowerCase()){case f.a.AevumCrushFitnessGym.toLowerCase():t=2;break;case f.a.AevumSnapFitnessGym.toLowerCase():t=5;break;case f.a.Sector12IronGym.toLowerCase():t=1;break;case f.a.Sector12PowerhouseGym.toLowerCase():t=10;break;case f.a.VolhavenMilleniumFitnessGym.toLowerCase():t=4;break;default:return}const a=1,n=e.hashManager.getTrainingMult()*t,r=this.gymStatType.toLowerCase();r.includes("str")?this.gainRatesForTask.str=a*n*this.strength_exp_mult:r.includes("def")?this.gainRatesForTask.def=a*n*this.defense_exp_mult:r.includes("dex")?this.gainRatesForTask.dex=a*n*this.dexterity_exp_mult:r.includes("agi")&&(this.gainRatesForTask.agi=a*n*this.agility_exp_mult)}else{let t=1;switch(this.currentTaskLocation.toLowerCase()){case f.a.AevumSummitUniversity.toLowerCase():t=3;break;case f.a.Sector12RothmanUniversity.toLowerCase():t=2;break;case f.a.VolhavenZBInstituteOfTechnology.toLowerCase():t=4;break;default:return}const a=t*e.hashManager.getStudyMult();switch(this.className.toLowerCase()){case"study computer science":this.gainRatesForTask.hack=u.a.ClassStudyComputerScienceBaseExp*a*this.hacking_exp_mult;break;case"data structures":this.gainRatesForTask.hack=u.a.ClassDataStructuresBaseExp*a*this.hacking_exp_mult;break;case"networks":this.gainRatesForTask.hack=u.a.ClassNetworksBaseExp*a*this.hacking_exp_mult;break;case"algorithms":this.gainRatesForTask.hack=u.a.ClassAlgorithmsBaseExp*a*this.hacking_exp_mult;break;case"management":this.gainRatesForTask.cha=u.a.ClassManagementBaseExp*a*this.charisma_exp_mult;break;case"leadership":this.gainRatesForTask.cha=u.a.ClassLeadershipBaseExp*a*this.charisma_exp_mult}}}upgradeMemory(e){e<0?console.warn("Sleeve.upgradeMemory() called with negative value: "+e):this.memory=Math.min(100,Math.round(this.memory+e))}workForCompany(e,t){if(!(s.a[t]instanceof l.a)||null==e.jobs[t])return!1;this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();const a=s.a[t],r=c.a[e.jobs[t]];return null!=a&&(null!=r&&(this.gainRatesForTask.money=r.baseSalary*a.salaryMultiplier*this.work_money_mult*i.a.CompanyWorkMoney,this.gainRatesForTask.hack=r.hackingExpGain*a.expMultiplier*this.hacking_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.str=r.strengthExpGain*a.expMultiplier*this.strength_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.def=r.defenseExpGain*a.expMultiplier*this.defense_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.dex=r.dexterityExpGain*a.expMultiplier*this.dexterity_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.agi=r.agilityExpGain*a.expMultiplier*this.agility_exp_mult*i.a.CompanyWorkExpGain,this.gainRatesForTask.cha=r.charismaExpGain*a.expMultiplier*this.charisma_exp_mult*i.a.CompanyWorkExpGain,this.currentTaskLocation=t,this.currentTask=n.a.Company,!0))}workForFaction(e,t,a){if(""===t)return!1;if(!(h.a[t]instanceof m.a&&e.factions.includes(t)))return!1;this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();const r=h.a[t].getInfo(),o=a.toLowerCase();if(o.includes("hack")){if(!r.offerHackingWork)return!1;this.factionWorkType=p.a.Hacking,this.gainRatesForTask.hack=.15*this.hacking_exp_mult*i.a.FactionWorkExpGain}else if(o.includes("field")){if(!r.offerFieldWork)return!1;this.factionWorkType=p.a.Field,this.gainRatesForTask.hack=.1*this.hacking_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.str=.1*this.strength_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.def=.1*this.defense_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.dex=.1*this.dexterity_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.agi=.1*this.agility_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.cha=.1*this.charisma_exp_mult*i.a.FactionWorkExpGain}else{if(!o.includes("security"))return!1;if(!r.offerSecurityWork)return!1;this.factionWorkType=p.a.Security,this.gainRatesForTask.hack=.1*this.hacking_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.str=.15*this.strength_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.def=.15*this.defense_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.dex=.15*this.dexterity_exp_mult*i.a.FactionWorkExpGain,this.gainRatesForTask.agi=.15*this.agility_exp_mult*i.a.FactionWorkExpGain}return this.currentTaskLocation=t,this.currentTask=n.a.Faction,!0}workoutAtGym(e,t,a){this.currentTask!==n.a.Idle?this.finishTask(e):this.resetTaskStatus();let r=1;switch(t.toLowerCase()){case f.a.AevumCrushFitnessGym.toLowerCase():if(this.city!=d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumCrushFitnessGym,r=3;break;case f.a.AevumSnapFitnessGym.toLowerCase():if(this.city!=d.a.Aevum)return!1;this.currentTaskLocation=f.a.AevumSnapFitnessGym,r=10;break;case f.a.Sector12IronGym.toLowerCase():if(this.city!=d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12IronGym,r=1;break;case f.a.Sector12PowerhouseGym.toLowerCase():if(this.city!=d.a.Sector12)return!1;this.currentTaskLocation=f.a.Sector12PowerhouseGym,r=20;break;case f.a.VolhavenMilleniumFitnessGym.toLowerCase():if(this.city!=d.a.Volhaven)return!1;this.currentTaskLocation=f.a.VolhavenMilleniumFitnessGym,r=7;break;default:return!1}const i=a.toLowerCase();return this.gainRatesForTask.money=u.a.ClassGymBaseCost*r*-1,!!(i.includes("str")||i.includes("def")||i.includes("dex")||i.includes("agi"))&&(this.gymStatType=a,this.currentTask=n.a.Gym,!0)}toJSON(){return Object(g.b)("Sleeve",this)}static fromJSON(e){return Object(g.a)(b,e.data)}}g.c.constructors.Sleeve=b},function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i}));var n=a(118);const r=new n.a,i=new n.a},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(781),r=a(14),i=a(27);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class s{constructor(e,t,a){o(this,"code",""),o(this,"delay",null),o(this,"disableLogs",{}),o(this,"dynamicLoadedFns",{}),o(this,"dynamicRamUsage",r.a.ScriptBaseRamCost),o(this,"errorMessage",""),o(this,"loadedFns",{}),o(this,"output",""),o(this,"ramUsage",0),o(this,"running",!1),this.name=e.filename,this.hostname=e.server;const s=Math.round(t);if("number"!=typeof s||isNaN(s))throw new Error("Invalid PID when constructing WorkerScript: "+t);this.pid=s,e.pid=s;const l=Object(i.d)(this.hostname);if(null==l)throw new Error("WorkerScript constructed with invalid server ip: "+this.hostname);let c=!1;for(let e=0;e=r.price)&&p(r,n);break;case i.a.LimitSell:case i.a.StopBuy:(r.pos===o.a.Long&&e.price>=r.price||r.pos===o.a.Short&&e.price<=r.price)&&p(r,n);break;case i.a.StopSell:(r.pos===o.a.Long&&e.price<=r.price||r.pos===o.a.Short&&e.price>=r.price)&&p(r,n);break;default:return void console.warn("Invalid order type: "+r.type)}}function p(e,t){const a=t.symbolToStockMap[e.stockSymbol];if(!(a instanceof r.a))return void console.error("Could not find stock for this order: "+e.stockSymbol);const h=t.stockMarket.Orders[a.symbol],p={suppressDialog:!0};let d=!0,f=!1;switch(e.type){case i.a.LimitBuy:case i.a.StopBuy:f=!0,e.pos===o.a.Long?d=Object(n.a)(a,e.shares,null,p)&&d:e.pos===o.a.Short&&(d=Object(n.d)(a,e.shares,null,p)&&d);break;case i.a.LimitSell:case i.a.StopSell:e.pos===o.a.Long?d=Object(n.c)(a,e.shares,null,p)&&d:e.pos===o.a.Short&&(d=Object(n.b)(a,e.shares,null,p)&&d);break;default:return void console.warn("Invalid order type: "+e.type)}const g=e.pos===o.a.Long?"Long":"Short";if(d){for(let t=0;t{window.indexedDB||t("Indexed DB does not exists");const a=window.indexedDB.open("bitburnerSave",1);a.onupgradeneeded=function(){this.result.createObjectStore("savestring")},a.onerror=function(e){t("Failed to get IDB "+e)},a.onsuccess=function(){const a=this.result;a?e(a.transaction(["savestring"],"readwrite").objectStore("savestring")):t("database loadign result was undefined")}})}function r(){return new Promise((e,t)=>{n().then(t=>new Promise((e,a)=>{const n=t.get("save");n.onerror=function(e){a("Error in Database request to get savestring: "+e)},n.onsuccess=function(){e(this.result)}}).then(t=>e(t))).catch(e=>t(e))})}function i(e){return n().then(t=>new Promise((a,n)=>{const r=t.put(e,"save");r.onerror=function(e){n("Error saving game to IndexedDB: "+e)},r.onsuccess=()=>a()}))}function o(){return n().then(e=>{e.delete("save")})}a.d(t,"b",(function(){return r})),a.d(t,"c",(function(){return i})),a.d(t,"a",(function(){return o}))},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(57),r=a(393),i=a(21);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class s extends r.a{constructor(e=null){super(e),o(this,"reqdRank",100),o(this,"teamCount",0),e&&e.reqdRank&&(this.reqdRank=e.reqdRank),e&&e.teamCount&&(this.teamCount=e.teamCount)}getTeamSuccessBonus(e){if(this.teamCount&&this.teamCount>0){this.teamCount=Math.min(this.teamCount,e.teamSize);return Math.pow(this.teamCount,.05)}return 1}getActionTypeSkillSuccessBonus(e){return e.skillMultipliers.successChanceOperation}getChaosDifficultyBonus(e){const t=e.getCurrentCity();if(t.chaos>n.a.ChaosThreshold){const e=t.chaos-n.a.ChaosThreshold+1;return Math.pow(e,.5)}return 1}toJSON(){return Object(i.b)("Operation",this)}static fromJSON(e){return Object(i.a)(s,e.data)}}i.c.constructors.Operation=s},,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return N})),a.d(t,"b",(function(){return I}));var n=a(20),r=a(140),i=a(6),o=a(211),s=a(214),l=a(61),c=a(51),u=a(60),m=a(181),h=a(24),p=a(113),d=a(53),f=a(243),g=a(144),y=a(2),b=a(108),E=a(445),k=a(59),v=a(27),_=a(119),w=a(74),S=a(92),C=a(95),x=a(93),O=a(15),M=a(105),T=a(358),R=a(359),A=a(8),P=a(201);function N(){Object(o.b)(y.a);const e=y.a.factions.concat(y.a.factionInvitations).filter((function(e){return h.a[e].getInfo().keep}));y.a.prestigeAugmentation(),Object(g.c)();const t=y.a.getHomeComputer();Object(v.i)(),Object(v.a)(t),Object(_.d)(t),Object(r.b)(i.a.Neurolink)&&n.a[i.a.Neurolink].owned&&(t.programs.push(u.a.FTPCrackProgram.name),t.programs.push(u.a.RelaySMTPProgram.name)),Object(r.b)(i.a.CashRoot)&&n.a[i.a.CashRoot].owned&&(y.a.setMoney(1e6),t.programs.push(u.a.BruteSSHProgram.name)),Object(r.b)(i.a.PCMatrix)&&n.a[i.a.PCMatrix].owned&&(t.programs.push(u.a.DeepscanV1.name),t.programs.push(u.a.AutoLink.name)),(y.a.sourceFileLvl(5)>0||5===y.a.bitNodeN)&&t.programs.push(u.a.Formulas.name),Object(v.f)(y.a.getHomeComputer());for(const e in l.a)l.a.hasOwnProperty(e)&&l.a[e].gainFavor();for(const e in h.a)h.a.hasOwnProperty(e)&&h.a[e].gainFavor();null!==x.a.action&&x.a.finishAction(b.b,y.a,!0),x.a.clear(),P.a.emit(),Object(h.c)(),y.a.factionInvitations=y.a.factionInvitations.concat(e),Object(r.c)(),y.a.reapplyAllSourceFiles(),Object(l.b)(),Object(f.c)();const a=y.a.gang;if(y.a.inGang()&&null!==a){const e=h.a[a.facName];e instanceof m.a&&Object(p.d)(e)}if(y.a.bladeburner instanceof s.a&&y.a.bladeburner.prestige(),8===y.a.bitNodeN&&(y.a.money=25e7),(8===y.a.bitNodeN||w.a[8]>0)&&(y.a.hasWseAccount=!0,y.a.hasTixApiAccess=!0),y.a.hasWseAccount&&(Object(C.f)(),Object(C.h)()),Object(r.b)(i.a.TheRedPill)&&n.a[i.a.TheRedPill].owned){const e=Object(v.d)(S.a.WorldDaemon),t=Object(v.d)(S.a.DaedalusServer);e&&t&&(e.serversOnNetwork.push(t.hostname),t.serversOnNetwork.push(e.hostname))}Object(r.b)(i.a.StaneksGift1)&&n.a[i.a.StaneksGift1].owned&&Object(p.d)(h.a["Church of the Machine God"]),M.b.prestigeAugmentation(),Object(E.b)(),T.b.splice(0,T.b.length),R.b.splice(0,R.b.length)}function I(e){Object(o.b)(y.a),Object(w.b)(y.a),y.a.prestigeSourceFile(),Object(g.c)();const t=y.a.getHomeComputer();Object(v.i)(),Object(v.a)(t),Object(_.d)(t),Object(v.f)(y.a.getHomeComputer()),w.a[9]>=2?t.setMaxRam(128):w.a[1]>0?t.setMaxRam(32):t.setMaxRam(8),t.cpuCores=1;for(const e in l.a)l.a.hasOwnProperty(e)&&(l.a[e].favor=0);for(const e in h.a)h.a.hasOwnProperty(e)&&(h.a[e].favor=0);null!==x.a.action&&x.a.finishAction(b.b,y.a,!0);for(const e in n.a)n.a.hasOwnProperty(e)&&delete n.a[e];if(w.a[12]>0&&y.a.augmentations.push({name:i.a.NeuroFluxGovernor,level:w.a[12]}),Object(h.c)(),Object(r.c)(),y.a.reapplyAllSourceFiles(),Object(l.b)(),Object(f.c)(),y.a.sourceFileLvl(5)>0&&t.programs.push(u.a.Formulas.name),3===y.a.bitNodeN&&(t.messages.push(k.a.CorporationManagementHandbook),Object(O.a)("You received a copy of the Corporation Management Handbook on your home computer. Read it if you need help getting started with Corporations!")),8===y.a.bitNodeN&&(y.a.money=25e7),(8===y.a.bitNodeN||w.a[8]>0)&&(y.a.hasWseAccount=!0,y.a.hasTixApiAccess=!0),10===y.a.bitNodeN&&Object(O.a)("Visit VitaLife in New Tokyo if you'd like to purchase a new sleeve!"),13===y.a.bitNodeN&&Object(O.a)("Trouble is brewing in Chongqing"),y.a.hasWseAccount?(Object(C.f)(),Object(C.h)()):Object(C.d)(),y.a.gang=null,y.a.corporation=null,Object(c.e)(),y.a.bladeburner=null,w.a[9]>=3){const e=y.a.createHacknetServer();e.level=100,e.cores=10,e.cache=5,e.updateHashRate(y.a.hacknet_node_money_mult),e.updateHashCapacity(),Object(d.p)(y.a)}13===y.a.bitNodeN&&(y.a.money=A.a.TravelCost),M.b.prestigeSourceFile(),0===w.a[5]||e||y.a.gainIntelligenceExp(300),Object(E.b)()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(8),r=a(28);class i{constructor(e){this.name=e.name,this.nextPosition=e.nextPosition,this.baseSalary=e.baseSalary,this.repMultiplier=e.repMultiplier,this.requiredHacking=null!=e.reqdHacking?e.reqdHacking:0,this.requiredStrength=null!=e.reqdStrength?e.reqdStrength:0,this.requiredDefense=null!=e.reqdDefense?e.reqdDefense:0,this.requiredDexterity=null!=e.reqdDexterity?e.reqdDexterity:0,this.requiredAgility=null!=e.reqdAgility?e.reqdAgility:0,this.requiredCharisma=null!=e.reqdCharisma?e.reqdCharisma:0,this.requiredReputation=null!=e.reqdReputation?e.reqdReputation:0,this.hackingEffectiveness=null!=e.hackingEffectiveness?e.hackingEffectiveness:0,this.strengthEffectiveness=null!=e.strengthEffectiveness?e.strengthEffectiveness:0,this.defenseEffectiveness=null!=e.defenseEffectiveness?e.defenseEffectiveness:0,this.dexterityEffectiveness=null!=e.dexterityEffectiveness?e.dexterityEffectiveness:0,this.agilityEffectiveness=null!=e.agilityEffectiveness?e.agilityEffectiveness:0,this.charismaEffectiveness=null!=e.charismaEffectiveness?e.charismaEffectiveness:0,100!==Math.round(this.hackingEffectiveness+this.strengthEffectiveness+this.defenseEffectiveness+this.dexterityEffectiveness+this.agilityEffectiveness+this.charismaEffectiveness)&&console.error(`CompanyPosition ${this.name} parameters do not sum to 100`),this.hackingExpGain=null!=e.hackingExpGain?e.hackingExpGain:0,this.strengthExpGain=null!=e.strengthExpGain?e.strengthExpGain:0,this.defenseExpGain=null!=e.defenseExpGain?e.defenseExpGain:0,this.dexterityExpGain=null!=e.dexterityExpGain?e.dexterityExpGain:0,this.agilityExpGain=null!=e.agilityExpGain?e.agilityExpGain:0,this.charismaExpGain=null!=e.charismaExpGain?e.charismaExpGain:0}calculateJobPerformance(e,t,a,r,i,o){const s=this.hackingEffectiveness*e/n.a.MaxSkillLevel,l=this.strengthEffectiveness*t/n.a.MaxSkillLevel,c=this.defenseEffectiveness*a/n.a.MaxSkillLevel,u=this.dexterityEffectiveness*r/n.a.MaxSkillLevel,m=this.agilityEffectiveness*i/n.a.MaxSkillLevel,h=this.charismaEffectiveness*o/n.a.MaxSkillLevel;let p=this.repMultiplier*(s+l+c+u+m+h)/100;return isNaN(p)&&(console.error("Company reputation gain calculated to be NaN"),p=0),p}isSoftwareJob(){return r.j.includes(this.name)}isITJob(){return r.d.includes(this.name)}isSecurityEngineerJob(){return r.i.includes(this.name)}isNetworkEngineerJob(){return r.f.includes(this.name)}isBusinessJob(){return r.b.includes(this.name)}isSecurityJob(){return r.h.includes(this.name)}isAgentJob(){return r.a.includes(this.name)}isSoftwareConsultantJob(){return r.k.includes(this.name)}isBusinessConsultantJob(){return r.c.includes(this.name)}isPartTimeJob(){return r.g.includes(this.name)}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n),i=a(234);const o={};o.SourceFile1=new i.a(1,r.a.createElement(r.a.Fragment,null,"This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the player's multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 16%",r.a.createElement("br",null),"Level 2: 24%",r.a.createElement("br",null),"Level 3: 28%")),o.SourceFile2=new i.a(2,r.a.createElement(r.a.Fragment,null,"This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 24%",r.a.createElement("br",null),"Level 2: 36%",r.a.createElement("br",null),"Level 3: 42%")),o.SourceFile3=new i.a(3,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile4=new i.a(4,r.a.createElement(r.a.Fragment,null,"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 i.a(5,r.a.createElement(r.a.Fragment,null,"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 let you start with Formulas.exe, and will raise all of your hacking-related multipliers by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile6=new i.a(6,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile7=new i.a(7,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile8=new i.a(8,r.a.createElement(r.a.Fragment,null,"This Source-File grants the following benefits:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: Permanent access to WSE and TIX API",r.a.createElement("br",null),"Level 2: Ability to short stocks in other BitNodes",r.a.createElement("br",null),"Level 3: Ability to use limit/stop orders in other BitNodes",r.a.createElement("br",null),r.a.createElement("br",null),"This Source-File also increases your hacking growth multipliers by:",r.a.createElement("br",null),"Level 1: 12%",r.a.createElement("br",null),"Level 2: 18%",r.a.createElement("br",null),"Level 3: 21%")),o.SourceFile9=new i.a(9,r.a.createElement(r.a.Fragment,null,"This Source-File grants the following benefits:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: Permanently unlocks the Hacknet Server in other BitNodes",r.a.createElement("br",null),"Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode",r.a.createElement("br",null),"Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode",r.a.createElement("br",null),r.a.createElement("br",null),"(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing Augmentations)",r.a.createElement("br",null),r.a.createElement("br",null),"This Source-File also increases your hacknet multipliers by:",r.a.createElement("br",null),"Level 1: 8%",r.a.createElement("br",null),"Level 2: 12%",r.a.createElement("br",null),"Level 3: 14%")),o.SourceFile10=new i.a(10,r.a.createElement(r.a.Fragment,null,"This Source-File unlocks Sleeve technology in other BitNodes. Each level of this Source-File also grants you a Duplicate Sleeve")),o.SourceFile11=new i.a(11,r.a.createElement(r.a.Fragment,null,"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:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 32%",r.a.createElement("br",null),"Level 2: 48%",r.a.createElement("br",null),"Level 3: 56%",r.a.createElement("br",null),r.a.createElement("br",null),"It also reduces the price increase for every aug bought by:",r.a.createElement("br",null),r.a.createElement("br",null),"Level 1: 4%",r.a.createElement("br",null),"Level 2: 6%",r.a.createElement("br",null),"Level 3: 7%")),o.SourceFile12=new i.a(12,r.a.createElement(r.a.Fragment,null,"This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.")),o.SourceFile13=new i.a(13,r.a.createElement(r.a.Fragment,null,"Each level of this Source-File increases the size of Stanek's Gift."))},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(13),r=a(93),i=a(21),o=a(329);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l{constructor(e=null,t=[]){s(this,"args",[]),s(this,"dataMap",{}),s(this,"filename",""),s(this,"logs",[]),s(this,"logUpd",!1),s(this,"offlineExpGained",0),s(this,"offlineMoneyMade",0),s(this,"offlineRunningTime",.01),s(this,"onlineExpGained",0),s(this,"onlineMoneyMade",0),s(this,"onlineRunningTime",.01),s(this,"pid",-1),s(this,"ramUsage",0),s(this,"server",""),s(this,"threads",1),null!=e&&(this.filename=e.filename,this.args=t,this.server=e.server,this.ramUsage=e.ramUsage)}log(e){this.logs.length>n.a.MaxLogCapacity&&this.logs.shift();let t=e;n.a.TimestampsFormat&&(t="["+Object(o.a)(n.a.TimestampsFormat)+"] "+t),this.logs.push(t),this.logUpd=!0}displayLog(){for(let e=0;e{try{return r.a[e].getInfo().offerHackingWork}catch(e){return console.error("Error when trying to filter Hacking Factions for Coding Contract Generation: "+e),!1}});return t===n.c.FactionReputation&&0===a.length&&(t=n.c.CompanyReputation),t===n.c.FactionReputationAll&&0===a.length&&(t=n.c.CompanyReputation),t===n.c.CompanyReputation&&0===Object.keys(i.a.jobs).length&&(t=n.c.Money),t}(e.type);const t=i.a.factions.filter(e=>r.a[e].getInfo().offerHackingWork);switch(e.type){case n.c.FactionReputation:{const a=t.length,n=t[Object(c.a)(0,a-1)];e.name=n;break}case n.c.CompanyReputation:{const t=Object.keys(i.a.jobs);t.length>0?e.name=t[Object(c.a)(0,t.length-1)]:e.type=n.c.Money;break}}return e}function f(){const e=Object(o.c)();let t=Object(c.a)(0,e.length-1),a=e[t];for(let n=0;n<200&&(!(a instanceof l.a)||a.purchasedByPlayer||a.hostname===s.a.WorldDaemon);++n)t=Object(c.a)(0,e.length-1),a=e[t];return a}function g(e,t){let a="contract-"+Object(c.a)(0,1e6);for(let t=0;t<1e3&&!(e.contracts.filter(e=>e.fn===a).length<=0);++t)a="contract-"+Object(c.a)(0,1e6);return t.name&&(a+="-"+t.name.replace(/\s/g,"")),a}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(118).a)},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(77),r=a(15);function i(e,t){let a=0,i=!1;for(const r in n.a){const o=n.a[r];if(o.type==t){a=o.successRate(e),i=!0;break}}return i?Math.random()<=a:(Object(r.a)(`ERR: Unrecognized crime type: ${t} This is probably a bug please contact the developer`),!1)}function o(e){return(e=e.toLowerCase()).includes("shoplift")?n.a.Shoplift:e.includes("rob")&&e.includes("store")?n.a.RobStore:e.includes("mug")?n.a.Mug:e.includes("larceny")?n.a.Larceny:e.includes("drugs")?n.a.DealDrugs:e.includes("bond")&&e.includes("forge")?n.a.BondForgery:e.includes("traffick")&&e.includes("arms")?n.a.TraffickArms:e.includes("homicide")?n.a.Homicide:e.includes("grand")&&e.includes("auto")?n.a.GrandTheftAuto:e.includes("kidnap")?n.a.Kidnap:e.includes("assassinate")||e.includes("assassination")?n.a.Assassination:e.includes("heist")?n.a.Heist:null}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(52),r=a(42),i=a(31),o=a(22),s=a(21),l=a(798);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={}){c(this,"minEne",0),c(this,"maxEne",100),c(this,"minHap",0),c(this,"maxHap",100),c(this,"maxMor",100),c(this,"employees",[]),c(this,"employeeProd",{[n.a.Operations]:0,[n.a.Engineer]:0,[n.a.Business]:0,[n.a.Management]:0,[n.a.RandD]:0,total:0}),this.loc=e.loc?e.loc:"",this.size=e.size?e.size:1}atCapacity(){return this.employees.length>=this.size}process(e=1,t,a){if(a.hasResearch("HRBuddy-Recruitment")&&!this.atCapacity()){const e=this.hireRandomEmployee();a.hasResearch("HRBuddy-Training")&&void 0!==e&&(e.pos=n.a.Training)}this.maxEne=100,this.maxHap=100,this.maxMor=100,a.hasResearch("Go-Juice")&&(this.maxEne+=10),a.hasResearch("JoyWire")&&(this.maxHap+=10),a.hasResearch("Sti.mu")&&(this.maxMor+=10);let r=1;t.funds<0&&a.lastCycleRevenue<0?r=Math.pow(.99,e):t.funds>0&&a.lastCycleRevenue>0&&(r=Math.pow(1.01,e));const i=a.hasResearch("AutoBrew"),o=a.hasResearch("AutoPartyManager");let s=0;for(let t=0;t864e5}function o(e){if(i()){for(const t of e.factions)n.a[t].favor++;r=(new Date).getTime()}}function s(e){r=e}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(21);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(){r(this,"bladeburner",0),r(this,"casino",0),r(this,"class",0),r(this,"codingcontract",0),r(this,"corporation",0),r(this,"crime",0),r(this,"gang",0),r(this,"hacking",0),r(this,"hacknet",0),r(this,"hacknet_expenses",0),r(this,"hospitalization",0),r(this,"infiltration",0),r(this,"sleeves",0),r(this,"stock",0),r(this,"total",0),r(this,"work",0),r(this,"servers",0),r(this,"other",0),r(this,"augmentations",0)}record(e,t){const a=t.toLowerCase();"number"==typeof this[a]?(this[a]+=e,this.total+=e):console.warn("MoneySourceTracker.record() called with invalid source: "+t)}reset(){for(const e in this)"number"==typeof this[e]&&(this[e]=0)}toJSON(){return Object(n.b)("MoneySourceTracker",this)}static fromJSON(e){return Object(n.a)(i,e.data)}}n.c.constructors.MoneySourceTracker=i},,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n),i=a(118),o=a(41),s=a(1),l=a(32);const c=new i.a;let u=0;function m(){const[e,t]=Object(n.useState)([]);return Object(n.useEffect)(()=>c.subscribe(e=>{const a=u+"";u++,t(t=>[...t,{id:a,text:e}])}),[]),r.a.createElement(r.a.Fragment,null,e.length>0&&r.a.createElement(o.a,{open:!0,onClose:function(){t(e=>e.slice(1,1e99))}},r.a.createElement(l.a,{overflow:"scroll",sx:{overflowWrap:"break-word",whiteSpace:"pre-line"}},r.a.createElement(s.a,null,e[0].text))))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i}));var n=a(8);function r(e){return e.money<0?0:Math.min(.1*e.money,(e.max_hp-e.hp)*n.a.HospitalCostPerHp)}function i(e,t){const a=e.hp;e.hp-=t;const n=r(e);return e.hp=a,n}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(52),r=a(164),i=a(799),o=a(463),s=a(21),l=a(31);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u{constructor(e={}){c(this,"name",""),c(this,"dmd",0),c(this,"cmp",0),c(this,"mku",0),c(this,"pCost",0),c(this,"sCost",0),c(this,"fin",!1),c(this,"prog",0),c(this,"createCity",""),c(this,"designCost",0),c(this,"advCost",0),c(this,"rat",0),c(this,"qlt",0),c(this,"per",0),c(this,"dur",0),c(this,"rel",0),c(this,"aes",0),c(this,"fea",0),c(this,"data",Object(o.a)([0,0,0])),c(this,"loc",""),c(this,"siz",0),c(this,"reqMats",{}),c(this,"prdman",Object(o.a)([!1,0])),c(this,"sllman",Object(o.a)([!1,0])),c(this,"marketTa1",!1),c(this,"marketTa2",!1),c(this,"marketTa2Price",Object(o.a)(0)),this.name=e.name?e.name:"",this.dmd=e.demand?e.demand:0,this.cmp=e.competition?e.competition:0,this.mku=e.markup?e.markup:0,this.createCity=e.createCity?e.createCity:"",this.designCost=e.designCost?e.designCost:0,this.advCost=e.advCost?e.advCost:0,this.qlt=e.quality?e.quality:0,this.per=e.performance?e.performance:0,this.dur=e.durability?e.durability:0,this.rel=e.reliability?e.reliability:0,this.aes=e.aesthetics?e.aesthetics:0,this.fea=e.features?e.features:0,this.loc=e.loc?e.loc:"",this.siz=e.size?e.size:0,this.reqMats=e.req?e.req:{}}createProduct(e=1,t=1){this.fin||(this.prog+=.01*e*t)}finishProduct(e,t){this.fin=!0;const a=this.prog/100,i=e[n.a.Engineer]/e.total,o=e[n.a.Management]/e.total,s=e[n.a.RandD]/e.total,c=e[n.a.Operations]/e.total,u=e[n.a.Business]/e.total,m=a*(1.2*i+.9*o+1.3*s+1.5*c+u)*(1+Math.pow(this.designCost,.1)/100)*(1+Math.pow(t.sciResearch.qty,t.sciFac)/800);this.qlt=m*(.1*e[n.a.Engineer]+.05*e[n.a.Management]+.05*e[n.a.RandD]+.02*e[n.a.Operations]+.02*e[n.a.Business]),this.per=m*(.15*e[n.a.Engineer]+.02*e[n.a.Management]+.02*e[n.a.RandD]+.02*e[n.a.Operations]+.02*e[n.a.Business]),this.dur=m*(.05*e[n.a.Engineer]+.02*e[n.a.Management]+.08*e[n.a.RandD]+.05*e[n.a.Operations]+.05*e[n.a.Business]),this.rel=m*(.02*e[n.a.Engineer]+.08*e[n.a.Management]+.02*e[n.a.RandD]+.05*e[n.a.Operations]+.08*e[n.a.Business]),this.aes=m*(0*e[n.a.Engineer]+.08*e[n.a.Management]+.05*e[n.a.RandD]+.02*e[n.a.Operations]+.1*e[n.a.Business]),this.fea=m*(.08*e[n.a.Engineer]+.05*e[n.a.Management]+.02*e[n.a.RandD]+.05*e[n.a.Operations]+.05*e[n.a.Business]),this.calculateRating(t);const h=1+Math.pow(this.advCost,.1)/100,p=Math.max(u+o,1/e.total);this.mku=100/(h*Math.pow(this.qlt+.001,.65)*p),0!==this.mku&&isFinite(this.mku)||(this.mku=1),this.dmd=0===t.awareness?20:Math.min(100,h*(t.popularity/t.awareness*100)),this.cmp=Object(l.a)(0,70);for(const e in t.reqMats)if(t.reqMats.hasOwnProperty(e)){const a=t.reqMats[e];if(void 0===a)continue;this.reqMats[e]=a}this.siz=0;for(const e in t.reqMats){const a=t.reqMats[e];void 0!==a&&(this.siz+=r.a[e]*a)}}calculateRating(e){const t=i.a[e.type];null!=t?(this.rat=0,this.rat+=t.Quality?this.qlt*t.Quality:0,this.rat+=t.Performance?this.per*t.Performance:0,this.rat+=t.Durability?this.dur*t.Durability:0,this.rat+=t.Reliability?this.rel*t.Reliability:0,this.rat+=t.Aesthetics?this.aes*t.Aesthetics:0,this.rat+=t.Features?this.fea*t.Features:0):console.error("Could not find product rating weights for: "+e)}toJSON(){return Object(s.b)("Product",this)}static fromJSON(e){return Object(s.a)(u,e.data)}}s.c.constructors.Product=u},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return m}));var n=a(0),r=a.n(n),i=a(29),o=a(449),s=a(1),l=a(26),c=a(10);const u=[];function m(){const e=i.b.Player(),t=i.b.Router(),a=Object(n.useState)(!1)[1];function m(){a(e=>!e)}const h=Object(o.a)(e);return Object(n.useEffect)(()=>{h.forEach(e=>{u.includes(e.name)||u.push(e.name)})},[]),Object(n.useEffect)(()=>{const e=setInterval(m,200);return()=>clearInterval(e)},[]),r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h4"},"Create program"),r.a.createElement(s.a,null,"This page displays any programs that you are able to create. Writing the code for a program takes time, which can vary based on how complex the program is. If you are working on creating a program you can cancel at any time. Your progress will be saved and you can continue later."),h.map(a=>{const n=a.create;return null===n?r.a.createElement(r.a.Fragment,null):r.a.createElement(r.a.Fragment,{key:a.name},r.a.createElement(l.a,{title:n.tooltip},r.a.createElement(c.a,{sx:{my:1},onClick:r=>{r.isTrusted&&e.startCreateProgramWork(t,a.name,n.time,n.level)}},a.name)),r.a.createElement("br",null))}))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return d})),a.d(t,"a",(function(){return f}));var n=a(0),r=a.n(n),i=a(24),o=a(113),s=a(1),l=a(32),c=a(127),u=a(10),m=a(169),h=a(39),p=a(56);const d=[];function f(e){const t=Object(n.useState)(!1)[1];function a(){t(e=>!e)}return Object(n.useEffect)(()=>{const e=setInterval(a,200);return()=>clearInterval(e)},[]),Object(n.useEffect)(()=>{e.player.factionInvitations.forEach(e=>{d.includes(e)||d.push(e)})},[]),r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h4"},"Factions"),r.a.createElement(s.a,null,"Lists all factions you have joined"),r.a.createElement("br",null),r.a.createElement(l.a,{display:"flex",flexDirection:"column"},e.player.factions.map(t=>r.a.createElement(c.a,{key:t,variant:"h6",onClick:()=>function(t){e.router.toFaction(t)}(i.a[t])},t))),r.a.createElement("br",null),e.player.factionInvitations.length>0&&r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{variant:"h5",color:"primary"},"Outstanding Faction Invitations"),r.a.createElement(s.a,null,"Lists factions you have been invited to. You can accept these faction invitations at any time."),r.a.createElement(h.a,{size:"small",padding:"none"},r.a.createElement(m.a,null,e.player.factionInvitations.map(e=>r.a.createElement(p.a,{key:e},r.a.createElement(h.b,null,r.a.createElement(s.a,{noWrap:!0},e)),r.a.createElement(h.b,{align:"right"},r.a.createElement(u.a,{onClick:a=>function(e,a){e.isTrusted&&(Object(o.d)(i.a[a]),t(e=>!e))}(a,e)},"Join!"))))))))}},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(770),r=a(394),i=a(395),o=a(219),s=a(42),l=a(5),c=a(505),u=a(59),m=a(15),h=a(21),p=a(122);function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class f{constructor(e={}){d(this,"name","The Corporation"),d(this,"divisions",[]),d(this,"funds",15e10),d(this,"revenue",0),d(this,"expenses",0),d(this,"fundingRound",0),d(this,"public",!1),d(this,"totalShares",s.a.INITIALSHARES),d(this,"numShares",s.a.INITIALSHARES),d(this,"shareSalesUntilPriceUpdate",s.a.SHARESPERPRICEUPDATE),d(this,"shareSaleCooldown",0),d(this,"issueNewSharesCooldown",0),d(this,"dividendPercentage",0),d(this,"dividendTaxPercentage",50),d(this,"issuedShares",0),d(this,"sharePrice",0),d(this,"storedCycles",0),d(this,"state",new n.a),this.name=e.name?e.name:"The Corporation";const t=Object.keys(r.a).length,a=Object.keys(i.a).length;this.unlockUpgrades=Array(t).fill(0),this.upgrades=Array(a).fill(0),this.upgradeMultipliers=Array(a).fill(1)}addFunds(e){isFinite(e)?this.funds=this.funds+e:console.error("Trying to add invalid amount of funds. Report to a developper.")}getState(){return this.state.getState()}storeCycles(e=1){this.storedCycles+=e}process(e){if(this.storedCycles>=s.a.CyclesPerIndustryStateCycle){const t=this.getState(),a=1,n=a*s.a.CyclesPerIndustryStateCycle;if(this.storedCycles-=n,this.divisions.forEach(e=>{e.process(a,t,this)}),this.shareSaleCooldown>0&&(this.shareSaleCooldown-=n),this.issueNewSharesCooldown>0&&(this.issueNewSharesCooldown-=n),"START"===t){this.revenue=0,this.expenses=0,this.divisions.forEach(e=>{e.lastCycleRevenue!==-1/0&&e.lastCycleRevenue!==1/0&&e.lastCycleExpenses!==-1/0&&e.lastCycleExpenses!==1/0&&(this.revenue=this.revenue+e.lastCycleRevenue,this.expenses=this.expenses+e.lastCycleExpenses)});const t=(this.revenue-this.expenses)*(a*s.a.SecsPerMarketCycle);if((isNaN(this.funds)||this.funds===1/0||this.funds===-1/0)&&(Object(m.a)("There was an error calculating your Corporations funds and they got reset to 0. This is a bug. Please report to game developer.
(Your funds have been set to $150b for the inconvenience)"),this.funds=15e10),this.dividendPercentage>0&&t>0)if(isNaN(this.dividendPercentage)||this.dividendPercentage<0||this.dividendPercentage>100*s.a.DividendMaxPercentage)console.error("Invalid Corporation dividend percentage: "+this.dividendPercentage);else{const a=t-this.dividendPercentage/100*t;e.gainMoney(this.getDividends(),"corporation"),this.addFunds(a)}else this.addFunds(t);this.updateSharePrice()}this.state.nextState()}}getDividends(){const e=(this.revenue-this.expenses)*s.a.SecsPerMarketCycle,t=this.dividendPercentage/100*e/this.totalShares,a=this.numShares*t;let n=-.15;return 1===this.unlockUpgrades[5]&&(n+=.05),1===this.unlockUpgrades[6]&&(n+=.1),Math.pow(a,l.a.CorporationSoftCap+n)}determineValuation(){let e,t=this.revenue-this.expenses;return this.public?(this.dividendPercentage>0&&(t*=(100-this.dividendPercentage)/100),e=this.funds+85e3*t,e*=Math.pow(1.1,this.divisions.length),e=Math.max(e,0)):(e=1e10+Math.max(this.funds,0)/3,t>0?(e+=315e3*t,e*=Math.pow(1.1,this.divisions.length)):e=1e10*Math.pow(1.1,this.divisions.length),e-=e%1e6),e*l.a.CorporationValuation}getTargetSharePrice(){return this.determineValuation()/(2*(this.totalShares-this.numShares)+1)}updateSharePrice(){const e=this.getTargetSharePrice();this.sharePrice<=e?this.sharePrice*=1+.01*Math.random():this.sharePrice*=1-.01*Math.random(),this.sharePrice<=.01&&(this.sharePrice=.01)}immediatelyUpdateSharePrice(){this.sharePrice=this.getTargetSharePrice()}calculateShareSale(e){let t=e,a=this.shareSalesUntilPriceUpdate,n=this.sharePrice,r=0,i=0;const o=Math.ceil(e/s.a.SHARESPERPRICEUPDATE);if(isNaN(o)||o>1e7)return console.error("Something went wrong or unexpected when calculating share sale. Maxiterations calculated to be "+o),[0,0,0];for(let e=0;e3600?Math.floor(t/3600)+" hour(s)":t>60?Math.floor(t/60)+" minute(s)":Math.floor(t)+" second(s)"}unlock(e){const t=e[0],a=e[1];for(;this.unlockUpgrades.length<=t;)this.unlockUpgrades.push(0);this.fundsthis.pop&&(this.popEst=this.pop)):this.popEst>this.pop&&(this.popEst-=e,this.popEstthis.pop&&(this.popEst=this.pop)):this.popEst>this.pop&&(this.popEst*=1-e/100,this.popEst0?1:-1),this.pop+=a,t.changeEstEqually&&(this.popEst+=a,this.popEst<0&&(this.popEst=0)),a}changeChaosByCount(e){if(isNaN(e))throw new Error("NaN passed into City.changeChaosByCount()");0!==e&&(this.chaos+=e,this.chaos<0&&(this.chaos=0))}toJSON(){return Object(i.b)("City",this)}static fromJSON(e){return Object(i.a)(l,e.data)}}i.c.constructors.City=l},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"e",(function(){return u})),a.d(t,"f",(function(){return m}));var n=a(24),r=a(444),i=a(74);function o(){return 2===this.bitNodeN||!(i.a[2]<=0)&&this.karma<=-54e3}function s(){const e=this.gang;if(null===e)throw new Error("Cannot get gang faction because player is not in a gang.");const t=n.a[e.facName];if(null==t)throw new Error("Gang has invalid faction name: "+e.facName);return t}function l(){if(!this.inGang())return"";const e=this.gang;if(null===e)throw new Error("Cannot get gang faction because player is not in a gang.");return e.facName}function c(e){if(!this.inGang())return!1;const t=this.gang;if(null===t)throw new Error("Cannot get gang faction because player is not in a gang.");return t.facName===e}function u(){return null!=this.gang&&null!=this.gang&&this.gang instanceof r.a}function m(e,t){this.gang=new r.a(e,t);const a=n.a[e];if(null==a)throw new Error("Invalid faction name when creating gang: "+e);a.playerReputation=0}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t=[],a=""){this.name=e,this.locations=t,this.asciiArt=a}addLocation(e){this.locations.push(e)}}},,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a(1),i=a(10),o=a(73),s=a(32);function l(e){return n.createElement(s.a,null,n.createElement(o.a,{sx:{my:1,p:1,width:"100%"}},n.createElement(i.a,{onClick:e.onClick},e.buttonText),n.createElement(r.a,null,e.infoText)))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return u}));var n=a(0),r=a(1),i=a(26),o=a(10),s=a(82);let l;function c(e){let t="",a="";return e.tickerDisplayMode===l.Portfolio?(t="Switch to 'All Stocks' Mode",a="Displays all stocks on the WSE"):(t="Switch to 'Portfolio' Mode",a="Displays only the stocks for which you have shares or orders"),n.createElement(i.a,{title:n.createElement(r.a,null,a)},n.createElement(o.a,{onClick:e.changeDisplayMode},t))}function u(e){return n.createElement(n.Fragment,null,n.createElement(c,e),n.createElement("br",null),n.createElement(s.a,{sx:{width:"100%"},onChange:e.changeWatchlistFilter,placeholder:"Filter Stocks by symbol (comma-separated list)",type:"text"}))}!function(e){e[e.AllStocks=0]="AllStocks",e[e.Portfolio=1]="Portfolio"}(l||(l={}))},function(e,t,a){"use strict";a.d(t,"f",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"e",(function(){return h})),a.d(t,"d",(function(){return p})),a.d(t,"a",(function(){return d}));var n=a(8),r=a(5),i=a(45),o=a(85),s=a(27),l=a(92);function c(){return!!Object(s.d)(l.a.DarkWeb)}function u(){const e=Object(s.d)(this.currentServer);if(null===e)throw new Error("somehow connected to a server that does not exist. "+this.currentServer);return e}function m(){const e=Object(s.d)("home");if(e instanceof i.a)return e;throw new Error("home computer was not a normal server")}function h(){const e=this.getHomeComputer().maxRam,t=Math.log2(e),a=Math.pow(1.58,t);return e*n.a.BaseCostFor1GBOfRamHome*a*r.a.HomeComputerRamCost}function p(){return 1e9*Math.pow(7.5,this.getHomeComputer().cpuCores)}function d(){const e="hacknet-node-"+this.hacknetNodes.length,t=new o.a({adminRights:!0,hostname:e,ip:Object(s.e)()});this.hacknetNodes.push(t.hostname),Object(s.a)(t);return this.getHomeComputer().serversOnNetwork.push(t.hostname),t.serversOnNetwork.push(l.a.Home),t}},,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(2),r=a(31),i=a(269),o=a(21),s=a(57);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c{constructor(e=null){l(this,"name",""),l(this,"level",1),l(this,"maxLevel",1),l(this,"autoLevel",!0),l(this,"baseDifficulty",100),l(this,"difficultyFac",1.01),l(this,"rewardFac",1.02),l(this,"successes",0),l(this,"failures",0),l(this,"rankGain",0),l(this,"rankLoss",0),l(this,"hpLoss",0),l(this,"hpLost",0),l(this,"isStealth",!1),l(this,"isKill",!1),l(this,"count",Object(r.a)(1e3,25e3)),l(this,"weights",{hack:1/7,str:1/7,def:1/7,dex:1/7,agi:1/7,cha:1/7,int:1/7}),l(this,"decays",{hack:.9,str:.9,def:.9,dex:.9,agi:.9,cha:.9,int:.9}),l(this,"teamCount",0),e&&e.name&&(this.name=e.name),e&&e.baseDifficulty&&(this.baseDifficulty=Object(i.a)(e.baseDifficulty,10)),e&&e.difficultyFac&&(this.difficultyFac=e.difficultyFac),e&&e.rewardFac&&(this.rewardFac=e.rewardFac),e&&e.rankGain&&(this.rankGain=e.rankGain),e&&e.rankLoss&&(this.rankLoss=e.rankLoss),e&&e.hpLoss&&(this.hpLoss=e.hpLoss),e&&e.isStealth&&(this.isStealth=e.isStealth),e&&e.isKill&&(this.isKill=e.isKill),e&&e.count&&(this.count=e.count),e&&e.weights&&(this.weights=e.weights),e&&e.decays&&(this.decays=e.decays);let t=0;for(const e in this.weights)this.weights.hasOwnProperty(e)&&(t+=this.weights[e]);if(t-1>=10*Number.EPSILON)throw new Error("Invalid weights when constructing Action "+this.name+". The weights should sum up to 1. They sum up to :1");for(const e in this.decays)if(this.decays.hasOwnProperty(e)&&this.decays[e]>1)throw new Error("Invalid decays when constructing Action "+this.name+". Decay value cannot be greater than 1")}getDifficulty(){const e=this.baseDifficulty*Math.pow(this.difficultyFac,this.level-1);if(isNaN(e))throw new Error("Calculated NaN in Action.getDifficulty()");return e}attempt(e){return Math.random()s.a.ChaosThreshold){const e=t.chaos-s.a.ChaosThreshold+1;return Math.pow(e,.5)}return 1}getEstSuccessChance(e){function t(e){return Math.max(0,Math.min(e,1))}const a=this.getSuccessChance(e,{est:!0}),n=this.getSuccessChance(e),r=Math.abs(n-a);let i=n-r,o=n+r;const s=e.getCurrentCity(),l=s.pop/s.popEst;return l<1?i*=l:o*=l,[t(i),t(o)]}getSuccessChance(e,t={est:!1}){if(null==e)throw new Error("Invalid Bladeburner instance passed into Action.getSuccessChance");let a=this.getDifficulty(),r=0;for(const t in this.weights)if(this.weights.hasOwnProperty(t)){const a=n.a.queryStatFromString(t),i="eff"+t.charAt(0).toUpperCase()+t.slice(1);let o=e.skillMultipliers[i];null==o&&(console.error("Failed to find Bladeburner Skill multiplier for: "+t),o=1),r+=this.weights[t]*Math.pow(o*a,this.decays[t])}if(r*=n.a.getIntelligenceBonus(.75),r*=e.calculateStaminaPenalty(),r*=this.getTeamSuccessBonus(e),r*=this.getChaosCompetencePenalty(e,t),a*=this.getChaosDifficultyBonus(e),"Raid"==this.name&&e.getCurrentCity().comms<=0)return 0;if(r*=e.skillMultipliers.successChanceAll,r*=this.getActionTypeSkillSuccessBonus(e),this.isStealth&&(r*=e.skillMultipliers.successChanceStealth),this.isKill&&(r*=e.skillMultipliers.successChanceKill),r*=n.a.bladeburner_success_chance_mult,isNaN(r))throw new Error("Competence calculated as NaN in Action.getSuccessChance()");return Math.min(1,r/a)}getSuccessesNeededForNextLevel(e){return Math.ceil(.5*this.maxLevel*(2*e+(this.maxLevel-1)))}setMaxLevel(e){this.successes>=this.getSuccessesNeededForNextLevel(e)&&++this.maxLevel}toJSON(){return Object(o.b)("Action",this)}static fromJSON(e){return Object(o.a)(c,e.data)}}o.c.constructors.Action=c},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={0:[0,2e10,"Export","Develop infrastructure to export your materials to your other facilities. This allows you to move materials around between different divisions and cities."],1:[1,25e9,"Smart Supply","Use advanced AI to anticipate your supply needs. This allows you to purchase exactly however many materials you need for production."],2:[2,5e9,"Market Research - Demand","Mine and analyze market data to determine the demand of all resources. The demand attribute, which affects sales, will be displayed for every material and product."],3:[3,5e9,"Market Data - Competition","Mine and analyze market data to determine how much competition there is on the market for all resources. The competition attribute, which affects sales, will be displayed for every material and product."],4:[4,1e10,"VeChain","Use AI and blockchain technology to identify where you can improve your supply chain systems. This upgrade will allow you to view a wide array of useful statistics about your Corporation."],5:[5,5e14,"Shady Accounting","Utilize unscrupulous accounting practices and pay off government officials to save money on taxes. This reduces the dividend tax rate by 5%."],6:[6,2e15,"Government Partnership","Help national governments further their agendas in exchange for lowered taxes. This reduces the dividend tax rate by 10%"],7:[7,5e10,"Warehouse API","Enables the warehouse API."],8:[8,5e10,"Office API","Enables the office API."]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={0:[0,2e9,1.06,.03,"Smart Factories","Advanced AI automatically optimizes the operation and productivity of factories. Each level of this upgrade increases your global production by 3% (additive)."],1:[1,2e9,1.06,.1,"Smart Storage","Advanced AI automatically optimizes your warehouse storage methods. Each level of this upgrade increases your global warehouse storage size by 10% (additive)."],2:[2,4e9,1.1,.001,"DreamSense","Use DreamSense LCC Technologies to advertise your corporation to consumers through their dreams. Each level of this upgrade provides a passive increase in awareness of all of your companies (divisions) by 0.004 / market cycle,and in popularity by 0.001 / market cycle. A market cycle is approximately 15 seconds."],3:[3,4e9,1.5,.005,"Wilson Analytics","Purchase data and analysis from Wilson, a marketing research firm. Each level of this upgrades increases the effectiveness of your advertising by 0.5% (additive)."],4:[4,1e9,1.06,.1,"Nuoptimal Nootropic Injector Implants","Purchase the Nuoptimal Nootropic Injector augmentation for your employees. Each level of this upgrade globally increases the creativity of your employees by 10% (additive)."],5:[5,1e9,1.06,.1,"Speech Processor Implants","Purchase the Speech Processor augmentation for your employees. Each level of this upgrade globally increases the charisma of your employees by 10% (additive)."],6:[6,1e9,1.06,.1,"Neural Accelerators","Purchase the Neural Accelerator augmentation for your employees. Each level of this upgrade globally increases the intelligence of your employees by 10% (additive)."],7:[7,1e9,1.06,.1,"FocusWires","Purchase the FocusWire augmentation for your employees. Each level of this upgrade globally increases the efficiency of your employees by 10% (additive)."],8:[8,1e9,1.07,.01,"ABC SalesBots","Always Be Closing. Purchase these robotic salesmen to increase the amount of materials and products you sell. Each level of this upgrade globally increases your sales by 1% (additive)."],9:[9,5e9,1.07,.05,"Project Insight","Purchase 'Project Insight', a R&D service provided by the secretive Fulcrum Technologies. Each level of this upgrade globally increases the amount of Scientific Research you produce by 5% (additive)."]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a.n(n),i=a(23),o=a(1),s=a(26);function l(e){return e.city!==e.currentCity?r.a.createElement(s.a,{title:r.a.createElement(o.a,null,e.city)},r.a.createElement("span",{onClick:()=>e.onTravel(e.city),style:{color:"white",lineHeight:"1em",whiteSpace:"pre",cursor:"pointer"}},e.city[0])):r.a.createElement("span",null,e.city[0])}function c(e){return r.a.createElement(r.a.Fragment,null,r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ,_ . ._. _. ."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," , _-\\','|~\\~ ~/ ;-'_ _-' ,;_;_, ~~-"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," /~~-\\_/-'~'--' \\~~| ', ,' / / ~|-_\\_/~/~ ~~--~~~~'--_"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / ,/'-/~ '\\ ,' _ , '",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Volhaven}),",'|~ ._/-, /~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~/-'~\\_, '-,| '|. ' ~ ,\\ /'~ / /_ /~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}},".-~ '| '',\\~|\\ _\\~ ,_ , ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Chongqing})," /,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," '\\ ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Sector12})," /'~ |_/~\\\\,-,~ \\ \" ,_,/ |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | / ._-~'\\_ _~| \\ ) ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.NewTokyo})),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," \\ __-\\ '/ ~ |\\ \\_ / ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ., '\\ |, ~-_ - | \\\\_' ~| /\\ \\~ ,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~-_' _; '\\ '-, \\,' /\\/ |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," '\\_,~'\\_ \\_ _, /' ' |, /|'"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / \\_ ~ | / \\ ~'; -,_."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ~\\ | | , '-_, ,; ~ ~\\"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," \\, ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Aevum})," / \\ / /| ,-, , -,"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ,/ | |' |/ ,- ~ \\ '."),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ,| ,/ \\ ,/ \\ ",r.a.createElement(l,{onTravel:e.onTravel,currentCity:e.currentCity,city:i.a.Ishima})," |"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / | ~ -~~-, / _"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," | ,-' ~ /"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," / ,' ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ',| ~"),r.a.createElement(o.a,{sx:{lineHeight:"1em",whiteSpace:"pre"}}," ~'"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),i=a(22),o=a(879),s=a(880);function l(e){const t=e.action.getEstSuccessChance(e.bladeburner);let a=r.a.createElement(r.a.Fragment,null);return a=t[0]===t[1]?r.a.createElement(r.a.Fragment,null,Object(i.c)(100*t[0],1),"%"):r.a.createElement(r.a.Fragment,null,Object(i.c)(100*t[0],1),"% ~ ",Object(i.c)(100*t[1],1),"%"),r.a.createElement(r.a.Fragment,null,"Estimated success chance: ",a," ",e.action.isStealth?r.a.createElement(o.a,null):r.a.createElement(r.a.Fragment,null),e.action.isKill?r.a.createElement(s.a,null):r.a.createElement(r.a.Fragment,null))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n),i=a(41);function o(e){return r.a.createElement(i.a,{open:e.open,onClose:e.onClose},e.children)}},,,,,,,,,,,function(e,t,a){"use strict";function n(e,t){const a=e.hostname;return"requiredHackingSkill"in e?!1===e.hasAdminRights?{res:!1,msg:`Cannot ${t} ${a} server because you do not have root access`}:{res:!0}:{res:!1,msg:`Cannot ${t} ${a} server because it is a Hacknet Node`}}function r(e,t){const a=n(e,"hack");if(!a.res)return a;return e.requiredHackingSkill>t.hacking?{res:!1,msg:`Cannot hack ${e.hostname} server because your hacking skill is not high enough`}:{res:!0}}function i(e){return n(e,"grow")}function o(e){return n(e,"weaken")}a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i})),a.d(t,"c",(function(){return o}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n),i=a(4),o=a(104);function s({reputation:e}){return r.a.createElement(o.a,{reputation:i.a.formatReputation(e)+" / sec"})}},function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return o}));var n=a(141);function r(e){return"string"==typeof e&&(!isNaN(e)&&!isNaN(parseFloat(e)))}function i(e){const t=(e=(e=e.trim()).replace(/\s\s+/g," ")).match(/(?:'[^']*'|"[^"]*"|[^;"])*/g);if(!t)return[];const a=t.map(n.h).map(e=>e.match(/(?:'[^']*'|"[^"]*"|[^;"])*/g)).flat(),r=[];for(const e of a)null!==e&&(e.match(/^\s*$/)||r.push(e.trim()));return r}function o(e){let t="";const a=[];let n=0,i=0,o="";for(;i=1&&(o=e.charAt(i-1),"\\"===o&&(s=!0));const l=e.charAt(i);if('"'===l)if(s||" "!==o)""===t?t='"':'"'===t&&(t="");else{const t=e.indexOf('"',i+1);if(-1!==t&&(t===e.length-1||" "===e.charAt(t+1))){a.push(e.substr(i+1,t-i-1)),n=i=t===e.length-1?t+1:t+2;continue}}else if("'"===l)if(s||" "!==o)""===t?t="'":"'"===t&&(t="");else{const t=e.indexOf("'",i+1);if(-1!==t&&(t===e.length-1||" "===e.charAt(t+1))){a.push(e.substr(i+1,t-i-1)),n=i=t===e.length-1?t+1:t+2;continue}}else if(" "===l&&""===t){const t=e.substr(n,i-n);r(t)?a.push(parseFloat(t)):"true"===t?a.push(!0):"false"===t?a.push(!1):a.push(t),n=i+1}++i}if(n!==i){const t=e.substr(n,i-n);r(t)?a.push(parseFloat(t)):"true"===t?a.push(!0):"false"===t?a.push(!1):a.push(t)}return a}},,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=5,r=1e13},,,,,,,,,,,,,,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"b",(function(){return checkInfiniteLoop})),__webpack_require__.d(__webpack_exports__,"a",(function(){return calculateRamUsage}));var acorn_walk__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(313),acorn__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(255),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(270),_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(14);const specialReferenceIF="__SPECIAL_referenceIf",specialReferenceFOR="__SPECIAL_referenceFor",specialReferenceWHILE="__SPECIAL_referenceWhile",memCheckGlobalKey=".__GLOBAL__";async function parseOnlyRamCalculate(otherScripts,code,workerScript){try{let dependencyMap={};const completedParses=new Set,parseQueue=[];function parseCode(e,t){const a=parseOnlyCalculateDeps(e,t);completedParses.add(t);for(let e=0;e0;){const nextModule=parseQueue.shift();if(void 0===nextModule)throw new Error("nextModule should not be undefined");let code;if(nextModule.startsWith("https://")||nextModule.startsWith("http://"))try{const module=await eval("import(nextModule)");code="";for(const e in module)"function"==typeof module[e]&&(code+=module[e].toString()+";\n")}catch(e){return console.error(`Error dynamically importing module from ${nextModule} for RAM calculations: ${e}`),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.URLImportError}else{if(!Array.isArray(otherScripts))return console.warn("parseOnlyRamCalculate() not called with array of scripts"),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.ImportError;let e=null;const t=nextModule.startsWith("./")?nextModule.slice(2):nextModule;for(const a of otherScripts)if(a.filename===t){e=a;break}if(null==e)return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.ImportError;code=e.code}parseCode(code,nextModule)}let ram=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptBaseRamCost;const unresolvedRefs=Object.keys(dependencyMap).filter(e=>e.startsWith(initialModule)),resolvedRefs=new Set;for(;unresolvedRefs.length>0;){const e=unresolvedRefs.shift();if(void 0===e)throw new Error("ref should not be undefined");if("hacknet"!==e||resolvedRefs.has("hacknet")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptHacknetNodesRamCost),"document"!==e||resolvedRefs.has("document")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptDomRamCost),"window"!==e||resolvedRefs.has("window")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptDomRamCost),"corporation"!==e||resolvedRefs.has("corporation")||(ram+=_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.a.ScriptCorporationRamCost),resolvedRefs.add(e),e.endsWith(".*")){const t=e.slice(0,e.length-2);for(const e of Object.keys(dependencyMap).filter(e=>e.startsWith(t)))for(const t of dependencyMap[e]||[])resolvedRefs.has(t)||unresolvedRefs.push(t)}else for(const t of dependencyMap[e]||[])resolvedRefs.has(t)||unresolvedRefs.push(t);try{function applyFuncRam(e){return"number"==typeof e?e:0}if(workerScript.loadedFns[e])continue;let t;workerScript.loadedFns[e]=!0,t=e in workerScript.env.vars.bladeburner?workerScript.env.vars.bladeburner[e]:e in workerScript.env.vars.codingcontract?workerScript.env.vars.codingcontract[e]:e in workerScript.env.vars.stanek?workerScript.env.vars.stanek[e]:e in workerScript.env.vars.gang?workerScript.env.vars.gang[e]:e in workerScript.env.vars.sleeve?workerScript.env.vars.sleeve[e]:e in workerScript.env.vars.stock?workerScript.env.vars.stock[e]:workerScript.env.vars[e],ram+=applyFuncRam(t)}catch(e){continue}}return ram}catch(e){return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}}function checkInfiniteLoop(e){const t=Object(acorn__WEBPACK_IMPORTED_MODULE_1__.a)(e,{sourceType:"module",ecmaVersion:"latest"});let a=-1;return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(t,{},{WhileStatement:(t,n,r)=>{!function(e){return"Literal"===e.type&&"true"===e.raw}(t.test)||function(e){let t=!1;return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(e,{},{AwaitExpression:()=>{t=!0}}),t}(t)?t.body&&r(t.body,n):a=(e.slice(0,t.start).match(/\n/g)||[]).length+1}}),a}function parseOnlyCalculateDeps(e,t){const a=Object(acorn__WEBPACK_IMPORTED_MODULE_1__.a)(e,{sourceType:"module",ecmaVersion:"latest"}),n=t+memCheckGlobalKey,r={};r[n]=new Set;const i={},o=[];function s(e,a){const n=r[e]||(r[e]=new Set),o=i[a];void 0!==o&&n.add(o),n.add(t+"."+a),n.add(a)}const l=Object.getOwnPropertyNames(Object.prototype);function c(){return{Identifier:(e,t)=>{l.includes(e.name)||s(t.key,e.name)},WhileStatement:(e,t,a)=>{s(t.key,specialReferenceWHILE),e.test&&a(e.test,t),e.body&&a(e.body,t)},DoWhileStatement:(e,t,a)=>{s(t.key,specialReferenceWHILE),e.test&&a(e.test,t),e.body&&a(e.body,t)},ForStatement:(e,t,a)=>{s(t.key,specialReferenceFOR),e.init&&a(e.init,t),e.test&&a(e.test,t),e.update&&a(e.update,t),e.body&&a(e.body,t)},IfStatement:(e,t,a)=>{s(t.key,specialReferenceIF),e.test&&a(e.test,t),e.consequent&&a(e.consequent,t),e.alternate&&a(e.alternate,t)},MemberExpression:(e,t,a)=>{e.object&&a(e.object,t),e.property&&a(e.property,t)}}}return acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(a,{key:n},Object.assign({ImportDeclaration:(e,t)=>{const a=e.source.value;o.push(a);const n=r[t.key];if(void 0===n)throw new Error("set should not be undefined");n.add(a+memCheckGlobalKey);for(let n=0;n{const a=t+"."+e.id.name;acorn_walk__WEBPACK_IMPORTED_MODULE_0__.a(e,{key:a},c())}},c())),{dependencyMap:r,additionalModules:o}}async function calculateRamUsage(e,t){const a={loadedFns:{},env:{vars:_Netscript_RamCostGenerator__WEBPACK_IMPORTED_MODULE_3__.b}};try{return await parseOnlyRamCalculate(t,e,a)}catch(e){return console.error("Failed to parse script for RAM calculations:"),console.error(e),_RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}return _RamCalculationErrorCodes__WEBPACK_IMPORTED_MODULE_2__.a.SyntaxError}},function(e,t,a){"use strict";function n(e){return+(Math.round(parseFloat(e+"e+2"))+"e-2")}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"c",(function(){return m})),a.d(t,"a",(function(){return h}));var n=a(0),r=a.n(n),i=a(291),o=a(2),s=a(93),l=a(92),c=a(16);function u(){const e=o.a.getCurrentServer();null!==e&&l.a.DarkWeb==e.hostname&&s.a.print("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 m(){for(const e in i.a){const t=i.a[e];s.a.printRaw(r.a.createElement(r.a.Fragment,null,t.program," - ",r.a.createElement(c.a,{money:t.price})," - ",t.description))}}function h(e){e=e.toLowerCase();let t=null;for(const a in i.a){const n=i.a[a];n.program.toLowerCase()==e&&(t=n)}null!==t?o.a.hasProgram(t.program)?s.a.print("You already have the "+t.program+" program"):o.a.moneyt&&(a=1),this.wanted=a,this.wanted<1&&(this.wanted=1)}t.gainMoney(a*e,"gang")}processTerritoryAndPowerGains(e=1){if(this.storedTerritoryAndPowerCycles+=e,this.storedTerritoryAndPowerCycles0&&(this.territoryClashChance=Math.max(0,this.territoryClashChance-.01));const a=c.a.Names.filter(e=>h.a[e].territory>0);if(a.length>1)for(let e=0;et!==a[e]),i=Object(l.a)(0,r.length-1),o=a[e],s=r[i];if(!(o!==t&&s!==t||Math.random()1&&(h.a[o].territory=1),h.a[s].territory-=e,h.a[o].territory<0&&(h.a[o].territory=0),o===t?(this.clash(!0),h.a[s].power*=1/1.01):s===t?this.clash(!1):h.a[s].power*=1/1.01}else{if(h.a[o].territory<=0)return;const e=n(s,o);h.a[o].territory-=e,h.a[s].territory<0&&(h.a[s].territory=0),h.a[s].territory+=e,h.a[s].territory>1&&(h.a[s].territory=1),o===t?this.clash(!1):s===t?(this.clash(!0),h.a[o].power*=1/1.01):h.a[o].power*=1/1.01}}}processExperienceGains(e=1){for(let t=0;t=0;--e){const a=this.members[e];if("Territory Warfare"!==a.task)continue;const n=t/Math.pow(a.def,.6);Math.random()=c.a.MaximumGangMembers)&&this.respect>=this.getRespectNeededToRecruitMember()}getRespectNeededToRecruitMember(){if(this.members.length<3)return 0;const e=this.members.length-2;return Math.pow(5,e)}recruitMember(e){if(""===(e=String(e))||!this.canRecruitMember())return!1;if(this.members.filter(t=>t.name===e).length>=1)return!1;const t=new p.a(e);return this.members.push(t),!0}getWantedPenalty(){return this.respect/(this.respect+this.wanted)}calculatePower(){let e=0;for(let t=0;t"Ascended Gang member "+e.name),a}catch(e){throw null==t&&Object(s.a)(e),e}}getDiscount(){const e=this.getPower(),t=this.respect,a=Math.pow(t,.01)+t/5e6+Math.pow(e,.01)+e/1e6-1;return Math.max(1,a)}getAllTaskNames(){return Object.keys(m.a).filter(e=>{const t=m.a[e];return null!=t&&("Unassigned"!==t.name&&(this.isHackingGang===t.isHacking||!this.isHackingGang===t.isCombat))})}getUpgradeCost(e){return null==e?1/0:e.cost/this.getDiscount()}toJSON(){return Object(o.b)("Gang",this)}static fromJSON(e){return Object(o.a)(f,e.data)}}o.c.constructors.Gang=f},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o}));var n=a(163);let r=1;function i(){let e=r,t=!1;for(let a=0;a<1e6;){if(!n.a.has(e+a)){t=!0,e+=a;break}a===Number.MAX_SAFE_INTEGER-1?a=1:++a}return t?(r=e+1,r>=Number.MAX_SAFE_INTEGER&&(r=1),e):-1}function o(){r=1}},function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return J}));var n=a(408),r=a(14),i=a(264),o=a(5),s=a(8),l=a(89),c=a(409),u=a(85),m=a(93),h=a(2),p=a(60),d=a(284),f=a(240),g=a(91),y=a(511),b=a(27),E=a(119),k=a(216),v=a(45),_=a(74),w=a(447),S=a(112),C=a(241),x=a(144),O=a(131),M=a(163),T=a(107),R=a(4),A=a(22),P=a(201),N=a(230),I=a(122),F=a(785),D=a(786),j=a(787),B=a(788),G=a(789),L=a(792),W=a(793),H=a(795),U=a(800),q=a(801),K=a(802),z=a(547),$=a(15),Y=a(253),V=a(546);function J(t){const a=function(e,a){if(t.dynamicLoadedFns[e])return;t.dynamicLoadedFns[e]=!0;let n=t.scriptRef.threads;if("number"!=typeof n&&(console.warn(`WorkerScript detected NaN for threadcount for ${t.name} on ${t.hostname}`),n=1),t.dynamicRamUsage+=a,t.dynamicRamUsage>1.01*t.ramUsage)throw Object(T.b)(t,`Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${e}.\n This is probably because you somehow circumvented the static RAM calculation.\n\n Threads: ${n}\n Dynamic RAM Usage: ${R.a.formatRAM(t.dynamicRamUsage)}\n Static RAM Usage: ${R.a.formatRAM(t.ramUsage)}\n\n One of these could be the reason:\n * Using eval() to get a reference to a ns function\n const myScan = eval('ns.scan');\n\n * Using map access to do the same\n const myScan = ns['scan'];\n\n Sorry :(`)},X=function(e,t){const a=Object(b.d)(e);if(null==a)throw ae(t,"Invalid hostname or IP: "+e);return a},Q=function(e,a,n,r){if("string"==typeof n&&""!==n||(n="getRunningScript"),!Array.isArray(r))throw Object(T.b)(t,`Invalid scriptArgs argument passed into getRunningScript() from ${n}(). This is probably a bug. Please report to game developer`);if(null!=e&&"string"==typeof e){null==a&&(a=t.hostname);const i=X(a,n);return Object(f.a)(e,r,i)}return t.scriptRef},Z=function(e,t){"string"==typeof t&&""!==t||(t="getRunningScriptgetRunningScriptByPid");for(const t of Object(b.c)()){const a=Object(f.b)(e,t);if(a)return a}return null},ee=function(e,t,a){return Array.isArray(a)||(a=[]),`Cannot find running script ${e} on server ${t} with args: ${Object(N.a)(a)}`},te=function(e,a=""){return e instanceof u.a&&(t.log(a,()=>"Does not work on Hacknet Servers"),!0)},ae=function(e,a){const n=(new Error).stack;if(void 0===n)throw new Error("how did we not throw an error?");const r=n.split("\n").slice(1),i=t.getServer().scripts,o=[];for(const e of r){let t;for(const a of i){a.url&&e.includes(a.url)&&(t=a.filename);for(const n of a.dependencies)e.includes(n.url)&&(t=n.filename)}if(!t)continue;function s(e){const t=e.match(/.*:(\d+):\d+.*/),a=e.match(/.*at (.+) \(.*/);return t&&a?{line:t[1],func:a[1]}:null}let a={line:"-1",func:"unknown"};const n=s(e);function l(e){const t=e.match(/.*:(\d+):\d+$/),a=e.lastIndexOf("@");return t&&-1!==a?{line:t[1],func:e.slice(0,a)}:null}n&&(a=n);const r=l(e);r&&(a=r),o.push(`${t}:L${a.line}@${a.func}`)}t.log(e,()=>a);let c=`${e}: ${a}`;return 0!==o.length&&(c+="
Stack:
"+o.join("
")),Object(T.b)(t,c)},ne=function(e,a,{threads:n,stock:r}={}){if(void 0===e)throw ae("hack","Takes 1 argument.");const i=Object(T.d)(t,"hack",n),u=X(e,"hack");if(!(u instanceof v.a))throw ae("hack","Cannot be executed on this server.");const m=Object(l.d)(u,h.a),p=Object(c.b)(u,h.a);if(!p.res)throw ae("hack",p.msg||"");return t.log("hack",()=>`Executing ${e} in ${Object(A.b)(1e3*m,!0)} (t=${R.a.formatThreads(i)})`),Object(T.c)(1e3*m,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=Object(l.b)(u,h.a),n=Math.random();let c=Object(l.c)(u,h.a)*i;const m=c/4;if(nu.moneyAvailable&&(p=u.moneyAvailable),u.moneyAvailable-=p,u.moneyAvailable<0&&(u.moneyAvailable=0);const d=p*o.a.ScriptHackMoneyGain;return h.a.gainMoney(d,"hacking"),t.scriptRef.onlineMoneyMade+=d,h.a.scriptProdSinceLastAug+=d,t.scriptRef.recordHack(u.hostname,d,i),h.a.gainHackingExp(c),a&&h.a.gainIntelligenceExp(Math.pow(c/s.a.IntelligenceTerminalHackBaseExpGain,.1)),t.scriptRef.onlineExpGained+=c,t.log("hack",()=>`Successfully hacked '${u.hostname}' for ${R.a.formatMoney(d)} and ${R.a.formatExp(c)} exp (t=${R.a.formatThreads(i)})`),u.fortify(s.a.ServerFortifyAmount*Math.min(i,n)),r&&Object(w.c)(u,p),a&&(u.backdoorInstalled=!0),Promise.resolve(d)}return h.a.gainHackingExp(m),t.scriptRef.onlineExpGained+=m,t.log("hack",()=>`Failed to hack '${u.hostname}'. Gained ${R.a.formatExp(m)} exp (t=${R.a.formatThreads(i)})`),Promise.resolve(0)}))},re=function(e){let t="";for(let a of e)a=Object(z.a)(a),t+="object"==typeof a?JSON.stringify(a):""+a;return t},ie={updateDynamicRam:a,makeRuntimeErrorMsg:ae,string:(e,t,a)=>{if("string"==typeof a)return a;if("number"==typeof a)return a+"";throw ae(e,t+" should be a string")},number:(e,t,a)=>{if("number"==typeof a)return a;if(!isNaN(a)&&!isNaN(parseFloat(a)))return parseFloat(a);throw ae(e,t+" should be a number")},boolean:e=>!!e,getServer:X,checkSingularityAccess:function(e,t){if(4!==h.a.bitNodeN&&_.a[4]`returned ${n.serversOnNetwork.length} connections for ${n.hostname}`),i},hack:function(e,{threads:t,stock:n}={}){return a("hack",Object(r.c)("hack")),ne(e,!1,{threads:t,stock:n})},hackAnalyzeThreads:function(e,n){a("hackAnalyzeThreads",Object(r.c)("hackAnalyzeThreads"));const i=X(e,"hackAnalyzeThreads");if(!(i instanceof v.a))return t.log("hackAnalyzeThreads",()=>"Cannot be executed on this server."),-1;if(isNaN(n))throw ae("hackAnalyzeThreads",`Invalid growth argument passed into hackAnalyzeThreads: ${n}. Must be numeric.`);if(n<0||n>i.moneyAvailable)return-1;const o=Object(l.e)(i,h.a);return n/Math.floor(i.moneyAvailable*o)},hackAnalyze:function(e){a("hackAnalyze",Object(r.c)("hackAnalyze"));const n=X(e,"hackAnalyze");return n instanceof v.a?Object(l.e)(n,h.a):(t.log("hackAnalyze",()=>"Cannot be executed on this server."),!1)},hackAnalyzeSecurity:function(e){return s.a.ServerFortifyAmount*e},hackAnalyzeChance:function(e){a("hackAnalyzeChance",Object(r.c)("hackAnalyzeChance"));const n=X(e,"hackAnalyzeChance");return n instanceof v.a?Object(l.b)(n,h.a):(t.log("hackAnalyzeChance",()=>"Cannot be executed on this server."),!1)},sleep:function(e){if(void 0===e)throw ae("sleep","Takes 1 argument.");return t.log("sleep",()=>`Sleeping for ${e} milliseconds`),Object(T.c)(e,t).then((function(){return Promise.resolve(!0)}))},asleep:function(e){if(void 0===e)throw ae("asleep","Takes 1 argument.");return t.log("asleep",()=>`Sleeping for ${e} milliseconds`),Object(T.c)(e,t).then((function(){return Promise.resolve(!0)}))},grow:function(e,{threads:n,stock:i}={}){a("grow",Object(r.c)("grow"));const o=Object(T.d)(t,"grow",n);if(void 0===e)throw ae("grow","Takes 1 argument.");const s=X(e,"grow");if(!(s instanceof v.a))return t.log("grow",()=>"Cannot be executed on this server."),!1;const u=Object(b.d)(t.hostname);if(null===u)throw new Error("Workerscript host is null");const m=Object(c.a)(s);if(!m.res)throw ae("grow",m.msg||"");const p=Object(l.a)(s,h.a);return t.log("grow",()=>`Executing on '${s.hostname}' in ${Object(A.b)(1e3*p,!0)} (t=${R.a.formatThreads(o)}).`),Object(T.c)(1e3*p,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=s.moneyAvailable<=0?1:s.moneyAvailable;Object(E.e)(s,o,h.a,u.cpuCores);const a=s.moneyAvailable;t.scriptRef.recordGrow(s.hostname,o);const n=Object(l.c)(s,h.a)*o,r=a/e-1;return t.log("grow",()=>`Available money on '${s.hostname}' grown by ${R.a.formatPercentage(r,6)}. Gained ${R.a.formatExp(n)} hacking exp (t=${R.a.formatThreads(o)}).`),t.scriptRef.onlineExpGained+=n,h.a.gainHackingExp(n),i&&Object(w.b)(s,a-e),Promise.resolve(a/e)}))},growthAnalyze:function(e,n,i=1){a("growthAnalyze",Object(r.c)("growthAnalyze"));const o=X(e,"growthAnalyze");if(!(o instanceof v.a))return t.log("growthAnalyze",()=>"Cannot be executed on this server."),!1;if("number"!=typeof n||isNaN(n)||n<1||!isFinite(n))throw ae("growthAnalyze",`Invalid argument: growth must be numeric and >= 1, is ${n}.`);return Object(E.c)(o,Number(n),h.a,i)},growthAnalyzeSecurity:function(e){return 2*s.a.ServerFortifyAmount*e},weaken:function(e,{threads:n}={}){a("weaken",Object(r.c)("weaken"));const i=Object(T.d)(t,"weaken",n);if(void 0===e)throw ae("weaken","Takes 1 argument.");const o=X(e,"weaken");if(!(o instanceof v.a))return t.log("weaken",()=>"Cannot be executed on this server."),!1;const u=Object(c.c)(o);if(!u.res)throw ae("weaken",u.msg||"");const m=Object(l.f)(o,h.a);return t.log("weaken",()=>`Executing on '${o.hostname}' in ${Object(A.b)(1e3*m,!0)} (t=${R.a.formatThreads(i)})`),Object(T.c)(1e3*m,t).then((function(){if(t.env.stopFlag)return Promise.reject(t);const e=Object(b.d)(t.hostname);if(null===e)return t.log("weaken",()=>"Server is null, did it die?"),Promise.resolve(0);const a=1+(e.cpuCores-1)/16;o.weaken(s.a.ServerWeakenAmount*i*a),t.scriptRef.recordWeaken(o.hostname,i);const n=Object(l.c)(o,h.a)*i;return t.log("weaken",()=>`'${o.hostname}' security level weakened to ${o.hackDifficulty}. Gained ${R.a.formatExp(n)} hacking exp (t=${R.a.formatThreads(i)})`),t.scriptRef.onlineExpGained+=n,h.a.gainHackingExp(n),Promise.resolve(s.a.ServerWeakenAmount*i*a)}))},weakenAnalyze:function(e,t=1){const a=1+(t-1)/16;return s.a.ServerWeakenAmount*e*a},print:function(...e){if(0===e.length)throw ae("print","Takes at least 1 argument.");t.print(re(e))},tprint:function(...e){if(0===e.length)throw ae("tprint","Takes at least 1 argument.");const a=re(e);a.startsWith("ERROR")||a.startsWith("FAIL")?m.a.error(`${t.scriptRef.filename}: ${a}`):a.startsWith("SUCCESS")?m.a.success(`${t.scriptRef.filename}: ${a}`):a.startsWith("WARN")?m.a.warn(`${t.scriptRef.filename}: ${a}`):a.startsWith("INFO")?m.a.info(`${t.scriptRef.filename}: ${a}`):m.a.print(`${t.scriptRef.filename}: ${a}`)},tprintf:function(e,...t){if("string"!=typeof e)throw ae("tprintf","First argument must be string for the format.");const a=Object(n.vsprintf)(e,t);a.startsWith("ERROR")||a.startsWith("FAIL")?m.a.error(""+a):a.startsWith("SUCCESS")?m.a.success(""+a):a.startsWith("WARN")?m.a.warn(""+a):a.startsWith("INFO")?m.a.info(""+a):m.a.print(""+a)},clearLog:function(){t.scriptRef.clearLog()},disableLog:function(e){if("ALL"===e){for(e in ge)t.disableLogs[e]=!0;t.log("disableLog",()=>"Disabled logging for all functions")}else{if(void 0===ge[e])throw ae("disableLog",`Invalid argument: ${e}.`);t.disableLogs[e]=!0,t.log("disableLog",()=>"Disabled logging for "+e)}},enableLog:function(e){if(void 0===ge[e])throw ae("enableLog",`Invalid argument: ${e}.`);delete t.disableLogs[e],t.log("enableLog",()=>"Enabled logging for "+e)},isLogEnabled:function(e){if(void 0===ge[e])throw ae("isLogEnabled",`Invalid argument: ${e}.`);return!t.disableLogs[e]},getScriptLogs:function(e,a,...n){const r=Q(e,a,"getScriptLogs",n);return null==r?(t.log("getScriptLogs",()=>ee(e,a,n)),""):r.logs.slice()},tail:function(e,a=t.hostname,...n){let r;r=0===arguments.length?t.scriptRef:"number"==typeof e?Z(e,"tail"):Q(e,a,"tail",n),null!=r?P.b.emit(r):t.log("tail",()=>ee(e,a,n))},nuke:function(e){if(a("nuke",Object(r.c)("nuke")),void 0===e)throw ae("nuke","Takes 1 argument.");const n=X(e,"nuke");if(!(n instanceof v.a))return t.log("nuke",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.NukeProgram.name))throw ae("nuke","You do not have the NUKE.exe virus!");if(n.openPortCount`Already have root access to '${n.hostname}'.`):(n.hasAdminRights=!0,t.log("nuke",()=>`Executed NUKE.exe virus on '${n.hostname}' to gain root access.`)),!0},brutessh:function(e){if(a("brutessh",Object(r.c)("brutessh")),void 0===e)throw ae("brutessh","Takes 1 argument.");const n=X(e,"brutessh");if(!(n instanceof v.a))return t.log("brutessh",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.BruteSSHProgram.name))throw ae("brutessh","You do not have the BruteSSH.exe program!");return n.sshPortOpen?t.log("brutessh",()=>`SSH Port (22) already opened on '${n.hostname}'.`):(t.log("brutessh",()=>`Executed BruteSSH.exe on '${n.hostname}' to open SSH port (22).`),n.sshPortOpen=!0,++n.openPortCount),!0},ftpcrack:function(e){if(a("ftpcrack",Object(r.c)("ftpcrack")),void 0===e)throw ae("ftpcrack","Takes 1 argument.");const n=X(e,"ftpcrack");if(!(n instanceof v.a))return t.log("ftpcrack",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.FTPCrackProgram.name))throw ae("ftpcrack","You do not have the FTPCrack.exe program!");return n.ftpPortOpen?t.log("ftpcrack",()=>`FTP Port (21) already opened on '${n.hostname}'.`):(t.log("ftpcrack",()=>`Executed FTPCrack.exe on '${n.hostname}' to open FTP port (21).`),n.ftpPortOpen=!0,++n.openPortCount),!0},relaysmtp:function(e){if(a("relaysmtp",Object(r.c)("relaysmtp")),void 0===e)throw ae("relaysmtp","Takes 1 argument.");const n=X(e,"relaysmtp");if(!(n instanceof v.a))return t.log("relaysmtp",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.RelaySMTPProgram.name))throw ae("relaysmtp","You do not have the relaySMTP.exe program!");return n.smtpPortOpen?t.log("relaysmtp",()=>`SMTP Port (25) already opened on '${n.hostname}'.`):(t.log("relaysmtp",()=>`Executed relaySMTP.exe on '${n.hostname}' to open SMTP port (25).`),n.smtpPortOpen=!0,++n.openPortCount),!0},httpworm:function(e){if(a("httpworm",Object(r.c)("httpworm")),void 0===e)throw ae("httpworm","Takes 1 argument");const n=X(e,"httpworm");if(!(n instanceof v.a))return t.log("httpworm",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.HTTPWormProgram.name))throw ae("httpworm","You do not have the HTTPWorm.exe program!");return n.httpPortOpen?t.log("httpworm",()=>`HTTP Port (80) already opened on '${n.hostname}'.`):(t.log("httpworm",()=>`Executed HTTPWorm.exe on '${n.hostname}' to open HTTP port (80).`),n.httpPortOpen=!0,++n.openPortCount),!0},sqlinject:function(e){if(a("sqlinject",Object(r.c)("sqlinject")),void 0===e)throw ae("sqlinject","Takes 1 argument.");const n=X(e,"sqlinject");if(!(n instanceof v.a))return t.log("sqlinject",()=>"Cannot be executed on this server."),!1;if(!h.a.hasProgram(p.a.SQLInjectProgram.name))throw ae("sqlinject","You do not have the SQLInject.exe program!");return n.sqlPortOpen?t.log("sqlinject",()=>`SQL Port (1433) already opened on '${n.hostname}'.`):(t.log("sqlinject",()=>`Executed SQLInject.exe on '${n.hostname}' to open SQL port (1433).`),n.sqlPortOpen=!0,++n.openPortCount),!0},run:function(e,n=1,...i){if(a("run",Object(r.c)("run")),void 0===e)throw ae("run","Usage: run(scriptname, [numThreads], [arg1], [arg2]...)");if(isNaN(n)||n<=0)throw ae("run","Invalid thread count. Must be numeric and > 0, is "+n);const o=Object(b.d)(t.hostname);if(null==o)throw ae("run","Could not find server. This is a bug. Report to dev.");return Object(x.d)("run",o,e,i,t,n)},exec:function(e,n,i=1,...o){if(a("exec",Object(r.c)("exec")),void 0===e||void 0===n)throw ae("exec","Usage: exec(scriptname, server, [numThreads], [arg1], [arg2]...)");if(isNaN(i)||i<=0)throw ae("exec","Invalid thread count. Must be numeric and > 0, is "+i);const s=X(n,"exec");return Object(x.d)("exec",s,e,o,t,i)},spawn:function(e,n=1,...i){if(a("spawn",Object(r.c)("spawn")),!e||!n)throw ae("spawn","Usage: spawn(scriptname, threads)");setTimeout(()=>{if(isNaN(n)||n<=0)throw ae("spawn","Invalid thread count. Must be numeric and > 0, is "+n);const a=Object(b.d)(t.hostname);if(null==a)throw ae("spawn","Could not find server. This is a bug. Report to dev");return Object(x.d)("spawn",a,e,i,t,n)},1e4),t.log("spawn",()=>`Will execute '${e}' in 10 seconds`),t.running=!1,Object(O.a)(t)&&t.log("spawn",()=>"Exiting...")},kill:function(e,n,...i){let o;a("kill",Object(r.c)("kill"));const s="number"==typeof e;if(s)o=Object(O.a)(e);else{if(void 0===e||void 0===n)throw ae("kill","Usage: kill(scriptname, server, [arg1], [arg2]...)");const a=X(n,"kill"),r=Q(e,n,"kill",i);if(null==r)return t.log("kill",()=>ee(e,n,i)),!1;o=Object(O.a)(r,a.hostname)}return o?(s?t.log("kill",()=>"Killing script with PID "+e):t.log("kill",()=>`Killing '${e}' on '${n}' with args: ${Object(N.a)(i)}.`),!0):(s?t.log("kill",()=>"No script with PID "+e):t.log("kill",()=>`No such script '${e}' on '${n}' with args: ${Object(N.a)(i)}`),!1)},killall:function(e=t.hostname){if(a("killall",Object(r.c)("killall")),void 0===e)throw ae("killall","Takes 1 argument");const n=X(e,"killall"),o=n.runningScripts.length>0;for(let e=n.runningScripts.length-1;e>=0;--e)Object(O.a)(n.runningScripts[e],n.hostname,!1);return i.a.emit(),t.log("killall",()=>`Killing all scripts on '${n.hostname}'. May take a few minutes for the scripts to die.`),o},exit:function(){t.running=!1,Object(O.a)(t)?t.log("exit",()=>"Exiting..."):t.log("exit",()=>"Failed. This is a bug. Report to dev.")},scp:async function(e,n,i){if(a("scp",Object(r.c)("scp")),2!==arguments.length&&3!==arguments.length)throw ae("scp","Takes 2 or 3 arguments");if(e&&e.constructor===Array){let a=!1;return await e.forEach((async function(e){await J(t).scp(e,n,i)&&(a=!0)})),Promise.resolve(a)}if(!Object(S.h)(e))throw ae("scp",`Invalid filename: '${e}'`);if(!e.endsWith(".lit")&&!Object(g.a)(e)&&!e.endsWith("txt"))throw ae("scp","Only works for .script, .lit, and .txt files");let o,s;if(null!=i){if(void 0===e||void 0===n||void 0===i)throw ae("scp","Takes 2 or 3 arguments");o=X(i,"scp"),s=X(n,"scp")}else{if(null==n)throw ae("scp","Takes 2 or 3 arguments");if(void 0===e||void 0===n)throw ae("scp","Takes 2 or 3 arguments");if(o=X(n,"scp"),s=Object(b.d)(t.hostname),null==s)throw ae("scp","Could not find server hostname for this script. This is a bug. Report to dev.")}if(e.endsWith(".lit")){let a=!1;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let a=0;a{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0);return o.messages.push(e),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0)}if(e.endsWith(".txt")){let a;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let n=0;n{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0);const n=new C.a(a.fn,a.text);return o.textFiles.push(n),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),Promise.resolve(!0)}let l=null;for(let t=0;t`File '${e}' does not exist.`),Promise.resolve(!1);for(let a=0;a{var t;return`WARNING: File '${e}' overwritten on '${null===(t=o)||void 0===t?void 0:t.hostname}'`});const n=o.scripts[a];return n.code===l.code||(n.code=l.code,n.ramUsage=l.ramUsage,n.markUpdated()),Promise.resolve(!0)}const c=new d.a(e);return c.code=l.code,c.ramUsage=l.ramUsage,c.server=o.hostname,o.scripts.push(c),t.log("scp",()=>{var t;return`File '${e}' copied over to '${null===(t=o)||void 0===t?void 0:t.hostname}'.`}),new Promise(e=>{null!==o?c.updateRamUsage(o.scripts).then(()=>e(!0)):e(!1)})},ls:function(e,t){if(a("ls",Object(r.c)("ls")),void 0===e)throw ae("ls","Usage: ls(hostname/ip, [grep filter])");const n=X(e,"ls");let i="";arguments.length>=2&&(i=t.toString());const o=[];for(let e=0;e"returned "+h.a.hacking),h.a.hacking},getHackingMultipliers:function(){return a("getHackingMultipliers",Object(r.c)("getHackingMultipliers")),{chance:h.a.hacking_chance_mult,speed:h.a.hacking_speed_mult,money:h.a.hacking_money_mult,growth:h.a.hacking_grow_mult}},getHacknetMultipliers:function(){return a("getHacknetMultipliers",Object(r.c)("getHacknetMultipliers")),{production:h.a.hacknet_node_money_mult,purchaseCost:h.a.hacknet_node_purchase_cost_mult,ramCost:h.a.hacknet_node_ram_cost_mult,coreCost:h.a.hacknet_node_core_cost_mult,levelCost:h.a.hacknet_node_level_cost_mult}},getBitNodeMultipliers:function(){if(a("getBitNodeMultipliers",Object(r.c)("getBitNodeMultipliers")),_.a[5]<=0&&5!==h.a.bitNodeN)throw ae("getBitNodeMultipliers","Requires Source-File 5 to run.");return Object.assign({},o.a)},getServer:function(e=t.hostname){a("getServer",Object(r.c)("getServer"));const n=X(e,"getServer"),i=Object.assign({},n);return i.contracts=[],i.messages=[],i.runningScripts=[],i.scripts=[],i.textFiles=[],i.programs=[],i.serversOnNetwork=[],i},getServerMoneyAvailable:function(e){a("getServerMoneyAvailable",Object(r.c)("getServerMoneyAvailable"));const n=X(e,"getServerMoneyAvailable");return n instanceof v.a?te(n,"getServerMoneyAvailable")?0:"home"==n.hostname?(t.log("getServerMoneyAvailable",()=>"returned player's money: "+R.a.formatMoney(h.a.money)),h.a.money):(t.log("getServerMoneyAvailable",()=>`returned ${R.a.formatMoney(n.moneyAvailable)} for '${n.hostname}'`),n.moneyAvailable):(t.log("getServerMoneyAvailable",()=>"Cannot be executed on this server."),0)},getServerSecurityLevel:function(e){a("getServerSecurityLevel",Object(r.c)("getServerSecurityLevel"));const n=X(e,"getServerSecurityLevel");return n instanceof v.a?te(n,"getServerSecurityLevel")?1:(t.log("getServerSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.hackDifficulty)} for '${n.hostname}'`),n.hackDifficulty):(t.log("getServerSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerBaseSecurityLevel:function(e){a("getServerBaseSecurityLevel",Object(r.c)("getServerBaseSecurityLevel")),t.log("getServerBaseSecurityLevel",()=>"getServerBaseSecurityLevel is deprecated because it's not useful.");const n=X(e,"getServerBaseSecurityLevel");return n instanceof v.a?te(n,"getServerBaseSecurityLevel")?1:(t.log("getServerBaseSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.baseDifficulty)} for '${n.hostname}'`),n.baseDifficulty):(t.log("getServerBaseSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerMinSecurityLevel:function(e){a("getServerMinSecurityLevel",Object(r.c)("getServerMinSecurityLevel"));const n=X(e,"getServerMinSecurityLevel");return n instanceof v.a?te(n,"getServerMinSecurityLevel")?1:(t.log("getServerMinSecurityLevel",()=>`returned ${R.a.formatServerSecurity(n.minDifficulty)} for ${n.hostname}`),n.minDifficulty):(t.log("getServerMinSecurityLevel",()=>"Cannot be executed on this server."),1)},getServerRequiredHackingLevel:function(e){a("getServerRequiredHackingLevel",Object(r.c)("getServerRequiredHackingLevel"));const n=X(e,"getServerRequiredHackingLevel");return n instanceof v.a?te(n,"getServerRequiredHackingLevel")?1:(t.log("getServerRequiredHackingLevel",()=>`returned ${R.a.formatSkill(n.requiredHackingSkill)} for '${n.hostname}'`),n.requiredHackingSkill):(t.log("getServerRequiredHackingLevel",()=>"Cannot be executed on this server."),1)},getServerMaxMoney:function(e){a("getServerMaxMoney",Object(r.c)("getServerMaxMoney"));const n=X(e,"getServerMaxMoney");return n instanceof v.a?te(n,"getServerMaxMoney")?0:(t.log("getServerMaxMoney",()=>`returned ${R.a.formatMoney(n.moneyMax)} for '${n.hostname}'`),n.moneyMax):(t.log("getServerMaxMoney",()=>"Cannot be executed on this server."),0)},getServerGrowth:function(e){a("getServerGrowth",Object(r.c)("getServerGrowth"));const n=X(e,"getServerGrowth");return n instanceof v.a?te(n,"getServerGrowth")?1:(t.log("getServerGrowth",()=>`returned ${n.serverGrowth} for '${n.hostname}'`),n.serverGrowth):(t.log("getServerGrowth",()=>"Cannot be executed on this server."),1)},getServerNumPortsRequired:function(e){a("getServerNumPortsRequired",Object(r.c)("getServerNumPortsRequired"));const n=X(e,"getServerNumPortsRequired");return n instanceof v.a?te(n,"getServerNumPortsRequired")?5:(t.log("getServerNumPortsRequired",()=>`returned ${n.numOpenPortsRequired} for '${n.hostname}'`),n.numOpenPortsRequired):(t.log("getServerNumPortsRequired",()=>"Cannot be executed on this server."),5)},getServerRam:function(e){a("getServerRam",Object(r.c)("getServerRam")),t.log("getServerRam",()=>"getServerRam is deprecated in favor of getServerMaxRam / getServerUsedRam");const n=X(e,"getServerRam");return t.log("getServerRam",()=>`returned [${R.a.formatRAM(n.maxRam)}, ${R.a.formatRAM(n.ramUsed)}]`),[n.maxRam,n.ramUsed]},getServerMaxRam:function(e){a("getServerMaxRam",Object(r.c)("getServerMaxRam"));const n=X(e,"getServerMaxRam");return t.log("getServerMaxRam",()=>"returned "+R.a.formatRAM(n.maxRam)),n.maxRam},getServerUsedRam:function(e){a("getServerUsedRam",Object(r.c)("getServerUsedRam"));const n=X(e,"getServerUsedRam");return t.log("getServerUsedRam",()=>"returned "+R.a.formatRAM(n.ramUsed)),n.ramUsed},serverExists:function(e){return a("serverExists",Object(r.c)("serverExists")),null!==Object(b.d)(e)},fileExists:function(e,n=t.hostname){if(a("fileExists",Object(r.c)("fileExists")),void 0===e)throw ae("fileExists","Usage: fileExists(scriptname, [server])");const i=X(n,"fileExists");for(let t=0;t`Invalid argument: ram='${e}'`),1/0):n},purchaseServer:function(e,n){a("purchaseServer",Object(r.c)("purchaseServer"));let i=String(e);if(i=i.replace(/\s+/g,""),""==i)return t.log("purchaseServer",()=>`Invalid argument: hostname='${i}'`),"";if(h.a.purchasedServers.length>=Object(k.b)())return t.log("purchaseServer",()=>`You have reached the maximum limit of ${Object(k.b)()} servers. You cannot purchase any more.`),"";const o=Object(k.a)(n);if(o===1/0)return t.log("purchaseServer",()=>`Invalid argument: ram='${n}'`),"";if(h.a.money"Not enough money to purchase server. Need "+R.a.formatMoney(o)),"";const s=Object(E.f)({ip:Object(b.e)(),hostname:i,organizationName:"",isConnectedTo:!1,adminRights:!0,purchasedByPlayer:!0,maxRam:n});Object(b.a)(s),h.a.purchasedServers.push(s.hostname);const l=h.a.getHomeComputer();return l.serversOnNetwork.push(s.hostname),s.serversOnNetwork.push(l.hostname),h.a.loseMoney(o,"servers"),t.log("purchaseServer",()=>`Purchased new server with hostname '${s.hostname}' for ${R.a.formatMoney(o)}`),s.hostname},deleteServer:function(e){a("deleteServer",Object(r.c)("deleteServer"));let n=String(e);n=n.replace(/\s\s+/g,"");const i=Object(b.d)(n);if(!(i instanceof v.a))return t.log("deleteServer",()=>`Invalid argument: hostname='${n}'`),!1;if(!i.purchasedByPlayer||"home"===i.hostname)return t.log("deleteServer",()=>"Cannot delete non-purchased server."),!1;const o=i.hostname;if(i.isConnectedTo)return t.log("deleteServer",()=>"You are currently connected to the server you are trying to delete."),!1;if(o===t.hostname)return t.log("deleteServer",()=>"Cannot delete the server this script is running on."),!1;if(i.runningScripts.length>0)return t.log("deleteServer",()=>`Cannot delete server '${o}' because it still has scripts running.`),!1;let s=!1;for(let e=0;e`Could not identify server ${o} as a purchased server. This is a bug. Report to dev.`),!1;Object(b.b)(o),s=!1;const l=h.a.getHomeComputer();for(let e=0;e"Deleted server '"+n),!0;return t.log("deleteServer",()=>`Could not find server ${o} as a purchased server. This is a bug. Report to dev.`),!1},getPurchasedServers:function(){a("getPurchasedServers",Object(r.c)("getPurchasedServers"));const e=[];return h.a.purchasedServers.forEach((function(t){e.push(t)})),e},writePort:function(e,t=""){if("string"!=typeof t&&"number"!=typeof t)throw ae("writePort","Trying to write invalid data to a port: only strings and numbers are valid.");if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("writePort",`Trying to write to invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const a=x.a[e-1];if(null==a||!(a instanceof Object))throw ae("writePort",`Could not find port: ${e}. This is a bug. Report to dev.`);return Promise.resolve(a.write(t))},write:function(e,n="",i="a"){if(a("write",Object(r.c)("write")),Object(I.a)(e)){let a=e;if(!Object(S.h)(a))throw ae("write","Invalid filepath: "+a);0===a.lastIndexOf("/")&&(a=Object(S.i)(a));try{n=String(n)}catch(e){throw ae("write",`Invalid data (${e}). Data being written must be convertible to a string`)}const r=t.getServer();if(null==r)throw ae("write","Error getting Server. This is a bug. Report to dev.");if(Object(g.a)(a)){let e=t.getScriptOnServer(a,r);return null==e?(e=new d.a(a,n,r.hostname,r.scripts),r.scripts.push(e),e.updateRamUsage(r.scripts)):("w"===i?e.code=n:e.code+=n,e.updateRamUsage(r.scripts))}{const e=Object(C.c)(a,r);if(null==e)return Object(C.b)(a,n,r),Promise.resolve();"w"===i?e.write(n):e.append(n)}return Promise.resolve()}throw ae("write","Invalid argument: "+e)},tryWritePort:function(e,t=""){if(a("tryWritePort",Object(r.c)("tryWritePort")),isNaN(e))throw ae("tryWritePort","Invalid argument: "+e);{if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("tryWritePort",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const a=x.a[e-1];if(null==a||!(a instanceof Object))throw ae("tryWritePort",`Could not find port: ${e}. This is a bug. Report to dev.`);return Promise.resolve(a.tryWrite(t))}},readPort:function(e){if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("readPort",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("readPort",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.read()},read:function(e){if(a("read",Object(r.c)("read")),Object(I.a)(e)){const a=e,n=Object(b.d)(t.hostname);if(null==n)throw ae("read","Error getting Server. This is a bug. Report to dev.");if(Object(g.a)(a)){const e=t.getScriptOnServer(a,n);return null==e?"":e.code}{const e=Object(C.c)(a,n);return null!==e?e.text:""}}throw ae("read","Invalid argument: "+e)},peek:function(e){if(a("peek",Object(r.c)("peek")),isNaN(e))throw ae("peek",`Invalid argument. Must be a port number between 1 and ${s.a.NumNetscriptPorts}, is ${e}`);if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("peek",`Invalid argument. Must be a port number between 1 and ${s.a.NumNetscriptPorts}, is ${e}`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("peek",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.peek()},clear:function(e){if(a("clear",Object(r.c)("clear")),!Object(I.a)(e))throw ae("clear","Invalid argument: "+e);{const a=e,n=Object(b.d)(t.hostname);if(null==n)throw ae("clear","Error getting Server. This is a bug. Report to dev.");const r=Object(C.c)(a,n);null!=r&&r.write("")}return 0},clearPort:function(e){if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("clear",`Trying to clear invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("clear",`Could not find port: ${e}. This is a bug. Report to dev.`);return t.clear()},getPortHandle:function(e){if(a("getPortHandle",Object(r.c)("getPortHandle")),isNaN(e))throw ae("getPortHandle",`Invalid port: ${e} Must be an integer between 1 and ${s.a.NumNetscriptPorts}.`);if((e=Math.round(e))<1||e>s.a.NumNetscriptPorts)throw ae("getPortHandle",`Invalid port: ${e}. Only ports 1-${s.a.NumNetscriptPorts} are valid.`);const t=x.a[e-1];if(null==t||!(t instanceof Object))throw ae("getPortHandle",`Could not find port: ${e}. This is a bug. Report to dev.`);return t},rm:function(e,n){a("rm",Object(r.c)("rm")),null!=n&&""!==n||(n=t.hostname);const i=X(n,"rm").removeFile(e);return i.res||t.log("rm",()=>i.msg+""),i.res},scriptRunning:function(e,t){a("scriptRunning",Object(r.c)("scriptRunning"));const n=X(t,"scriptRunning");for(let t=0;t"invalid for this kind of server"),1/0)},getGrowTime:function(e){a("getGrowTime",Object(r.c)("getGrowTime"));const n=X(e,"getGrowTime");return n instanceof v.a?te(n,"getGrowTime")?1/0:1e3*Object(l.a)(n,h.a):(t.log("getGrowTime",()=>"invalid for this kind of server"),1/0)},getWeakenTime:function(e){a("getWeakenTime",Object(r.c)("getWeakenTime"));const n=X(e,"getWeakenTime");return n instanceof v.a?te(n,"getWeakenTime")?1/0:1e3*Object(l.f)(n,h.a):(t.log("getWeakenTime",()=>"invalid for this kind of server"),1/0)},getScriptIncome:function(e,n,...i){if(a("getScriptIncome",Object(r.c)("getScriptIncome")),0===arguments.length){const e=[];let t=0;for(const e of M.a.values())t+=e.scriptRef.onlineMoneyMade/e.scriptRef.onlineRunningTime;return e.push(t),e.push(h.a.scriptProdSinceLastAug/(h.a.playtimeSinceLastAug/1e3)),e}{const a=X(n,"getScriptIncome"),r=Object(f.a)(e,i,a);return null==r?(t.log("getScriptIncome",()=>`No such script '${e}' on '${a.hostname}' with args: ${Object(N.a)(i)}`),-1):r.onlineMoneyMade/r.onlineRunningTime}},getScriptExpGain:function(e,n,...i){if(a("getScriptExpGain",Object(r.c)("getScriptExpGain")),0===arguments.length){let e=0;for(const t of M.a.values())e+=t.scriptRef.onlineExpGained/t.scriptRef.onlineRunningTime;return e}{const a=X(n,"getScriptExpGain"),r=Object(f.a)(e,i,a);return null==r?(t.log("getScriptExpGain",()=>`No such script '${e}' on '${a.hostname}' with args: ${Object(N.a)(i)}`),-1):r.onlineExpGained/r.onlineRunningTime}},nFormat:function(e,t){return isNaN(e)||isNaN(parseFloat(e))||"string"!=typeof t?"":R.a.format(parseFloat(e),t)},tFormat:function(e,t=!1){return Object(A.b)(e,t)},getTimeSinceLastAug:function(){return a("getTimeSinceLastAug",Object(r.c)("getTimeSinceLastAug")),h.a.playtimeSinceLastAug},alert:function(e){Object($.a)(e)},toast:function(e,t="success"){if(!["success","info","warning","error"].includes(t))throw new Error('variant must be one of "success", "info", "warning", or "error"');Y.b.emit(e,t)},prompt:function(e){return Object(I.a)(e)||(e=JSON.stringify(e)),new Promise((function(t){y.a.emit({txt:e,resolve:t})}))},wget:async function(a,n,r=t.hostname){if(!Object(g.a)(n)&&!n.endsWith(".txt"))return t.log("wget",()=>`Invalid target file: '${n}'. Must be a script or text file.`),Promise.resolve(!1);const i=X(r,"wget");return new Promise((function(o){e.get(a,(function(e){let a;return a=Object(g.a)(n)?i.writeToScriptFile(n,e):i.writeToTextFile(n,e),a.success?a.overwritten?(t.log("wget",()=>`Successfully retrieved content and overwrote '${n}' on '${r}'`),o(!0)):(t.log("wget",()=>`Successfully retrieved content to new file '${n}' on '${r}'`),o(!0)):(t.log("wget",()=>"Failed."),o(!1))}),"text").fail((function(e){return t.log("wget",()=>JSON.stringify(e)),o(!1)}))}))},getFavorToDonate:function(){return a("getFavorToDonate",Object(r.c)("getFavorToDonate")),Math.floor(s.a.BaseFavorToDonate*o.a.RepToDonateToFaction)},getOwnedSourceFiles:function(){ie.updateDynamicRam("getOwnedSourceFiles",Object(r.c)("getOwnedSourceFiles"));const e=[];for(let t=0;t[e,!0]));return fe}}).call(this,a(665))},function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return s}));var n=a(136),r=a(95);function i(e,t){const a=e.organizationName;let i=null;if("string"==typeof a&&""!==a&&(i=r.a[a]),!(i instanceof n.a))return;const o=t/e.moneyMax;Math.random()0?t.requiredHacking+r:0,o=t.requiredStrength>0?t.requiredStrength+r:0,s=t.requiredDefense>0?t.requiredDefense+r:0,l=t.requiredDexterity>0?t.requiredDexterity+r:0,c=t.requiredDexterity>0?t.requiredDexterity+r:0,u=t.requiredCharisma>0?t.requiredCharisma+r:0,m=t.requiredReputation;return a?(n="Requires:
",n+=i.toString()+" hacking
",n+=o.toString()+" strength
",n+=s.toString()+" defense
",n+=l.toString()+" dexterity
",n+=c.toString()+" agility
",n+=u.toString()+" charisma
",n+=m.toString()+" reputation"):(n="(Requires ",i>0&&(n+=i+" hacking, "),o>0&&(n+=o+" strength, "),s>0&&(n+=s+" defense, "),l>0&&(n+=l+" dexterity, "),c>0&&(n+=c+" agility, "),u>0&&(n+=u+" charisma, "),m>1&&(n+=m+" reputation, "),n=n.substring(0,n.length-2),n+=")"),n}a.d(t,"a",(function(){return n}))},,function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new class{constructor(){this.positions=new Map}saveCursor(e,t){this.positions.set(e,t)}getCursor(e){const t=this.positions.get(e);return t||{row:-1,column:-1}}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),i=a(1108),o=a(1),s=a(10);function l(e){const[t,a]=Object(n.useState)(0),[l,c]=Object(n.useState)(!1);return r.a.createElement(r.a.Fragment,null,e.lines.slice(0,t).map((e,t)=>r.a.createElement(o.a,{key:t},e)),e.lines.length>t&&r.a.createElement(i.a,{key:t,text:e.lines[t],onDone:function(){const n=t+1;a(n),n>=e.lines.length&&(e.onDone&&e.auto&&e.onDone(),c(!0))}}),!e.auto&&e.onDone&&l&&r.a.createElement(s.a,{onClick:e.onDone},"Continue ..."))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return m})),a.d(t,"a",(function(){return h})),a.d(t,"c",(function(){return p}));var n=a(0),r=a.n(n),i=a(1),o=a(127),s=a(10),l=a(13),c=a(310),u=a(182);let m=!1;function h(){m=!0}function p({router:e}){return l.a.AutosaveInterval=0,Object(c.b)().then(e=>{Object(u.a)("RECOVERY.json",e)}),r.a.createElement(r.a.Fragment,null,r.a.createElement(i.a,{variant:"h3"},"RECOVERY MODE ACTIVATED"),r.a.createElement(i.a,null,"There was an error loading your save file and the game went into recovery mode. In this mode saving is disabled and the game will automatically export your save file (to prevent corruption)."),r.a.createElement(i.a,null,"At this point it is recommended to alert a developer."),r.a.createElement(o.a,{href:"https://github.com/danielyxie/bitburner/issues/new",target:"_blank"},r.a.createElement(i.a,null,"File an issue on github")),r.a.createElement(o.a,{href:"https://www.reddit.com/r/Bitburner/",target:"_blank"},r.a.createElement(i.a,null,"Make a reddit post")),r.a.createElement(o.a,{href:"https://discord.gg/TFc3hKD",target:"_blank"},r.a.createElement(i.a,null,"Post in the #bug-report channel on Discord.")),r.a.createElement(i.a,null,"Please include your save file."),r.a.createElement("br",null),r.a.createElement("br",null),r.a.createElement(i.a,null,"You can disable recovery mode now. But chances are the game will not work correctly."),r.a.createElement(s.a,{onClick:function(){m=!1,e.toTerminal()}},"DISABLE RECOVERY MODE"))}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(31);function r(e){const t=Math.max(Math.min(e,255),0);return Object(n.a)(0,t)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(31);const r={Tracking:()=>Object(n.a)(5,75)/10,"Bounty Hunter":()=>Object(n.a)(5,75)/10,Retirement:()=>Object(n.a)(5,75)/10,Investigation:()=>Object(n.a)(10,40)/10,"Undercover Operation":()=>Object(n.a)(10,40)/10,"Sting Operation":()=>Object(n.a)(3,40)/10,Raid:()=>Object(n.a)(2,40)/10,"Stealth Retirement Operation":()=>Object(n.a)(1,20)/10,Assassination:()=>Object(n.a)(1,20)/10}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(137);function r(e){const t={},a=Object.keys(n.a);for(let n=0;n=this.cards.length)throw new Error("Tried to remove invalid card from Hand by index: "+e);return new n([...this.cards.slice().splice(e,1)])}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(1),i=a(26),o=a(10);function s(e){return n.createElement(i.a,{title:null!=e.tooltip?n.createElement(r.a,null,e.tooltip):""},n.createElement(o.a,{onClick:e.onClick},e.text))}},,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(99),r=a(284),i=a(112),o=a(241),s=a(91),l=a(285),c=a(286);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class m{constructor(e={hostname:"",ip:Object(l.a)()}){u(this,"contracts",[]),u(this,"cpuCores",1),u(this,"ftpPortOpen",!1),u(this,"hasAdminRights",!1),u(this,"hostname",""),u(this,"httpPortOpen",!1),u(this,"ip",""),u(this,"isConnectedTo",!1),u(this,"maxRam",0),u(this,"messages",[]),u(this,"organizationName",""),u(this,"programs",[]),u(this,"ramUsed",0),u(this,"runningScripts",[]),u(this,"scripts",[]),u(this,"serversOnNetwork",[]),u(this,"smtpPortOpen",!1),u(this,"sqlPortOpen",!1),u(this,"sshPortOpen",!1),u(this,"textFiles",[]),u(this,"purchasedByPlayer",!1),this.ip=e.ip?e.ip:Object(l.a)(),this.hostname=e.hostname,this.organizationName=null!=e.organizationName?e.organizationName:"",this.isConnectedTo=null!=e.isConnectedTo&&e.isConnectedTo,this.hasAdminRights=null!=e.adminRights&&e.adminRights}addContract(e){this.contracts.push(e)}getContract(e){for(const t of this.contracts)if(t.fn===e)return t;return null}getRunningScript(e,t){for(const a of this.runningScripts)if(a.filename===e&&Object(c.a)(a.args,t))return a;return null}getScript(e){for(let t=0;tt.fn!==e.fn):this.contracts=this.contracts.filter(t=>t.fn!==e)}removeFile(e){if(e.endsWith(".exe")||null!=e.match(/^.+\.exe-\d+(?:\.\d*)?%-INC$/)){for(let t=0;t{p.subscribe(e=>t(e))}),null===e)return r.a.createElement(r.a.Fragment,null);function d(){null!==e&&(e.onClose(),t(null))}const f=o.d[e.c.type],g=[];for(const[t,a]of f.desc(e.c.data).split("\n").entries())g.push(r.a.createElement("span",{key:t,dangerouslySetInnerHTML:{__html:a+"
"}}));return r.a.createElement(l.a,{open:null!==e,onClose:d},r.a.createElement(s.a,{variant:"h4",value:e.c.type}),r.a.createElement(u.a,null,"You are attempting to solve a Coding Contract. You have ",e.c.getMaxNumTries()-e.c.tries," tries remaining, after which the contract will self-destruct."),r.a.createElement("br",null),r.a.createElement(u.a,null,g),r.a.createElement("br",null),r.a.createElement(m.a,{autoFocus:!0,placeholder:"Enter Solution here",value:a,onChange:function(e){c(e.target.value)},onKeyDown:function(t){if(null===e)return;const n=t.target.value;t.keyCode===i.a.ENTER&&""!==n&&(t.preventDefault(),e.onAttempt(a),d())},InputProps:{endAdornment:r.a.createElement(h.a,{onClick:()=>{e.onAttempt(a),d()}},"Solve")}}))}},,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(9),r=a(59),i=a(92);const o=[{hackDifficulty:99,hostname:"ecorp",moneyAvailable:{max:7e10,min:3e10},networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.AevumECorp,requiredHackingSkill:{max:1400,min:1050},serverGrowth:99,specialName:n.a.AevumECorp},{hackDifficulty:99,hostname:"megacorp",moneyAvailable:{max:6e10,min:4e10},networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.Sector12MegaCorp,requiredHackingSkill:{max:1350,min:1100},serverGrowth:99,specialName:n.a.Sector12MegaCorp},{hackDifficulty:{max:88,min:72},hostname:"b-and-a",moneyAvailable:{max:3e10,min:15e9},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.AevumBachmanAndAssociates,requiredHackingSkill:{max:1150,min:900},serverGrowth:{max:80,min:60},specialName:n.a.AevumBachmanAndAssociates},{hackDifficulty:{max:97,min:88},hostname:"blade",literature:[r.a.BeyondMan],maxRamExponent:{max:9,min:5},moneyAvailable:{max:4e10,min:1e10},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.Sector12BladeIndustries,requiredHackingSkill:{max:1200,min:900},serverGrowth:{max:85,min:55},specialName:n.a.Sector12BladeIndustries},{hackDifficulty:99,hostname:"nwo",literature:[r.a.TheHiddenWorld],moneyAvailable:{max:4e10,min:2e10},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.VolhavenNWO,requiredHackingSkill:{max:1300,min:950},serverGrowth:{max:95,min:65},specialName:n.a.VolhavenNWO},{hackDifficulty:{max:65,min:45},hostname:"clarkinc",literature:[r.a.BeyondMan,r.a.CostOfImmortality],moneyAvailable:{max:25e9,min:15e9},networkLayer:14,numOpenPortsRequired:5,organizationName:n.a.AevumClarkeIncorporated,requiredHackingSkill:{max:1250,min:950},serverGrowth:{max:75,min:45},specialName:n.a.AevumClarkeIncorporated},{hackDifficulty:{max:99,min:90},hostname:"omnitek",literature:[r.a.CodedIntelligence,r.a.HistoryOfSynthoids],maxRamExponent:{max:9,min:7},moneyAvailable:{max:22e9,min:13e9},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.VolhavenOmniTekIncorporated,requiredHackingSkill:{max:1100,min:900},serverGrowth:{max:99,min:95},specialName:n.a.VolhavenOmniTekIncorporated},{hackDifficulty:{max:75,min:55},hostname:"4sigma",moneyAvailable:{max:25e9,min:15e9},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.Sector12FourSigma,requiredHackingSkill:{max:1250,min:900},serverGrowth:{max:99,min:75},specialName:n.a.Sector12FourSigma},{hackDifficulty:{max:99,min:95},hostname:"kuai-gong",moneyAvailable:{max:3e10,min:2e10},networkLayer:13,numOpenPortsRequired:5,organizationName:n.a.ChongqingKuaiGongInternational,requiredHackingSkill:{max:1300,min:950},serverGrowth:{max:99,min:90},specialName:n.a.ChongqingKuaiGongInternational},{hackDifficulty:{max:97,min:83},hostname:"fulcrumtech",literature:[r.a.SimulatedReality],maxRamExponent:{max:11,min:7},moneyAvailable:{max:18e8,min:14e8},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.AevumFulcrumTechnologies,requiredHackingSkill:{max:1250,min:950},serverGrowth:{max:99,min:80},specialName:n.a.AevumFulcrumTechnologies},{hackDifficulty:99,hostname:"fulcrumassets",moneyAvailable:1e6,networkLayer:15,numOpenPortsRequired:5,organizationName:n.a.AevumFulcrumTechnologies,requiredHackingSkill:{max:1600,min:1100},serverGrowth:1,specialName:i.a.FulcrumSecretTechnologies},{hackDifficulty:{max:92,min:78},hostname:"stormtech",moneyAvailable:{max:12e8,min:1e9},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.IshimaStormTechnologies,requiredHackingSkill:{max:1075,min:875},serverGrowth:{max:92,min:68},specialName:n.a.IshimaStormTechnologies},{hackDifficulty:{max:96,min:84},hostname:"defcomm",moneyAvailable:{max:95e7,min:8e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.NewTokyoDefComm,requiredHackingSkill:{max:1050,min:850},serverGrowth:{max:73,min:47},specialName:n.a.NewTokyoDefComm},{hackDifficulty:{max:90,min:70},hostname:"infocomm",moneyAvailable:{max:9e8,min:6e8},networkLayer:10,numOpenPortsRequired:5,organizationName:"InfoComm",requiredHackingSkill:{max:950,min:875},serverGrowth:{max:75,min:35}},{hackDifficulty:{max:95,min:85},hostname:"helios",literature:[r.a.BeyondMan],maxRamExponent:{max:8,min:5},moneyAvailable:{max:75e7,min:55e7},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.VolhavenHeliosLabs,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:80,min:70},specialName:n.a.VolhavenHeliosLabs},{hackDifficulty:{max:90,min:80},hostname:"vitalife",literature:[r.a.AGreenTomorrow],maxRamExponent:{max:7,min:4},moneyAvailable:{max:8e8,min:7e8},networkLayer:12,numOpenPortsRequired:5,organizationName:n.a.NewTokyoVitaLife,requiredHackingSkill:{max:900,min:775},serverGrowth:{max:80,min:60},specialName:n.a.NewTokyoVitaLife},{hackDifficulty:{max:95,min:85},hostname:"icarus",moneyAvailable:{max:1e9,min:9e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.Sector12IcarusMicrosystems,requiredHackingSkill:{max:925,min:850},serverGrowth:{max:95,min:85},specialName:n.a.Sector12IcarusMicrosystems},{hackDifficulty:{max:90,min:80},hostname:"univ-energy",maxRamExponent:{max:7,min:4},moneyAvailable:{max:12e8,min:11e8},networkLayer:9,numOpenPortsRequired:4,organizationName:n.a.Sector12UniversalEnergy,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:90,min:80},specialName:n.a.Sector12UniversalEnergy},{hackDifficulty:{max:80,min:70},hostname:"titan-labs",literature:[r.a.CodedIntelligence],maxRamExponent:{max:7,min:4},moneyAvailable:{max:9e8,min:75e7},networkLayer:11,numOpenPortsRequired:5,organizationName:"Titan Laboratories",requiredHackingSkill:{max:875,min:800},serverGrowth:{max:80,min:60}},{hackDifficulty:{max:75,min:65},hostname:"microdyne",literature:[r.a.SyntheticMuscles],maxRamExponent:{max:6,min:4},moneyAvailable:{max:7e8,min:5e8},networkLayer:11,numOpenPortsRequired:5,organizationName:"Microdyne Technologies",requiredHackingSkill:{max:875,min:800},serverGrowth:{max:90,min:70}},{hackDifficulty:{max:80,min:70},hostname:"taiyang-digital",literature:[r.a.AGreenTomorrow,r.a.BrighterThanTheSun],moneyAvailable:{max:9e8,min:8e8},networkLayer:10,numOpenPortsRequired:5,organizationName:"Taiyang Digital",requiredHackingSkill:{max:950,min:850},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:65,min:55},hostname:"galactic-cyber",moneyAvailable:{max:85e7,min:75e7},networkLayer:7,numOpenPortsRequired:5,organizationName:n.a.AevumGalacticCybersystems,requiredHackingSkill:{max:875,min:825},serverGrowth:{max:90,min:70},specialName:n.a.AevumGalacticCybersystems},{hackDifficulty:{max:90,min:80},hostname:"aerocorp",literature:[r.a.ManAndMachine],moneyAvailable:{max:12e8,min:1e9},networkLayer:7,numOpenPortsRequired:5,organizationName:n.a.AevumAeroCorp,requiredHackingSkill:{max:925,min:850},serverGrowth:{max:65,min:55},specialName:n.a.AevumAeroCorp},{hackDifficulty:{max:95,min:85},hostname:"omnia",literature:[r.a.HistoryOfSynthoids],maxRamExponent:{max:6,min:4},moneyAvailable:{max:1e9,min:9e8},networkLayer:8,numOpenPortsRequired:5,organizationName:n.a.VolhavenOmniaCybersystems,requiredHackingSkill:{max:950,min:850},serverGrowth:{max:70,min:60},specialName:n.a.VolhavenOmniaCybersystems},{hackDifficulty:{max:65,min:55},hostname:"zb-def",literature:[r.a.SyntheticMuscles],moneyAvailable:{max:11e8,min:9e8},networkLayer:10,numOpenPortsRequired:4,organizationName:"ZB Defense Industries",requiredHackingSkill:{max:825,min:775},serverGrowth:{max:75,min:65}},{hackDifficulty:{max:80,min:60},hostname:"applied-energetics",moneyAvailable:{max:1e9,min:7e8},networkLayer:11,numOpenPortsRequired:4,organizationName:"Applied Energetics",requiredHackingSkill:{max:850,min:775},serverGrowth:{max:75,min:70}},{hackDifficulty:{max:80,min:70},hostname:"solaris",literature:[r.a.AGreenTomorrow,r.a.TheFailedFrontier],maxRamExponent:{max:7,min:4},moneyAvailable:{max:9e8,min:7e8},networkLayer:9,numOpenPortsRequired:5,organizationName:n.a.ChongqingSolarisSpaceSystems,requiredHackingSkill:{max:850,min:750},serverGrowth:{max:80,min:70},specialName:n.a.ChongqingSolarisSpaceSystems},{hackDifficulty:{max:85,min:75},hostname:"deltaone",moneyAvailable:{max:17e8,min:13e8},networkLayer:8,numOpenPortsRequired:5,organizationName:n.a.Sector12DeltaOne,requiredHackingSkill:{max:900,min:800},serverGrowth:{max:70,min:50},specialName:n.a.Sector12DeltaOne},{hackDifficulty:{max:85,min:75},hostname:"global-pharm",literature:[r.a.AGreenTomorrow],maxRamExponent:{max:6,min:3},moneyAvailable:{max:175e7,min:15e8},networkLayer:7,numOpenPortsRequired:4,organizationName:n.a.NewTokyoGlobalPharmaceuticals,requiredHackingSkill:{max:850,min:750},serverGrowth:{max:90,min:80},specialName:n.a.NewTokyoGlobalPharmaceuticals},{hackDifficulty:{max:80,min:60},hostname:"nova-med",moneyAvailable:{max:125e7,min:11e8},networkLayer:10,numOpenPortsRequired:4,organizationName:n.a.IshimaNovaMedical,requiredHackingSkill:{max:850,min:775},serverGrowth:{max:85,min:65},specialName:n.a.IshimaNovaMedical},{hackDifficulty:{max:90,min:70},hostname:"zeus-med",moneyAvailable:{max:15e8,min:13e8},networkLayer:9,numOpenPortsRequired:5,organizationName:"Zeus Medical",requiredHackingSkill:{max:850,min:800},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:80,min:70},hostname:"unitalife",maxRamExponent:{max:6,min:4},moneyAvailable:{max:11e8,min:1e9},networkLayer:8,numOpenPortsRequired:4,organizationName:"UnitaLife Group",requiredHackingSkill:{max:825,min:775},serverGrowth:{max:80,min:70}},{hackDifficulty:{max:80,min:60},hostname:"lexo-corp",maxRamExponent:{max:7,min:4},moneyAvailable:{max:8e8,min:7e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.VolhavenLexoCorp,requiredHackingSkill:{max:750,min:650},serverGrowth:{max:65,min:55},specialName:n.a.VolhavenLexoCorp},{hackDifficulty:{max:60,min:40},hostname:"rho-construction",maxRamExponent:{max:6,min:4},moneyAvailable:{max:7e8,min:5e8},networkLayer:6,numOpenPortsRequired:3,organizationName:n.a.AevumRhoConstruction,requiredHackingSkill:{max:525,min:475},serverGrowth:{max:60,min:40},specialName:n.a.AevumRhoConstruction},{hackDifficulty:{max:70,min:50},hostname:"alpha-ent",literature:[r.a.Sector12Crime],maxRamExponent:{max:7,min:4},moneyAvailable:{max:75e7,min:6e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.Sector12AlphaEnterprises,requiredHackingSkill:{max:600,min:500},serverGrowth:{max:60,min:50},specialName:n.a.Sector12AlphaEnterprises},{hackDifficulty:{max:80,min:70},hostname:"aevum-police",maxRamExponent:{max:6,min:4},moneyAvailable:{max:4e8,min:2e8},networkLayer:6,numOpenPortsRequired:4,organizationName:n.a.AevumPolice,requiredHackingSkill:{max:450,min:400},serverGrowth:{max:50,min:30},specialName:n.a.AevumPolice},{hackDifficulty:{max:55,min:45},hostname:"rothman-uni",literature:[r.a.SecretSocieties,r.a.TheFailedFrontier,r.a.TensionsInTechRace],maxRamExponent:{max:7,min:4},moneyAvailable:{max:25e7,min:175e6},networkLayer:5,numOpenPortsRequired:3,organizationName:n.a.Sector12RothmanUniversity,requiredHackingSkill:{max:430,min:370},serverGrowth:{max:45,min:35},specialName:n.a.Sector12RothmanUniversity},{hackDifficulty:{max:85,min:65},hostname:"zb-institute",maxRamExponent:{max:7,min:4},moneyAvailable:{max:11e8,min:8e8},networkLayer:5,numOpenPortsRequired:5,organizationName:n.a.VolhavenZBInstituteOfTechnology,requiredHackingSkill:{max:775,min:725},serverGrowth:{max:85,min:75},specialName:n.a.VolhavenZBInstituteOfTechnology},{hackDifficulty:{max:65,min:45},hostname:"summit-uni",literature:[r.a.SecretSocieties,r.a.TheFailedFrontier,r.a.SyntheticMuscles],maxRamExponent:{max:6,min:4},moneyAvailable:{max:35e7,min:2e8},networkLayer:5,numOpenPortsRequired:3,organizationName:n.a.AevumSummitUniversity,requiredHackingSkill:{max:475,min:425},serverGrowth:{max:60,min:40},specialName:n.a.AevumSummitUniversity},{hackDifficulty:{max:80,min:60},hostname:"syscore",moneyAvailable:{max:6e8,min:4e8},networkLayer:5,numOpenPortsRequired:4,organizationName:n.a.VolhavenSysCoreSecurities,requiredHackingSkill:{max:650,min:550},serverGrowth:{max:70,min:60},specialName:n.a.VolhavenSysCoreSecurities},{hackDifficulty:{max:70,min:60},hostname:"catalyst",literature:[r.a.TensionsInTechRace],maxRamExponent:{max:7,min:4},moneyAvailable:{max:55e7,min:3e8},networkLayer:5,numOpenPortsRequired:3,organizationName:"Catalyst Ventures",requiredHackingSkill:{max:450,min:400},serverGrowth:{max:55,min:25}},{hackDifficulty:{max:45,min:35},hostname:"the-hub",maxRamExponent:{max:6,min:3},moneyAvailable:{max:2e8,min:15e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"The Hub",requiredHackingSkill:{max:325,min:275},serverGrowth:{max:55,min:45}},{hackDifficulty:{max:65,min:55},hostname:"comptek",literature:[r.a.ManAndMachine],moneyAvailable:{max:25e7,min:22e7},networkLayer:4,numOpenPortsRequired:3,organizationName:n.a.VolhavenCompuTek,requiredHackingSkill:{max:400,min:300},serverGrowth:{max:65,min:45},specialName:n.a.VolhavenCompuTek},{hackDifficulty:{max:80,min:60},hostname:"netlink",literature:[r.a.SimulatedReality],maxRamExponent:{max:7,min:4},moneyAvailable:275e6,networkLayer:4,numOpenPortsRequired:3,organizationName:n.a.AevumNetLinkTechnologies,requiredHackingSkill:{max:425,min:375},serverGrowth:{max:75,min:45},specialName:n.a.AevumNetLinkTechnologies},{hackDifficulty:{max:65,min:35},hostname:"johnson-ortho",moneyAvailable:{max:85e6,min:7e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"Johnson Orthopedics",requiredHackingSkill:{max:300,min:250},serverGrowth:{max:65,min:35}},{hackDifficulty:1,hostname:"n00dles",literature:[],maxRamExponent:2,moneyAvailable:7e4,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.NewTokyoNoodleBar,requiredHackingSkill:1,serverGrowth:3e3,specialName:n.a.NewTokyoNoodleBar},{hackDifficulty:10,hostname:"foodnstuff",literature:[r.a.Sector12Crime],maxRamExponent:4,moneyAvailable:2e6,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.Sector12FoodNStuff,requiredHackingSkill:1,serverGrowth:5,specialName:n.a.Sector12FoodNStuff},{hackDifficulty:10,hostname:"sigma-cosmetics",maxRamExponent:4,moneyAvailable:23e5,networkLayer:1,numOpenPortsRequired:0,organizationName:"Sigma Cosmetics",requiredHackingSkill:5,serverGrowth:10},{hackDifficulty:15,hostname:"joesguns",maxRamExponent:4,moneyAvailable:25e5,networkLayer:1,numOpenPortsRequired:0,organizationName:n.a.Sector12JoesGuns,requiredHackingSkill:10,serverGrowth:20,specialName:n.a.Sector12JoesGuns},{hackDifficulty:25,hostname:"zer0",maxRamExponent:5,moneyAvailable:75e5,networkLayer:2,numOpenPortsRequired:1,organizationName:"ZER0 Nightclub",requiredHackingSkill:75,serverGrowth:40},{hackDifficulty:20,hostname:"nectar-net",maxRamExponent:4,moneyAvailable:275e4,networkLayer:2,numOpenPortsRequired:0,organizationName:"Nectar Nightclub Network",requiredHackingSkill:20,serverGrowth:25},{hackDifficulty:25,hostname:"neo-net",literature:[r.a.TheHiddenWorld],maxRamExponent:5,moneyAvailable:5e6,networkLayer:3,numOpenPortsRequired:1,organizationName:"Neo Nightclub Network",requiredHackingSkill:50,serverGrowth:25},{hackDifficulty:30,hostname:"silver-helix",literature:[r.a.NewTriads],maxRamExponent:6,moneyAvailable:45e6,networkLayer:3,numOpenPortsRequired:2,organizationName:"Silver Helix",requiredHackingSkill:150,serverGrowth:30},{hackDifficulty:15,hostname:"hong-fang-tea",literature:[r.a.BrighterThanTheSun],maxRamExponent:4,moneyAvailable:3e6,networkLayer:1,numOpenPortsRequired:0,organizationName:"HongFang Teahouse",requiredHackingSkill:30,serverGrowth:20},{hackDifficulty:15,hostname:"harakiri-sushi",maxRamExponent:4,moneyAvailable:4e6,networkLayer:1,numOpenPortsRequired:0,organizationName:"HaraKiri Sushi Bar Network",requiredHackingSkill:40,serverGrowth:40},{hackDifficulty:20,hostname:"phantasy",maxRamExponent:5,moneyAvailable:24e6,networkLayer:3,numOpenPortsRequired:2,organizationName:"Phantasy Club",requiredHackingSkill:100,serverGrowth:35},{hackDifficulty:15,hostname:"max-hardware",maxRamExponent:5,moneyAvailable:1e7,networkLayer:2,numOpenPortsRequired:1,organizationName:"Max Hardware Store",requiredHackingSkill:80,serverGrowth:30},{hackDifficulty:{max:35,min:25},hostname:"omega-net",literature:[r.a.TheNewGod],maxRamExponent:5,moneyAvailable:{max:7e7,min:6e7},networkLayer:3,numOpenPortsRequired:2,organizationName:n.a.IshimaOmegaSoftware,requiredHackingSkill:{max:220,min:180},serverGrowth:{max:40,min:30},specialName:n.a.IshimaOmegaSoftware},{hackDifficulty:{max:45,min:35},hostname:"crush-fitness",moneyAvailable:{max:6e7,min:4e7},networkLayer:4,numOpenPortsRequired:2,organizationName:"Crush Fitness",requiredHackingSkill:{max:275,min:225},serverGrowth:{max:33,min:27},specialName:n.a.AevumCrushFitnessGym},{hackDifficulty:30,hostname:"iron-gym",maxRamExponent:5,moneyAvailable:2e7,networkLayer:1,numOpenPortsRequired:1,organizationName:"Iron Gym Network",requiredHackingSkill:100,serverGrowth:20,specialName:n.a.Sector12IronGym},{hackDifficulty:{max:55,min:45},hostname:"millenium-fitness",maxRamExponent:{max:8,min:4},moneyAvailable:25e7,networkLayer:6,numOpenPortsRequired:3,organizationName:"Millenium Fitness Network",requiredHackingSkill:{max:525,min:475},serverGrowth:{max:45,min:25},specialName:n.a.VolhavenMilleniumFitnessGym},{hackDifficulty:{max:65,min:55},hostname:"powerhouse-fitness",maxRamExponent:{max:6,min:4},moneyAvailable:9e8,networkLayer:14,numOpenPortsRequired:5,organizationName:"Powerhouse Fitness",requiredHackingSkill:{max:1100,min:950},serverGrowth:{max:60,min:50},specialName:n.a.Sector12PowerhouseGym},{hackDifficulty:{max:60,min:40},hostname:"snap-fitness",moneyAvailable:45e7,networkLayer:7,numOpenPortsRequired:4,organizationName:"Snap Fitness",requiredHackingSkill:{max:800,min:675},serverGrowth:{max:60,min:40},specialName:n.a.AevumSnapFitnessGym},{hackDifficulty:0,hostname:"run4theh111z",literature:[r.a.SimulatedReality,r.a.TheNewGod],maxRamExponent:{max:9,min:5},moneyAvailable:0,networkLayer:11,numOpenPortsRequired:4,organizationName:"The Runners",requiredHackingSkill:{max:550,min:505},serverGrowth:0,specialName:i.a.BitRunnersServer},{hackDifficulty:0,hostname:"I.I.I.I",literature:[r.a.DemocracyIsDead],maxRamExponent:{max:8,min:4},moneyAvailable:0,networkLayer:5,numOpenPortsRequired:3,organizationName:"I.I.I.I",requiredHackingSkill:{max:365,min:340},serverGrowth:0,specialName:i.a.TheBlackHandServer},{hackDifficulty:0,hostname:"avmnite-02h",literature:[r.a.DemocracyIsDead],maxRamExponent:{max:7,min:4},moneyAvailable:0,networkLayer:4,numOpenPortsRequired:2,organizationName:"NiteSec",requiredHackingSkill:{max:220,min:202},serverGrowth:0,specialName:i.a.NiteSecServer},{hackDifficulty:0,hostname:".",maxRamExponent:4,moneyAvailable:0,networkLayer:13,numOpenPortsRequired:4,organizationName:".",requiredHackingSkill:{max:550,min:505},serverGrowth:0,specialName:i.a.TheDarkArmyServer},{hackDifficulty:0,hostname:"CSEC",literature:[r.a.DemocracyIsDead],maxRamExponent:3,moneyAvailable:0,networkLayer:2,numOpenPortsRequired:1,organizationName:"CyberSec",requiredHackingSkill:{max:60,min:51},serverGrowth:0,specialName:i.a.CyberSecServer},{hackDifficulty:0,hostname:"The-Cave",literature:[r.a.AlphaOmega],moneyAvailable:0,networkLayer:15,numOpenPortsRequired:5,organizationName:"Helios",requiredHackingSkill:925,serverGrowth:0,specialName:i.a.DaedalusServer},{hackDifficulty:0,hostname:"w0r1d_d43m0n",moneyAvailable:0,numOpenPortsRequired:5,organizationName:"w0r1d_d43m0n",requiredHackingSkill:3e3,serverGrowth:0,specialName:i.a.WorldDaemon}]},function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n),i=a(41),o=a(29),s=a(118),l=a(1),c=a(10);const u=new s.a;function m(){const e=o.b.Router(),[t,a]=Object(n.useState)(!1);return Object(n.useEffect)(()=>u.subscribe(()=>a(!0)),[]),r.a.createElement(i.a,{open:t,onClose:()=>a(!1)},r.a.createElement(l.a,null,"WARNING: USING THIS PROGRAM WILL CAUSE YOU TO LOSE ALL OF YOUR PROGRESS ON THE CURRENT BITNODE.",r.a.createElement("br",null),r.a.createElement("br",null),"Do you want to travel to the BitNode Nexus? This allows you to reset the current BitNode and select a new one."),r.a.createElement("br",null),r.a.createElement("br",null),r.a.createElement(c.a,{onClick:function(){e.toBitVerse(!0,!1),a(!1)}},"Travel to the BitVerse"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a.n(n);class i{constructor(e,t,a,n,r,i,o,s){this.infoText=e,this.enemies=t,this.offerHackingMission=a,this.offerHackingWork=n,this.offerFieldWork=r,this.offerSecurityWork=i,this.augmentationPriceMult=1,this.augmentationRepRequirementMult=1,this.keep=s,this.special=o}offersWork(){return this.offerFieldWork||this.offerHackingMission||this.offerHackingWork||this.offerSecurityWork}}const o={Illuminati:new i(r.a.createElement(r.a.Fragment,null,"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,!1,!1),Daedalus:new i(r.a.createElement(r.a.Fragment,null,"Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth."),[],!0,!0,!0,!1,!1,!1),"The Covenant":new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"Only then can you discover immortality."),[],!0,!0,!0,!1,!1,!1),ECorp:new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),MegaCorp:new i(r.a.createElement(r.a.Fragment,null,"MegaCorp does what no other dares to do. We imagine. We create. We invent. We create what 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.",r.a.createElement("br",null),r.a.createElement("br",null),"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,!1,!0),"Bachman & Associates":new i(r.a.createElement(r.a.Fragment,null,"Where Law and Business meet - thats where we are.",r.a.createElement("br",null),r.a.createElement("br",null),"Legal Insight - Business Instinct - Innovative Experience."),[],!0,!0,!0,!0,!1,!0),"Blade Industries":new i(r.a.createElement(r.a.Fragment,null,"Augmentation is Salvation."),[],!0,!0,!0,!0,!1,!0),NWO:new i(r.a.createElement(r.a.Fragment,null,"Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given purpose and direction in life. That is why they created God. And that is why they 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,!1,!0),"Clarke Incorporated":new i(r.a.createElement(r.a.Fragment,null,"The Power of the Genome - Unlocked."),[],!0,!0,!0,!0,!1,!0),"OmniTek Incorporated":new i(r.a.createElement(r.a.Fragment,null,"Simply put, our mission is to design and build robots that make a difference."),[],!0,!0,!0,!0,!1,!0),"Four Sigma":new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),"KuaiGong International":new i(r.a.createElement(r.a.Fragment,null,"Dream big. Work hard. Make history."),[],!0,!0,!0,!0,!1,!0),"Fulcrum Secret Technologies":new i(r.a.createElement(r.a.Fragment,null,"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,!1,!0),BitRunners:new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"Those who run the bits, run the world."),[],!0,!0,!1,!1,!1,!1),"The Black Hand":new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"So much pain. So many lives. Their darkness must end."),[],!0,!0,!0,!1,!1,!1),NiteSec:new i(r.a.createElement(r.a.Fragment,null," __..__ ",r.a.createElement("br",null)," _.nITESECNIt. ",r.a.createElement("br",null)," .-'NITESECNITESEc. ",r.a.createElement("br",null)," .' NITESECNITESECn ",r.a.createElement("br",null)," / NITESECNITESEC; ",r.a.createElement("br",null)," : :NITESECNITESEC; ",r.a.createElement("br",null)," ; $ NITESECNITESECN ",r.a.createElement("br",null)," : _, ,N'ITESECNITESEC ",r.a.createElement("br",null)," : .+^^`, : `NITESECNIT ",r.a.createElement("br",null)," ) /), `-,-=,NITESECNI ",r.a.createElement("br",null)," / ^ ,-;|NITESECN; ",r.a.createElement("br",null)," / _.' '-';NITESECN ",r.a.createElement("br",null)," ( , ,-''`^NITE' ",r.a.createElement("br",null)," )` :`. .' ",r.a.createElement("br",null)," )-- ; `- / ",r.a.createElement("br",null)," ' _.-' : ",r.a.createElement("br",null)," ( _.-' . ",r.a.createElement("br",null)," ------. ",r.a.createElement("br",null)," . ",r.a.createElement("br",null)," _.nIt ",r.a.createElement("br",null)," _.nITESECNi ",r.a.createElement("br",null)," nITESECNIT^' ",r.a.createElement("br",null)," NITE^' ___ ",r.a.createElement("br",null)," / .gP''''Tp. ",r.a.createElement("br",null)," : d' . `b ",r.a.createElement("br",null)," ; d' o `b ; ",r.a.createElement("br",null)," / d; `b| ",r.a.createElement("br",null)," /, $; @ `: ",r.a.createElement("br",null)," /' $/ ; ",r.a.createElement("br",null)," .' $/b o | ",r.a.createElement("br",null)," .' d$/$; : ",r.a.createElement("br",null)," / .d/$/$; , ; ",r.a.createElement("br",null)," d .dNITESEC $ | ",r.a.createElement("br",null)," :bp.__.gNITESEC/$ :$ ; ",r.a.createElement("br",null)," NITESECNITESECNIT /$b : ",r.a.createElement("br",null)),[],!0,!0,!1,!1,!1,!1),Aevum:new i(r.a.createElement(r.a.Fragment,null,"The Silicon City."),["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0,!1,!1),Chongqing:new i(r.a.createElement(r.a.Fragment,null,"Serve the People."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),Ishima:new i(r.a.createElement(r.a.Fragment,null,"The East Asian Order of the Future."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),"New Tokyo":new i(r.a.createElement(r.a.Fragment,null,"Asia's World City."),["Sector-12","Aevum","Volhaven"],!0,!0,!0,!0,!1,!1),"Sector-12":new i(r.a.createElement(r.a.Fragment,null,"The City of the Future."),["Chongqing","New Tokyo","Ishima","Volhaven"],!0,!0,!0,!0,!1,!1),Volhaven:new i(r.a.createElement(r.a.Fragment,null,"Benefit, Honor, and Glory."),["Chongqing","Sector-12","New Tokyo","Aevum","Ishima"],!0,!0,!0,!0,!1,!1),"Speakers for the Dead":new i(r.a.createElement(r.a.Fragment,null,"It is better to reign in Hell than to serve in Heaven."),[],!0,!0,!0,!0,!1,!1),"The Dark Army":new i(r.a.createElement(r.a.Fragment,null,"The World doesn't care about right or wrong. It only cares about power."),[],!0,!0,!0,!1,!1,!1),"The Syndicate":new i(r.a.createElement(r.a.Fragment,null,"Honor holds you back."),[],!0,!0,!0,!0,!1,!1),Silhouette:new i(r.a.createElement(r.a.Fragment,null,"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.",r.a.createElement("br",null),r.a.createElement("br",null),"That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system."),[],!0,!0,!0,!1,!1,!1),Tetrads:new i(r.a.createElement(r.a.Fragment,null,"Following the mandate of Heaven and carrying out the way."),[],!1,!1,!0,!0,!1,!1),"Slum Snakes":new i(r.a.createElement(r.a.Fragment,null,"Slum Snakes rule!"),[],!1,!1,!0,!0,!1,!1),Netburners:new i(r.a.createElement(r.a.Fragment,null,"~~//*>H4CK||3T 8URN3R5**>?>\\~~"),[],!0,!0,!1,!1,!1,!1),"Tian Di Hui":new i(r.a.createElement(r.a.Fragment,null,"Obey Heaven and work righteously."),[],!0,!0,!1,!0,!1,!1),CyberSec:new i(r.a.createElement(r.a.Fragment,null,"The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse."),[],!0,!0,!1,!1,!1,!1),Bladeburners:new i(r.a.createElement(r.a.Fragment,null,"It's too bad they won't live. But then again, who does?",r.a.createElement("br",null),r.a.createElement("br",null),"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,!0,!1),"Church of the Machine God":new i(r.a.createElement(r.a.Fragment,null," `` ",r.a.createElement("br",null)," -odmmNmds: ",r.a.createElement("br",null)," `hNmo:..-omNh. ",r.a.createElement("br",null)," yMd` `hNh ",r.a.createElement("br",null)," mMd oNm ",r.a.createElement("br",null)," oMNo .mM/ ",r.a.createElement("br",null)," `dMN+ -mM+ ",r.a.createElement("br",null)," -mMNo -mN+ ",r.a.createElement("br",null)," .+- :mMNo/mN/ ",r.a.createElement("br",null),":yNMd. :NMNNN/ ",r.a.createElement("br",null),"-mMMMh. /NMMh` ",r.a.createElement("br",null)," .dMMMd. /NMMMy` ",r.a.createElement("br",null)," `yMMMd. /NNyNMMh` ",r.a.createElement("br",null)," `sMMMd. +Nm: +NMMh. ",r.a.createElement("br",null)," oMMMm- oNm: /NMMd. ",r.a.createElement("br",null)," +NMMmsMm- :mMMd. ",r.a.createElement("br",null)," /NMMMm- -mMMd. ",r.a.createElement("br",null)," /MMMm- -mMMd. ",r.a.createElement("br",null)," `sMNMMm- .mMmo ",r.a.createElement("br",null)," `sMd:hMMm. ./. ",r.a.createElement("br",null)," `yMy` `yNMd` ",r.a.createElement("br",null)," `hMs` oMMy ",r.a.createElement("br",null)," `hMh sMN- ",r.a.createElement("br",null)," /MM- .NMo ",r.a.createElement("br",null)," +MM: :MM+ ",r.a.createElement("br",null)," sNNo-.`.-omNy` ",r.a.createElement("br",null)," -smNNNNmdo- ",r.a.createElement("br",null)," `..` ",r.a.createElement("br",null),r.a.createElement("br",null),"Many cultures predict an end to humanity in the near future, a final Armageddon that will end the world; but we disagree.",r.a.createElement("br",null),r.a.createElement("br",null),"Note that for this faction, reputation can only be gained by charging Stanek's gift."),[],!1,!1,!1,!1,!0,!0)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return h}));var n=a(0),r=a.n(n),i=a(113),o=a(41),s=a(29),l=a(118),c=a(1),u=a(10);const m=new l.a;function h(){const[e,t]=Object(n.useState)(null),a=s.b.Player();return Object(n.useEffect)(()=>m.subscribe(e=>t(e)),[]),r.a.createElement(o.a,{open:null!==e,onClose:()=>t(null)},r.a.createElement(c.a,{variant:"h4"},"You have received a faction invitation."),r.a.createElement(c.a,null,"Would you like to join ",(e||{name:""}).name,"? ",r.a.createElement("br",null),r.a.createElement("br",null),"Warning: Joining this faction may prevent you from joining other factions during this run!"),r.a.createElement(u.a,{onClick:function(){if(null===e)return;-1===a.factionInvitations.findIndex(t=>t===e.name)&&console.error("Could not find faction in Player.factionInvitations"),Object(i.d)(e),t(null)}},"Join!"),r.a.createElement(u.a,{onClick:()=>t(null)},"Decide later"))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(771),r=a(15);function i(e){const t=n.a[e];if(null==t)return;const a=`${t.title}
${t.txt}`;Object(r.a)(a)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(e,t,a,n,r){this.name=e,this.desc=t,this.isHacking=a,this.isCombat=n,this.baseRespect=r.baseRespect?r.baseRespect:0,this.baseWanted=r.baseWanted?r.baseWanted:0,this.baseMoney=r.baseMoney?r.baseMoney:0,this.hackWeight=r.hackWeight?r.hackWeight:0,this.strWeight=r.strWeight?r.strWeight:0,this.defWeight=r.defWeight?r.defWeight:0,this.dexWeight=r.dexWeight?r.dexWeight:0,this.agiWeight=r.agiWeight?r.agiWeight:0,this.chaWeight=r.chaWeight?r.chaWeight:0,100!=Math.round(this.hackWeight+this.strWeight+this.defWeight+this.dexWeight+this.agiWeight+this.chaWeight)&&console.error(`GangMemberTask ${this.name} weights do not add up to 100`),this.difficulty=r.difficulty?r.difficulty:1,this.territory=r.territory?r.territory:{money:1,respect:1,wanted:1}}}},function(e,t,a){"use strict";function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return r}));class r{constructor(e,t){n(this,"lvl",1),n(this,"n",1),this.n=e,this.lvl=t}}},function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=[];function r(e){if(!n.find(t=>t.pid===e.pid))for(n.unshift({filename:e.name,args:e.args,pid:e.pid,timestamp:new Date,runningScript:e.scriptRef});n.length>50;)n.pop()}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(255),r=function(e,t,a=0){this.sourceCode=e,this.sourceCodeLineOffset=a,"string"==typeof e&&(e=n.a(e,r.PARSE_OPTIONS)),this.ast=e,this.initFunc_=t,this.paused_=!1,this.polyfills_=[],this.functionCounter_=0,this.stepFunctions_=Object.create(null);var i,o,s=/^step([A-Z]\w*)$/;for(var l in this)"function"==typeof this[l]&&(i=l.match(s))&&(this.stepFunctions_[i[1]]=this[l].bind(this));this.global=this.createScope(this.ast,null),this.ast=n.a(this.polyfills_.join("\n"),r.PARSE_OPTIONS),this.polyfills_=void 0,this.stripLocations_(this.ast,void 0,void 0),(o=new r.State(this.ast,this.global)).done=!1,this.stateStack=[o],this.run(),this.value=void 0,this.ast=e,(o=new r.State(this.ast,this.global)).done=!1,this.stateStack.length=0,this.stateStack[0]=o,this.nodeConstructor=o.node.constructor,this.stateStack=this.stateStack};
/**
* @license
* JavaScript Interpreter
@@ -16,5 +16,5 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */r.PARSE_OPTIONS={ecmaVersion:5,locations:!0},r.READONLY_DESCRIPTOR={configurable:!0,enumerable:!0,writable:!1},r.NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!0},r.READONLY_NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!1},r.VARIABLE_DESCRIPTOR={configurable:!1,enumerable:!0,writable:!0},r.STEP_ERROR={},r.SCOPE_REFERENCE={},r.VALUE_IN_DESCRIPTOR={},r.toStringCycles_=[],r.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}},r.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)"},r.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=n.a(e,r.PARSE_OPTIONS)),!e||"Program"!==e.type)throw Error("Expecting new AST to start with a Program node.");this.populateScope_(e,t.scope);for(var a,i=0;a=e.body[i];i++)t.node.body.push(a);t.done=!1},r.prototype.step=function(){var e=this.stateStack,t=e[e.length-1];if(!t)return!1;var a=t.node,n=a.type;if("Program"===n&&t.done)return!1;if(this.paused_)return!0;try{var i=this.stepFunctions_[n](e,t,a)}catch(e){if(e!==r.STEP_ERROR)throw e}return i&&e.push(i),!!a.end||this.step()},r.prototype.run=function(){for(;!this.paused_&&this.step(););return this.paused_},r.prototype.initGlobalScope=function(e){this.setProperty(e,"NaN",NaN,r.READONLY_DESCRIPTOR),this.setProperty(e,"Infinity",1/0,r.READONLY_DESCRIPTOR),this.setProperty(e,"undefined",void 0,r.READONLY_DESCRIPTOR),this.setProperty(e,"window",e,r.READONLY_DESCRIPTOR),this.setProperty(e,"this",e,r.READONLY_DESCRIPTOR),this.setProperty(e,"self",e),this.OBJECT_PROTO=new r.Object(null),this.FUNCTION_PROTO=new r.Object(this.OBJECT_PROTO),this.initFunction(e),this.initObject(e),e.proto=this.OBJECT_PROTO,this.setProperty(e,"constructor",this.OBJECT,r.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,a=this.createNativeFunction((function(e){throw EvalError("Can't happen")}),!1);a.eval=!0,this.setProperty(e,"eval",a),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 n=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],i=0;i>> 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(',');","}","});","")},r.prototype.initString=function(e){var t,a=this;t=function(e){return e=String(e),a.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),r.NONENUMERABLE_DESCRIPTOR);for(var n=["charAt","charCodeAt","concat","indexOf","lastIndexOf","slice","substr","substring","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim"],i=0;i= 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;","};","}","")},r.prototype.initBoolean=function(e){var t,a=this;t=function(e){return e=Boolean(e),a.calledWithNew()?(this.data=e,this):e},this.BOOLEAN=this.createNativeFunction(t,!0),this.setProperty(e,"Boolean",this.BOOLEAN)},r.prototype.initNumber=function(e){var t,a=this;t=function(e){return e=Number(e),a.calledWithNew()?(this.data=e,this):e},this.NUMBER=this.createNativeFunction(t,!0),this.setProperty(e,"Number",this.NUMBER);for(var n=["MAX_VALUE","MIN_VALUE","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY"],i=0;i>>0;return t===Number(e)?t:NaN},r.legalArrayIndex=function(e){var t=e>>>0;return String(t)===String(e)&&4294967295!==t?t:NaN},r.Value,r.Object=function(e){this.getter=Object.create(null),this.setter=Object.create(null),this.properties=Object.create(null),this.proto=e},r.Object.prototype.proto=null,r.Object.prototype.isObject=!0,r.Object.prototype.class="Object",r.Object.prototype.data=null,r.Object.prototype.toString=function(){if("Array"===this.class){(n=r.toStringCycles_).push(this);try{for(var e=[],t=0;t0;i.pop()){var o=i[i.length-1];switch(o.node.type){case"TryStatement":return void(o.cv={type:e,value:t,label:a});case"CallExpression":case"NewExpression":if(e===r.Completion.RETURN)return void(o.value=t);if(e!==r.Completion.THROW)throw Error("Unsynatctic break/continue not rejected by Acorn")}if(e===r.Completion.BREAK){if(a?o.labels&&-1!==o.labels.indexOf(a):o.isLoop||o.isSwitch)return void i.pop()}else if(e===r.Completion.CONTINUE&&(a?o.labels&&-1!==o.labels.indexOf(a):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+n)}else s=String(t)+n;throw s},r.prototype.createGetter_=function(e,t){var a=Array.isArray(t)?t[0]:t,n=new this.nodeConstructor;n.type="CallExpression";var i=new r.State(n,this.stateStack[this.stateStack.length-1].scope);return i.doneCallee_=!0,i.funcThis_=a,i.func_=e,i.doneArgs_=!0,i.arguments_=[],i},r.prototype.createSetter_=function(e,t,a){var n=Array.isArray(t)?t[0]:this.global,i=new this.nodeConstructor;i.type="CallExpression";var o=new r.State(i,this.stateStack[this.stateStack.length-1].scope);return o.doneCallee_=!0,o.funcThis_=n,o.func_=e,o.doneArgs_=!0,o.arguments_=[a],o},r.State=function(e,t){this.node=e,this.scope=t},r.prototype.stepArrayExpression=function(e,t,a){var n=a.elements,i=t.n_||0;for(t.array_?(this.setProperty(t.array_,i,t.value),i++):(t.array_=this.createObjectProto(this.ARRAY_PROTO),t.array_.properties.length=n.length);i>=":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: "+a.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},r.prototype.stepBinaryExpression=function(e,t,a){if(!t.doneLeft_)return t.doneLeft_=!0,new r.State(a.left,t.scope);if(!t.doneRight_)return t.doneRight_=!0,t.leftValue_=t.value,new r.State(a.right,t.scope);e.pop();var n,i=t.leftValue_,o=t.value;switch(a.operator){case"==":n=i==o;break;case"!=":n=i!=o;break;case"===":n=i===o;break;case"!==":n=i!==o;break;case">":n=i>o;break;case">=":n=i>=o;break;case"<":n=i>":n=i>>o;break;case">>>":n=i>>>o;break;case"in":if(!o||!o.isObject){let e=this.getErrorLineNumber(a);this.throwException(this.TYPE_ERROR,"'in' expects an object, not '"+o+"'",e)}n=this.hasProperty(o,i);break;case"instanceof":if(!this.isa(o,this.FUNCTION)){let e=this.getErrorLineNumber(a);this.throwException(this.TYPE_ERROR,"Right-hand side of instanceof is not an object",e)}n=!!i.isObject&&this.isa(i,o);break;default:throw SyntaxError("Unknown binary operator: "+a.operator)}e[e.length-1].value=n},r.prototype.stepBlockStatement=function(e,t,a){var n=t.n_||0,i=a.body[n];if(i)return t.n_=n+1,new r.State(i,t.scope);e.pop()},r.prototype.stepBreakStatement=function(e,t,a){var n=a.label&&a.label.name;this.unwind(r.Completion.BREAK,void 0,n)},r.prototype.stepCallExpression=function(e,t,a){if(!t.doneCallee_){t.doneCallee_=1;var i=new r.State(a.callee,t.scope);return i.components=!0,i}if(1===t.doneCallee_){t.doneCallee_=2;var o=t.value;if(Array.isArray(o)){if(t.func_=this.getValue(o,a),o[0]===r.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),a.arguments[t.n_])return new r.State(a.arguments[t.n_++],t.scope);if("NewExpression"===a.type){if(o.illegalConstructor){let e=this.getErrorLineNumber(a);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(a);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,m,h)}var p=this.createObjectProto(this.ARRAY_PROTO);for(u=0;un.a.ServerMaxGrowthRate&&(s=n.a.ServerMaxGrowthRate);const l=o*(e.serverGrowth/100)*r.a.ServerGrowthRate,c=1+(i-1)/16;return Math.pow(s,l*a.hacking_grow_mult*c)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return u}));var n=a(0),r=a.n(n),i=a(118),o=a(41),s=a(1),l=a(10);const c=new i.a;function u(){const[e,t]=Object(n.useState)(null);return Object(n.useEffect)(()=>c.subscribe(e=>{t(e)}),[]),r.a.createElement(r.a.Fragment,null,null!=e&&r.a.createElement(o.a,{open:!0,onClose:function(){null!==e&&(e.resolve(!1),t(null))}},r.a.createElement(s.a,null,e.txt),r.a.createElement(l.a,{onClick:function(){null!==e&&(e.resolve(!0),t(null))}},"Yes"),r.a.createElement(l.a,{onClick:function(){null!==e&&(e.resolve(!1),t(null))}},"No")))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(20),r=a(6),i=a(24);function o(e,t){const a=e.augmentations.map(e=>e.name),o=[];function s(e){return e.name!==r.a.NeuroFluxGovernor&&(!a.includes(e.name)&&(!o.includes(e)&&!e.isSpecial))}if(t.inGang()){const e=t.getGangFaction();for(const t in n.a){const a=n.a[t];s(a)&&(e.playerReputation>a.baseRepRequirement&&o.push(a))}return o}for(const e of t.factions){if("Bladeburners"===e)continue;if("Netburners"===e)continue;const t=i.a[e];if(null!=t)for(const e of t.augmentations){const a=n.a[e];s(a)&&(t.playerReputation>a.baseRepRequirement&&o.push(a))}}return o}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=new(a(118).a)},,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return g}));var n=a(0),r=a.n(n),i=a(6),o=a(302),s=a(97),l=a(32),c=a(1),u=a(73),m=a(189),h=a(70),p=a.n(h),d=a(134),f=a.n(d);function g(e){const[t,a]=Object(n.useState)(!1);let h=e.aug.name;return null!=e.level&&e.aug.name===i.a.NeuroFluxGovernor&&(h+=" - Level "+e.level),"string"==typeof e.aug.info?r.a.createElement(l.a,{component:u.a},r.a.createElement(o.a,{onClick:()=>a(e=>!e)},r.a.createElement(s.a,{primary:r.a.createElement(c.a,{style:{whiteSpace:"pre-wrap"}},h)}),t?r.a.createElement(f.a,{color:"primary"}):r.a.createElement(p.a,{color:"primary"})),r.a.createElement(m.a,{in:t,unmountOnExit:!0},r.a.createElement(l.a,{m:4},r.a.createElement(c.a,{dangerouslySetInnerHTML:{__html:e.aug.info}}),e.aug.stats&&r.a.createElement(r.a.Fragment,null,r.a.createElement("br",null),r.a.createElement("br",null),r.a.createElement(c.a,null,e.aug.stats))))):r.a.createElement(l.a,{component:u.a},r.a.createElement(o.a,{onClick:()=>a(e=>!e)},r.a.createElement(s.a,{primary:r.a.createElement(c.a,{style:{whiteSpace:"pre-wrap"}},h)}),t?r.a.createElement(f.a,{color:"primary"}):r.a.createElement(p.a,{color:"primary"})),r.a.createElement(m.a,{in:t,unmountOnExit:!0},r.a.createElement(l.a,{m:4},r.a.createElement(c.a,null,e.aug.info,e.aug.stats&&r.a.createElement(r.a.Fragment,null,r.a.createElement("br",null),r.a.createElement("br",null),e.aug.stats)))))}},,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return i}));var n=a(0);const r=n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 166 132",style:{fill:"#adff2f"}},n.createElement("g",null,n.createElement("path",{d:"M132.658-0.18l-24.321,24.321c-7.915-2.71-16.342-4.392-25.087-4.392c-45.84,0-83,46-83,46 s14.1,17.44,35.635,30.844L12.32,120.158l12.021,12.021L144.68,11.841L132.658-0.18z M52.033,80.445 c-2.104-4.458-3.283-9.438-3.283-14.695c0-19.054,15.446-34.5,34.5-34.5c5.258,0,10.237,1.179,14.695,3.284L52.033,80.445z"}),n.createElement("path",{d:"M134.865,37.656l-18.482,18.482c0.884,3.052,1.367,6.275,1.367,9.612c0,19.055-15.446,34.5-34.5,34.5 c-3.337,0-6.56-0.483-9.611-1.367l-10.124,10.124c6.326,1.725,12.934,2.743,19.735,2.743c45.84,0,83-46,83-46 S153.987,50.575,134.865,37.656z"}))),i=n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"-22 0 511 511.99561",style:{fill:"#adff2f"}},n.createElement("path",{d:"m.496094 466.242188 39.902344-39.902344 45.753906 45.753906-39.898438 39.902344zm0 0"}),n.createElement("path",{d:"m468.421875 89.832031-1.675781-89.832031-300.265625 300.265625 45.753906 45.753906zm0 0"}),n.createElement("path",{d:"m95.210938 316.785156 16.84375 16.847656h.003906l83.65625 83.65625 22.753906-22.753906-100.503906-100.503906zm0 0"}),n.createElement("path",{d:"m101.445312 365.300781-39.902343 39.902344 45.753906 45.753906 39.902344-39.902343-39.90625-39.902344zm0 0"}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(0),r=a.n(n),i=a(57),o=a(29),s=a(1),l=a(26),c=a(32),u=a(94),m=a(528),h=a.n(m),p=a(529),d=a.n(p);function f({action:e,isActive:t,bladeburner:a,rerender:n}){const m=o.b.Player(),p=e.level1;return r.a.createElement(c.a,{display:"flex",flexDirection:"row",alignItems:"center"},r.a.createElement(c.a,{display:"flex"},r.a.createElement(l.a,{title:r.a.createElement(s.a,null,e.getSuccessesNeededForNextLevel(i.a.ContractSuccessesPerLevel)," successes needed for next level")},r.a.createElement(s.a,null,"Level: ",e.level," / ",e.maxLevel))),r.a.createElement(l.a,{title:t?r.a.createElement(s.a,null,"WARNING: changing the level will restart the Operation"):""},r.a.createElement("span",null,r.a.createElement(u.a,{disabled:!p,onClick:function(){p&&(++e.level,t&&a.startAction(m,a.action),n())}},r.a.createElement(h.a,null)))),r.a.createElement(l.a,{title:t?r.a.createElement(s.a,null,"WARNING: changing the level will restart the Operation"):""},r.a.createElement("span",null,r.a.createElement(u.a,{disabled:!f,onClick:function(){f&&(--e.level,t&&a.startAction(m,a.action),n())}},r.a.createElement(d.a,null)))))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a.n(n),i=a(1),o=a(26),s=a(32),l=a(147);function c(e){return r.a.createElement(s.a,{display:"flex",flexDirection:"row",alignItems:"center"},r.a.createElement(o.a,{title:r.a.createElement(i.a,null,"Automatically increase operation level when possible")},r.a.createElement(i.a,null," Autolevel:")),r.a.createElement(l.a,{checked:e.action.autoLevel,onChange:function(t){e.action.autoLevel=t.target.checked,e.rerender()}}))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),i=a(886),o=a(22),s=a(10);function l(e){const[t,a]=Object(n.useState)(!1);return r.a.createElement(r.a.Fragment,null,r.a.createElement(s.a,{disabled:0===e.bladeburner.teamSize,onClick:()=>a(!0)},"Set Team Size (Curr Size: ",Object(o.c)(e.action.teamCount,0),")"),r.a.createElement(i.a,{open:t,onClose:()=>a(!1),action:e.action,bladeburner:e.bladeburner}))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n);function i(){const[e,t]=Object(n.useState)(!0);return Object(n.useEffect)(()=>{const e=setInterval(()=>t(e=>!e),1e3);return()=>clearInterval(e)}),r.a.createElement(r.a.Fragment,null,e?"|":"")}},function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c}));var n=a(964),r=a(20),i=a(279),o=a(6),s=a(31);function l(e,t){const a=e.getCost();if(!t.canAfford(a))return!1;t.loseMoney(a,"other"),t.hacking_exp=e.hacking_exp,t.strength_exp=e.strength_exp,t.defense_exp=e.defense_exp,t.dexterity_exp=e.dexterity_exp,t.agility_exp=e.agility_exp,t.charisma_exp=e.charisma_exp;for(const e in r.a)r.a[e].owned=!1;for(let e=t.augmentations.length-1;e>=0;--e)t.augmentations[e].name!==o.a.NeuroFluxGovernor?t.augmentations.splice(e,1):r.a[o.a.NeuroFluxGovernor].owned=!0;for(let a=0;a=0;--e){const a=t.queuedAugmentations[e].name;t.augmentations.filter(e=>e.name!==o.a.NeuroFluxGovernor&&e.name===a).length>=1&&t.queuedAugmentations.splice(e,1)}return t.reapplyAllAugmentations(!0),t.reapplyAllSourceFiles(),!0}function c(){const e=[];for(let t=0;t<40;++t){const a=new n.a,i=5*t+1;a.hacking_exp=i*Object(s.a)(1e3,5e3),a.strength_exp=i*Object(s.a)(1e3,5e3),a.defense_exp=i*Object(s.a)(1e3,5e3),a.dexterity_exp=i*Object(s.a)(1e3,5e3),a.agility_exp=i*Object(s.a)(1e3,5e3),a.charisma_exp=i*Object(s.a)(1e3,5e3);const l=Math.max(2,Math.ceil((t+3)/2)),c=Object(s.a)(l,l+2),u=Object.keys(r.a);for(let e=0;e{let e=5;const n=setInterval(()=>{if(e--,e>0)return;e=5*Math.random();const n=Math.random()*t.length,r=t.charAt(n);a(e=>i(e,n,function(e){const t=e=>e[Math.floor(Math.random()*e.length)],a=["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","1234567890"," _","()[]{}<>"];for(const n of a)if(n.includes(e))return t(n);return t("!@#$%^&*()_+|\\';\"/.,?`~")}(r))),setTimeout(()=>{a(e=>i(e,n,r))},500)},20);return()=>{clearInterval(n)}},[]),r.a.createElement("span",null,t)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return y}));var n=a(0),r=a.n(n),i=a(23),o=a(1038),s=a(8),l=a(13),c=a(29),u=a(16),m=a(396),h=a(15),p=a(1),d=a(32),f=a(10);function g(e,t,a){const n=s.a.TravelCost;e.canAfford(n)&&(e.loseMoney(n,"other"),e.travel(a),Object(h.a)(r.a.createElement(r.a.Fragment,null,"You are now in ",a,"!")),t.toCity())}function y(e){const t=c.b.Player(),a=c.b.Router(),h=Object(n.useState)(!1)[1],[y,b]=Object(n.useState)(!1),[E,k]=Object(n.useState)(i.a.Sector12);function v(){h(e=>!e)}function _(e){const n=s.a.TravelCost;t.canAfford(n)&&(l.a.SuppressTravelConfirmation?g(t,a,e):(b(!0),k(e)))}return Object(n.useEffect)(()=>{const e=setInterval(v,1e3);return()=>clearInterval(e)},[]),r.a.createElement(r.a.Fragment,null,r.a.createElement(p.a,{variant:"h4"},"Travel Agency"),r.a.createElement(d.a,{mx:2},r.a.createElement(p.a,null,"From here, you can travel to any other city! A ticket costs"," ",r.a.createElement(u.a,{money:s.a.TravelCost,player:e.p}),"."),l.a.DisableASCIIArt?r.a.createElement(r.a.Fragment,null,Object.values(i.a).filter(t=>t!=e.p.city).map(e=>{if(void 0===Object.entries(i.a).find(t=>t[1]===e))throw new Error(`could not find key for city '${e}'`);return r.a.createElement(r.a.Fragment,{key:e},r.a.createElement(f.a,{onClick:()=>_(e),sx:{m:2}},r.a.createElement(p.a,null,"Travel to ",e)),r.a.createElement("br",null))})):r.a.createElement(m.a,{currentCity:e.p.city,onTravel:e=>_(e)})),r.a.createElement(o.a,{city:E,travel:()=>g(t,a,E),open:y,onClose:()=>b(!1)}))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return N})),a.d(t,"a",(function(){return B}));var n=a(0),r=a.n(n),i=a(1047),o=a(1061),s=a(112),l=a(15),c=a(91),u=a(284),m=a(241),h=a(441),p=a(270),d=a(4),f=a(454),g=a(446),y=a(13),b=a(40),E=a(362),k=a(182),v=a(1062),_=a(10),w=a(1),S=a(127),C=a(32),x=a(82),O=a(94),M=a(520),T=a.n(M),R=a(1063);let A=!1,P=[];function N(){const e=Object(g.a)({});P=function e(t){let a=[];const n=Object.keys(t);for(const r of n)"object"==typeof t[r]&&(a.push(r),a=a.concat(e(t[r]))),"function"==typeof t[r]&&a.push(r);return a}(e);const t=["heart","break","exploit","bypass","corporation","alterReality"];P=P.filter(e=>!t.includes(e)).sort()}let I="",F="",D="",j=null;function B(e){const t=Object(n.useRef)(null),[a,g]=Object(n.useState)(e.filename?e.filename:I),[M,N]=Object(n.useState)(e.filename?e.code:F),[B,G]=Object(n.useState)([]);D=e.filename?e.hostname:D,""===D&&(D=e.player.getCurrentServer().hostname);const[L,W]=Object(n.useState)("RAM: ???"),[H,U]=Object(n.useState)(!1),[q,K]=Object(n.useState)(!1),[z,$]=Object(n.useState)({theme:y.a.MonacoTheme,insertSpaces:y.a.MonacoInsertSpaces,fontSize:y.a.MonacoFontSize}),Y=Object(n.useMemo)(()=>Object(E.debounce)(e=>{W(e),U(!1)},300),[]);function V(){if(null!==t.current){const e=t.current.getPosition();null!==e&&f.a.saveCursor(a,{row:e.lineNumber,column:e.column})}if(j=null,b.a.isRunning&&b.a.currStep===b.f.TerminalTypeScript){if("n00dles.script"!==a)return void Object(l.a)("Leave the script name as 'n00dles.script'!");if(-1==M.replace(/\s/g,"").indexOf("while(true){hack('n00dles');}"))return void Object(l.a)("Please copy and paste the code from the tutorial!");const t=e.player.getCurrentServer();if(null===t)throw new Error("Server should not be null but it is.");let n=!1;for(let e=0;e0)){switch(n){case p.a.ImportError:Y("RAM: Import Error");break;case p.a.URLImportError:Y("RAM: HTTP Import Error");break;case p.a.SyntaxError:default:Y("RAM: Syntax Error")}return new Promise(()=>{})}Y("RAM: "+d.a.formatRAM(n))}Object(n.useEffect)(()=>{void 0!==e.filename&&(I=e.filename,F=e.code,j=null)},[]),Object(n.useEffect)(()=>{J(M)},[]),Object(n.useEffect)(()=>{function e(e){y.a.DisableHotkeys||66==e.keyCode&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),V())}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)});const X=11e3/-window.innerHeight+100;return r.a.createElement(r.a.Fragment,null,r.a.createElement(C.a,{display:"flex",flexDirection:"row",alignItems:"center"},r.a.createElement(x.a,{placeholder:"filename",type:"text",tabIndex:1,value:a,onChange:function(e){I=e.target.value,g(e.target.value)},InputProps:{startAdornment:r.a.createElement(w.a,null,D,":~/")}}),r.a.createElement(O.a,{onClick:()=>K(!0)},r.a.createElement(r.a.Fragment,null,r.a.createElement(T.a,null),"options"))),r.a.createElement(i.a,{beforeMount:function(e){if(A)return;A=!0,e.languages.registerCompletionItemProvider("javascript",{provideCompletionItems:()=>{const t=[];for(const a of P)t.push({label:a,kind:e.languages.CompletionItemKind.Function,insertText:a,insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet});return{suggestions:t}}}),async function(){const t=await e.languages.getLanguages().find(e=>"javascript"===e.id).loader();t.language.tokenizer.root.unshift(["ns",{token:"ns"}]);for(const e of P)t.language.tokenizer.root.unshift([e,{token:"netscriptfunction"}]);["let","const","var","function"].forEach(e=>t.language.tokenizer.root.unshift([e,{token:"otherkeywords"}])),["true","false","null","undefined"].forEach(e=>t.language.tokenizer.root.unshift([e,{token:"otherkeyvars"}])),t.language.tokenizer.root.unshift(["this",{token:"this"}])}();const t=(R.a+"").replace(/export /g,"");e.languages.typescript.javascriptDefaults.addExtraLib(t,"netscript.d.ts"),e.languages.typescript.typescriptDefaults.addExtraLib(t,"netscript.d.ts"),Object(v.a)(e)},onMount:function(e){if(t.current=e,null===t.current)return;const n=f.a.getCursor(a);-1!==n.row?t.current.setPosition({lineNumber:n.row,column:n.column}):null!==j&&t.current.setPosition({lineNumber:j.lineNumber,column:j.column+1}),t.current.focus()},loading:r.a.createElement(w.a,null,"Loading script editor!"),height:X+"%",defaultLanguage:"javascript",defaultValue:M,onChange:function(e){if(void 0!==e){F=e,N(e),J(e);try{null!==t.current&&(j=t.current.getPosition(),function(e){if(null===t.current)return;if(!a.endsWith(".ns")&&!a.endsWith(".js"))return;const n=Object(h.b)(e);if(-1!==n){const e=t.current.deltaDecorations(B,[{range:{startLineNumber:n,startColumn:1,endLineNumber:n,endColumn:10},options:{isWholeLine:!0,glyphMarginClassName:"myGlyphMarginClass",glyphMarginHoverMessage:{value:"Possible infinite loop, await something."}}}]);G(e)}else{const e=t.current.deltaDecorations(B,[]);G(e)}}(e))}catch(e){}}},theme:z.theme,options:{...z,glyphMargin:!0}}),r.a.createElement(C.a,{display:"flex",flexDirection:"row",sx:{m:1},alignItems:"center"},r.a.createElement(_.a,{onClick:function(){null!==t.current&&t.current.getAction("editor.action.formatDocument").run()}},"Beautify"),r.a.createElement(w.a,{color:H?"secondary":"primary",sx:{mx:1}},L),r.a.createElement(_.a,{onClick:V},"Save & Close (Ctrl/Cmd + b)"),r.a.createElement(w.a,{sx:{mx:1}}," ","Documentation:"," ",r.a.createElement(S.a,{target:"_blank",href:"https://bitburner.readthedocs.io/en/latest/index.html"},"Basic")," ","|",r.a.createElement(S.a,{target:"_blank",href:"https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.md"},"Full"))),r.a.createElement(o.a,{open:q,onClose:()=>K(!1),options:{theme:y.a.MonacoTheme,insertSpaces:y.a.MonacoInsertSpaces,fontSize:y.a.MonacoFontSize},save:e=>{$(e),y.a.MonacoTheme=e.theme,y.a.MonacoInsertSpaces=e.insertSpaces,y.a.MonacoFontSize=e.fontSize}}))}},,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return compile})),__webpack_require__.d(__webpack_exports__,"b",(function(){return executeJSScript}));var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(107),_Script_ScriptUrl__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(1069);function makeScriptBlob(e){return new Blob([e],{type:"text/javascript"})}async function compile(script,scripts){if(!shouldCompile(script,scripts))return;await script.updateRamUsage(scripts);const uurls=_getScriptUrls(script,scripts,[]);script.url&&URL.revokeObjectURL(script.url),script.dependencies.length>0&&script.dependencies.forEach(e=>URL.revokeObjectURL(e.url)),script.url=uurls[uurls.length-1].url,script.module=new Promise(resolve=>resolve(eval("import(uurls[uurls.length - 1].url)"))),script.dependencies=uurls}async function executeJSScript(e=[],t){const a=t.getScript();if(null===a)throw new Error("script is null");await compile(a,e),t.ramUsage=a.ramUsage;const n=await a.module,r=t.env.vars;if(!n.main)throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_0__.b)(t,a.filename+" cannot be run because it does not have a main function.");return n.main(r)}function shouldCompile(e,t){return""===e.module||e.dependencies.some(a=>{const n=t.find(e=>e.filename==a.filename);if(!n)return!0;return n.moduleSequenceNumber>e.moduleSequenceNumber})}function _getScriptUrls(e,t,a){const n=[];a.push(e);try{let r=e.code.replace(/((?:from|import)\s+(?:'|"))(?:\.\/)?([^'"]+)('|")/g,(e,r,i,o)=>{if(!t.some(e=>e.filename==i))return e;const[s]=t.filter(e=>e.filename==i),l=_getScriptUrls(s,t,a);return n.push(...l),[r,l[l.length-1].url,o].join("")});return r+='\n\nfunction print() {throw new Error("Invalid call to window.print(). Did you mean to use Netscript\'s print()?");}',n.push(new _Script_ScriptUrl__WEBPACK_IMPORTED_MODULE_1__.a(e.filename,URL.createObjectURL(makeScriptBlob(r)))),n}catch(e){for(const e in n)URL.revokeObjectURL(e);throw e}finally{a.pop()}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(547),r=a(402);function i(e){return function(t){t=Object(n.a)(t);const a={};for(const e of t){let t=String;"number"==typeof e[1]?t=Number:"boolean"==typeof e[1]?t=Boolean:Array.isArray(e[1])&&(t=[String]);const n=e[0].length>1?2:1;a["-".repeat(n)+e[0]]=t}const i=r(a,{argv:e});for(const e of t)i.hasOwnProperty("--"+e[0])&&i.hasOwnProperty("-"+e[0])||(i[e[0]]=e[1]);for(const e of Object.keys(i)){if(!e.startsWith("-"))continue;const t=i[e];delete i[e];const a=2===e.length?1:2;i[e.slice(a)]=t}return i}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));const n=new(a(509).a)("",()=>{});function r(e){if(null==e)return null;if(!(e.hasOwnProperty("properties")&&e.hasOwnProperty("getter")&&e.hasOwnProperty("setter")&&e.hasOwnProperty("proto")))return e;let t;if(e.hasOwnProperty("class")&&"Array"===e.class){t=[];const a=n.getProperty(e,"length");for(let i=0;i{m(e,0)},disabled:0===s},"rtl"===t.direction?n.createElement(d.a,null):n.createElement(l.a,null)),n.createElement(o.a,{onClick:e=>{m(e,s-1)},disabled:0===s},"rtl"===t.direction?n.createElement(h.a,null):n.createElement(u.a,null)),n.createElement(o.a,{onClick:e=>{m(e,s+1)},disabled:s>=Math.ceil(a/c)-1},"rtl"===t.direction?n.createElement(u.a,null):n.createElement(h.a,null)),n.createElement(o.a,{onClick:e=>{m(e,Math.max(0,Math.ceil(a/c)-1))},disabled:s>=Math.ceil(a/c)-1},"rtl"===t.direction?n.createElement(l.a,null):n.createElement(d.a,null)))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a(126),i=a(49);function o(){return(o=Object.assign||function(e){for(var t=1;tn.createElement(i.a,o({},e,{classes:{root:s().root,...e.classes}}));function c(e){return n.createElement(l,{style:{backgroundColor:e.color},onMouseEnter:e.onMouseEnter,onClick:e.onClick})}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(27);function r(e){if(null!=e.ramUsage&&e.ramUsage>0)return e.ramUsage;const t=Object(n.d)(e.server);if(null==t)return 0;for(let a=0;a0||r.a[7]>0)}function o(){return null!=this.bladeburner&&this.bladeburner instanceof n.a}function s(){this.bladeburner=new n.a(this)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(393),r=a(21);class i extends n.a{constructor(e=null){super(e)}getActionTypeSkillSuccessBonus(e){return e.skillMultipliers.successChanceContract}toJSON(){return Object(r.b)("Contract",this)}static fromJSON(e){return Object(r.a)(i,e.data)}}r.c.constructors.Contract=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n={helpList:["Use 'help [command]' to get more information about a particular Bladeburner console command.",""," automate [var] [val] [hi/low] Configure simple automation for Bladeburner tasks"," clear/cls Clear the console"," help [cmd] Display this help text, or help text for a specific command"," log [en/dis] [type] Enable or disable logging for events and actions"," skill [action] [name] Level or display info about your Bladeburner skills"," start [type] [name] Start a Bladeburner action/task"," stop Stops your current Bladeburner action/task"],automate:["automate [var] [val] [hi/low]","","A simple way to automate your Bladeburner actions. This console command can be used to automatically start an action when your stamina rises above a certain threshold, and automatically switch to another action when your stamina drops below another threshold."," automate status - Check the current status of your automation and get a brief description of what it'll do"," automate en - Enable the automation feature"," automate dis - Disable the automation feature","","There are four properties that must be set for this automation to work properly. Here is how to set them:",""," automate stamina 100 high"," automate contract Tracking high"," automate stamina 50 low"," automate general 'Field Analysis' low","","Using the four console commands above will set the automation to perform Tracking contracts if your stamina is 100 or higher, and then switch to Field Analysis if your stamina drops below 50. Note that when setting the action, the name of the action is CASE-SENSITIVE. It must exactly match whatever the name is in the UI."],clear:["clear","","Clears the console"],cls:["cls","","Clears the console"],help:["help [command]","","Running 'help' with no arguments displays the general help text, which lists all console commands and a brief description of what they do. A command can be specified to get more specific help text about that particular command. For example:",""," help automate","","will display specific information about using the automate console command"],log:["log [en/dis] [type]","","Enable or disable logging. By default, the results of completing actions such as contracts/operations are logged in the console. There are also random events that are logged in the console as well. The five categories of things that get logged are:","","[general, contracts, ops, blackops, events]","","The logging for these categories can be enabled or disabled like so:",""," log dis contracts - Disables logging that occurs when contracts are completed"," log en contracts - Enables logging that occurs when contracts are completed"," log dis events - Disables logging for Bladeburner random events","","Logging can be universally enabled/disabled using the 'all' keyword:",""," log dis all"," log en all"],skill:["skill [action] [name]","","Level or display information about your skills.","","To display information about all of your skills and your multipliers, use:",""," skill list","","To display information about a specific skill, specify the name of the skill afterwards. Note that the name of the skill is case-sensitive. Enter it exactly as seen in the UI. If the name of the skill has whitespace, enclose the name of the skill in double quotation marks:",""," skill list Reaper
skill list 'Digital Observer'","","This console command can also be used to level up skills:",""," skill level [skill name]"],start:["start [type] [name]","","Start an action. An action is specified by its type and its name. The name is case-sensitive. It must appear exactly as it does in the UI. If the name of the action has whitespace, enclose it in double quotation marks. Valid action types include:","","[general, contract, op, blackop]","","Examples:",""," start contract Tracking"," start op 'Undercover Operation'"],stop:["stop","","Stop your current action and go idle."]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return s}));var n=a(365),r=a(74);function i(){return 3===this.bitNodeN||r.a[3]>0}function o(){return null!=this.corporation&&this.corporation instanceof n.a}function s(e,t=0){this.corporation=new n.a({name:e}),this.corporation.totalShares+=t}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return s}));var n=a(288),r=a(4);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class o{constructor(e={cost:0,text:""}){if(i(this,"children",[]),i(this,"cost",0),i(this,"researched",!1),i(this,"parent",null),i(this,"text",""),null==n.a[e.text])throw new Error("Invalid Research name used when constructing ResearchTree Node: "+e.text);this.text=e.text,this.cost=e.cost,e.children&&e.children.length>0&&(this.children=e.children),null!=e.parent&&(this.parent=e.parent)}addChild(e){this.children.push(e),e.parent=this}createTreantMarkup(){const e=[];for(let t=0;t${this.text}
${r.a.format(this.cost,"0,0")} Scientific Research`+a.desc+"",text:{name:this.text}}}findNode(e){if(this.text===e)return this;let t=null;for(let a=0;a0){const t=e[Math.floor(Math.random()*e.length)];Object(f.c)(t)}L.Counters.checkFactionInvitations=100}if(L.Counters.passiveFactionGrowth<=0){const e=Math.floor(5-L.Counters.passiveFactionGrowth);Object(f.e)(e),L.Counters.passiveFactionGrowth=5}if(L.Counters.messages<=0&&(Object(v.b)(),r.a[o.a.TheRedPill].owned?L.Counters.messages=4500:L.Counters.messages=150),w.a.corporation instanceof m.a&&w.a.corporation.process(w.a),L.Counters.mechanicProcess<=0){if(w.a.bladeburner instanceof l.a)try{w.a.bladeburner.process(g.b,w.a)}catch(e){Object(D.a)("Exception caught in Bladeburner.process(): "+e)}L.Counters.mechanicProcess=5}L.Counters.contractGeneration<=0&&(Math.random()<=.25&&Object(c.b)(),L.Counters.contractGeneration=3e3)},load:function(e){if(Object(j.a)(),Object(S.b)(e)){O.b.emit(),Object(s.b)(w.a),Object(M.b)(w.a),Object(i.c)(),w.a.reapplyAllSourceFiles(),w.a.hasWseAccount&&Object(T.h)(),L._lastUpdate=(new Date).getTime();const e=w.a.lastUpdate,t=L._lastUpdate-e,a=Math.floor(t/h.a._idleSpeed);let r=0;const o=w.a.moneySourceA.hacking/w.a.playtimeSinceLastAug*t*.75;if(w.a.gainMoney(o,"hacking"),Object(_.b)(),w.a.isWorking)w.a.focus=!0,w.a.workType==h.a.WorkTypeFaction?w.a.workForFaction(a):w.a.workType==h.a.WorkTypeCreateProgram?w.a.createProgramWork(a):w.a.workType==h.a.WorkTypeStudyClass?w.a.takeClass(a):w.a.workType==h.a.WorkTypeCrime?w.a.commitCrime(a):w.a.workType==h.a.WorkTypeCompanyPartTime?w.a.workPartTime(a):w.a.work(a);else for(let e=0;eF.a.emit(G.a.createElement(G.a.Fragment,null,"Offline for ",k,". While you were offline, your scripts generated"," ",G.a.createElement(P.a,{money:o}),", your Hacknet Nodes generated ",u," and you gained"," ",G.a.createElement(I.a,{reputation:r})," reputation divided amongst your factions.")),250)}else Object(s.b)(w.a),L.start(),w.a.init(),Object(C.f)(w.a.getHomeComputer()),Object(u.b)(),Object(p.c)(),Object(i.c)(),Object(v.c)(),Object(M.b)(w.a),Object(k.e)();Object(y.b)()},start:function(){const e=(new Date).getTime();let t=e-L._lastUpdate;const a=t%h.a._idleSpeed;t=Math.floor(t/h.a._idleSpeed),t>0&&(L._lastUpdate=e-a,w.a.lastUpdate=e-a,L.updateGame(t)),window.requestAnimationFrame(L.start)}}},,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return E}));var n=a(0),r=a.n(n),i=a(1354),o=a(1),s=a(46),l=a(32),c=a(126),u=a(154),m=a(93),h=a(310),p=a(2),d=a(581),f=a(108),g=a(8),y=a(456);const b=Object(c.a)(e=>Object(u.a)({root:{backgroundColor:e.colors.backgroundprimary}}));function E(){const e=b(),[t,a]=Object(n.useState)(!1),[c,u]=Object(n.useState)(!1);return Object(n.useEffect)(()=>{const e=setTimeout(()=>{c||a(!0)},2e3);return()=>clearTimeout(e)}),Object(n.useEffect)(()=>{!async function(){await Object(h.b)().then(e=>{try{d.a.load(e)}catch(e){throw Object(y.a)(),u(!0),e}u(!0)}).catch(e=>{console.error(e),d.a.load(""),u(!0)})}()},[]),r.a.createElement(l.a,{className:e.root},c?r.a.createElement(f.a,{terminal:m.a,engine:d.a,player:p.a}):r.a.createElement(s.a,{container:!0,direction:"column",justifyContent:"center",alignItems:"center",style:{minHeight:"100vh"}},r.a.createElement(s.a,{item:!0},r.a.createElement(i.a,{size:150,color:"primary"})),r.a.createElement(s.a,{item:!0},r.a.createElement(o.a,{variant:"h3"},"Loading Bitburner v",g.a.VersionString)),t&&r.a.createElement(s.a,{item:!0},r.a.createElement(o.a,null,"If the game fails to load, consider ",r.a.createElement("a",{href:"?noScripts"},"killing all scripts")))))}},,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";function n(e){function t(e,t,a){return e*t+a}const a=t(e-1,Math.log(51)-Math.log(50),Math.log(51)),n=t(500,Math.exp(a),-25e3);return Math.round(1e4*n)/1e4}function r(e){const t=Math.log((e+25e3)/25500)/Math.log(1.02)+1;return Math.round(1e4*t)/1e4}a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r}))},function(e,t,a){"use strict";function n(e){return"number"==typeof e&&!isNaN(e)}a.d(t,"a",(function(){return n}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(100),r=a(68),i=a(21);class o{constructor(e="",t=0,a=0,i=n.a.LimitBuy,o=r.a.Long){let s=!1;if("number"==typeof t&&"number"==typeof a||(s=!0),(isNaN(t)||isNaN(a))&&(s=!0),"string"!=typeof e&&(s=!0),s)throw new Error("Invalid constructor paramters for Order");this.stockSymbol=e,this.shares=t,this.price=a,this.type=i,this.pos=o}toJSON(){return Object(i.b)("Order",this)}static fromJSON(e){return Object(i.a)(o,e.data)}}i.c.constructors.Order=o},function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(624),r=a(69),i=a(24),o=a(790),s=a(514),l=a(21),c=a(8),u=a(791),m=a(5),h=a(2),p=a(6);function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class f{constructor(){d(this,"storedCycles",0),d(this,"fragments",[])}baseSize(){return u.a.BaseSize+m.a.StaneksGiftExtraSize+h.a.sourceFileLvl(13)}width(){return Math.floor(this.baseSize()/2+1)}height(){return Math.floor(this.baseSize()/2+.6)}charge(e,t,a){t.avgCharge=(t.numCharge*t.avgCharge+a)/(t.numCharge+1),t.numCharge++;const n=i.a["Church of the Machine God"];n.playerReputation+=e.faction_rep_mult*(Math.pow(a,.95)*(n.favor+100))/1e3}inBonus(){return this.storedCycles*c.a._idleSpeed/1e3>1}process(e,t=1){e.hasAugmentation(p.a.StaneksGift1)&&(this.storedCycles+=t,this.storedCycles-=10,this.storedCycles=Math.max(0,this.storedCycles),this.updateMults(e),s.a.emit())}effect(e){let t=e.neighboors().map(e=>this.fragmentAt(e[0],e[1])).filter(e=>!!e);t=t.filter(e=>e.fragment().type===r.b.Booster);let a=1;t=t.filter((e,t,a)=>a.indexOf(e)===t);for(const e of t)a*=e.fragment().power;return Object(o.a)(e.avgCharge,e.numCharge,e.fragment().power,a)}canPlace(e,t,a,r){if(e<0||t<0)return!1;if(e+r.width(a)>this.width())return!1;if(t+r.height(a)>this.height())return!1;if(this.count(r)>=r.limit)return!1;const i=new n.a({x:e,y:t,rotation:a,fragment:r});for(const e of this.fragments)if(e.collide(i))return!1;return!0}place(e,t,a,r){return!!this.canPlace(e,t,a,r)&&(this.fragments.push(new n.a({x:e,y:t,rotation:a,fragment:r})),!0)}findFragment(e,t){return this.fragments.find(a=>a.x===e&&a.y===t)}fragmentAt(e,t){for(const a of this.fragments)if(a.fullAt(e,t))return a}count(e){let t=0;for(const a of this.fragments)a.fragment().id===e.id&&t++;return t}delete(e,t){for(let a=0;a{e.avgCharge=0,e.numCharge=0})}updateMults(e){e.reapplyAllAugmentations(!0),e.reapplyAllSourceFiles();for(const t of this.fragments){const a=t.fragment(),n=this.effect(t);switch(a.type){case r.b.HackingChance:e.hacking_chance_mult*=n;break;case r.b.HackingSpeed:e.hacking_speed_mult*=n;break;case r.b.HackingMoney:e.hacking_money_mult*=n;break;case r.b.HackingGrow:e.hacking_grow_mult*=n;break;case r.b.Hacking:e.hacking_mult*=n,e.hacking_exp_mult*=n;break;case r.b.Strength:e.strength_mult*=n,e.strength_exp_mult*=n;break;case r.b.Defense:e.defense_mult*=n,e.defense_exp_mult*=n;break;case r.b.Dexterity:e.dexterity_mult*=n,e.dexterity_exp_mult*=n;break;case r.b.Agility:e.agility_mult*=n,e.agility_exp_mult*=n;break;case r.b.Charisma:e.charisma_mult*=n,e.charisma_exp_mult*=n;break;case r.b.HacknetMoney:e.hacknet_node_money_mult*=n;break;case r.b.HacknetCost:e.hacknet_node_purchase_cost_mult*=n,e.hacknet_node_ram_cost_mult*=n,e.hacknet_node_core_cost_mult*=n,e.hacknet_node_level_cost_mult*=n;break;case r.b.Rep:e.company_rep_mult*=n,e.faction_rep_mult*=n;break;case r.b.WorkMoney:e.work_money_mult*=n;break;case r.b.Crime:e.crime_success_mult*=n,e.crime_money_mult*=n;break;case r.b.Bladeburner:e.bladeburner_max_stamina_mult*=n,e.bladeburner_stamina_gain_mult*=n,e.bladeburner_analysis_mult*=n,e.bladeburner_success_chance_mult*=n}}e.updateSkillLevels()}prestigeAugmentation(){this.clearCharge()}prestigeSourceFile(){this.clear(),this.storedCycles=0}toJSON(){return Object(l.b)("StaneksGift",this)}static fromJSON(e){return Object(l.a)(f,e.data)}}l.c.constructors.StaneksGift=f},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(221),r=a(21);class i{constructor(e){e?(this.id=e.fragment.id,this.x=e.x,this.y=e.y,this.avgCharge=0,this.numCharge=0,this.rotation=e.rotation):(this.id=-1,this.x=-1,this.y=-1,this.avgCharge=-1,this.numCharge=-1,this.rotation=-1)}collide(e){const t=this.fragment(),a=e.fragment(),n=e.x-this.x,r=e.y-this.y;for(let i=0;i[this.x+e[0],this.y+e[1]])}copy(){const e=Object(n.b)(this.id);if(null===e)throw new Error("ActiveFragment id refers to unknown Fragment.");const t=new i({x:this.x,y:this.y,rotation:this.rotation,fragment:e});return t.avgCharge=this.avgCharge,t.numCharge=this.numCharge,t}toJSON(){return Object(r.b)("ActiveFragment",this)}static fromJSON(e){return Object(r.a)(i,e.data)}}r.c.constructors.ActiveFragment=i},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(9);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class i{constructor(e){r(this,"city",null),r(this,"costMult",0),r(this,"expMult",0),r(this,"name",n.a.Void),r(this,"types",[]),r(this,"techVendorMaxRam",0),r(this,"techVendorMinRam",0),e.city&&(this.city=e.city),e.costMult&&(this.costMult=e.costMult),e.expMult&&(this.expMult=e.expMult),e.infiltrationData&&(this.infiltrationData=e.infiltrationData),e.name&&(this.name=e.name),e.types&&(this.types=e.types),e.techVendorMaxRam&&(this.techVendorMaxRam=e.techVendorMaxRam),e.techVendorMinRam&&(this.techVendorMinRam=e.techVendorMinRam)}}},,,,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return m})),a.d(t,"a",(function(){return h}));var n=a(0),r=a.n(n),i=a(27),o=a(45),s=a(85),l=a(116),c=a(75),u=a(10);const m={All:0,Foreign:1,Owned:2,Purchased:3};function h(e){function t(t){const a=t instanceof o.a&&t.purchasedByPlayer,n=e.serverType;switch(n){case m.All:return!0;case m.Foreign:return"home"!==t.hostname&&!a;case m.Owned:return a||t instanceof s.a||"home"===t.hostname;case m.Purchased:return a||t instanceof s.a;default:return console.warn("Invalid ServerType specified for ServerDropdown component: "+n),!1}}const a=[];for(const e of Object(i.c)())t(e)&&a.push(r.a.createElement(c.a,{key:e.hostname,value:e.hostname},e.hostname));return r.a.createElement(l.a,{startAdornment:r.a.createElement(u.a,{onClick:e.purchase,disabled:!e.canPurchase},"Buy"),sx:{mx:1},value:e.value,onChange:e.onChange},a)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return v}));var n=a(0),r=a(1),i=a(10),o=a(1024),s=a(1026),l=a(1027),c=a(1028),u=a(1029),m=a(1032),h=a(542),p=a(1039),d=a(1040),f=a(48),g=a(13),y=a(119),b=a(27),E=a(541),k=a(29);function v({loc:e}){const t=k.b.Router(),a=k.b.Player();const v=function(){const r=[];return e.types.includes(f.a.Company)&&r.push(n.createElement(o.a,{key:"companylocation",locName:e.name})),e.types.includes(f.a.Gym)&&r.push(n.createElement(s.a,{key:"gymlocation",router:t,loc:e,p:a})),e.types.includes(f.a.Hospital)&&r.push(n.createElement(l.a,{key:"hospitallocation",p:a})),e.types.includes(f.a.Slums)&&r.push(n.createElement(c.a,{key:"slumslocation"})),e.types.includes(f.a.Special)&&r.push(n.createElement(u.a,{key:"speciallocation",loc:e})),e.types.includes(f.a.TechVendor)&&r.push(n.createElement(m.a,{key:"techvendorlocation",loc:e})),e.types.includes(f.a.TravelAgency)&&r.push(n.createElement(h.a,{key:"travelagencylocation",p:a,router:t})),e.types.includes(f.a.University)&&r.push(n.createElement(p.a,{key:"universitylocation",loc:e})),e.types.includes(f.a.Casino)&&r.push(n.createElement(d.a,{key:"casinoLocation",p:a})),r}(),_=Object(b.d)(e.name),w=null!==_&&Object(y.b)(_);return n.createElement(n.Fragment,null,n.createElement(i.a,{onClick:()=>t.toCity()},"Return to World"),n.createElement(r.a,{variant:"h4"},w&&!g.a.DisableTextEffects?n.createElement(E.a,{content:e.name}):e.name),v)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(232),o=a(126),s=a(154),l=a(73);const c=Object(o.a)(()=>Object(s.a)({card:{padding:"10px",border:"solid 1px #808080",backgroundColor:"white",display:"inline-block",borderRadius:"10px",fontSize:"18.5px",textAlign:"center",margin:"3px",fontWeight:"bold"},red:{color:"red"},black:{color:"black"},value:{fontSize:"20px",fontFamily:"sans-serif"}})),u=({card:e,hidden:t})=>{const a=c();let n;switch(e.suit){case i.b.Clubs:n=r.a.createElement("span",null,"♣");break;case i.b.Diamonds:n=r.a.createElement("span",null,"♦");break;case i.b.Hearts:n=r.a.createElement("span",null,"♥");break;case i.b.Spades:n=r.a.createElement("span",null,"♠");break;default:throw new Error("MissingCaseException: "+e.suit)}return r.a.createElement(l.a,{className:`${a.card} ${e.isRedSuit()?a.red:a.black}`},r.a.createElement(r.a.Fragment,null,r.a.createElement("span",{className:a.value},t?" - ":e.formatValue()),r.a.createElement("span",null,t?" - ":n)))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(24),r=a(27);function i(e,t){const a=t.augmentations.slice().filter(e=>"NeuroFlux Governor"!==e);for(const t of a)if(!e.augmentations.some(e=>e.name==t))return!1;return!0}const o=[{title:"Gain root access on CSEC",fulfilled:()=>{const e=Object(r.d)("CSEC");return!(!e||!e.hasOwnProperty("hasAdminRights"))&&e.hasAdminRights}},{title:"Install the backdoor on CSEC",fulfilled:()=>{const e=Object(r.d)("CSEC");return!(!e||!e.hasOwnProperty("backdoorInstalled"))&&e.backdoorInstalled}},{title:"Join the faction hinted at in csec-test.msg",fulfilled:e=>e.factions.includes("CyberSec")},{title:"Install all the Augmentations from CyberSec",fulfilled:e=>i(e,n.a.CyberSec)},{title:"Join the faction hinted at in nitesec-test.msg",fulfilled:e=>e.factions.includes("NiteSec")},{title:"Install all the Augmentations from NiteSec",fulfilled:e=>i(e,n.a.NiteSec)},{title:"Join the faction hinted at in j3.msg",fulfilled:e=>e.factions.includes("The Black Hand")},{title:"Install all the Augmentations from The Black Hand",fulfilled:e=>i(e,n.a["The Black Hand"])},{title:"Join the faction hinted at in 19dfj3l1nd.msg",fulfilled:e=>e.factions.includes("BitRunners")},{title:"Install all the Augmentations from BitRunners",fulfilled:e=>i(e,n.a.BitRunners)},{title:"Complete fl1ght.exe",fulfilled:e=>e.factions.includes("Daedalus")},{title:"Install the special Augmentation from Daedalus",fulfilled:e=>e.augmentations.some(e=>"The Red Pill"==e.name)},{title:"Install the final backdoor and free yourself.",fulfilled:()=>!1}]},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(8);function r(e,t){return e/n.a.DonateMoneyToRepDivisor*t.faction_rep_mult}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(88);const r={longestName:0,longestSymbol:0};for(const e in n.a)r.longestName=Math.max(e.length,r.longestName),r.longestSymbol=Math.max(n.a[e].length,r.longestSymbol)},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(8),r=a(5);function i(e){const t=1e3/n.a._idleSpeed;let a=0,i=0,o=0,s=0,l=0,c=0,u=0;const m=e.hashManager;switch(e.className){case n.a.ClassStudyComputerScience:i=n.a.ClassStudyComputerScienceBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassDataStructures:a=n.a.ClassDataStructuresBaseCost*e.workCostMult/t,i=n.a.ClassDataStructuresBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassNetworks:a=n.a.ClassNetworksBaseCost*e.workCostMult/t,i=n.a.ClassNetworksBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassAlgorithms:a=n.a.ClassAlgorithmsBaseCost*e.workCostMult/t,i=n.a.ClassAlgorithmsBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassManagement:a=n.a.ClassManagementBaseCost*e.workCostMult/t,u=n.a.ClassManagementBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassLeadership:a=n.a.ClassLeadershipBaseCost*e.workCostMult/t,u=n.a.ClassLeadershipBaseExp*e.workExpMult/t*m.getStudyMult();break;case n.a.ClassGymStrength:a=n.a.ClassGymBaseCost*e.workCostMult/t,o=e.workExpMult/t*m.getTrainingMult();break;case n.a.ClassGymDefense:a=n.a.ClassGymBaseCost*e.workCostMult/t,s=e.workExpMult/t*m.getTrainingMult();break;case n.a.ClassGymDexterity:a=n.a.ClassGymBaseCost*e.workCostMult/t,l=e.workExpMult/t*m.getTrainingMult();break;case n.a.ClassGymAgility:a=n.a.ClassGymBaseCost*e.workCostMult/t,c=e.workExpMult/t*m.getTrainingMult();break;default:throw new Error("ERR: Invalid/unrecognized class name")}return{workMoneyLossRate:a,workHackExpGainRate:i*e.hacking_exp_mult*r.a.ClassGymExpGain,workStrExpGainRate:o*e.strength_exp_mult*r.a.ClassGymExpGain,workDefExpGainRate:s*e.defense_exp_mult*r.a.ClassGymExpGain,workDexExpGainRate:l*e.dexterity_exp_mult*r.a.ClassGymExpGain,workAgiExpGainRate:c*e.agility_exp_mult*r.a.ClassGymExpGain,workChaExpGainRate:u*e.charisma_exp_mult*r.a.ClassGymExpGain}}},function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return r}));const n=["Type 'help name' to learn more about the command ","",'alias [-g] [name="value"] Create or display Terminal aliases',"analyze Get information about the current machine ","backdoor Install a backdoor on the current machine ","buy [-l/program] Purchase a program through the Dark Web","cat [file] Display a .msg, .lit, or .txt file","cd [dir] Change to a new directory","check [script] [args...] Print a script's logs to Terminal","clear Clear all text on the terminal ","cls See 'clear' command ","connect [hostname] Connects to a remote server","cp [src] [dst]: Copy a file","download [script/text file] Downloads scripts or text files to your computer","expr [math expression] Evaluate a mathematical expression","free Check the machine's memory (RAM) usage","grow Spoof money in a servers bank account, increasing the amount available.","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","kill [script/pid] [args...] Stops the specified script on the current server ","killall Stops all running scripts on the current machine","ls [dir] [| 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","mv [src] [dest] Move/rename a text or script file","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] [--tail] [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","top Displays all running scripts and their RAM usage","unalias [alias name] Deletes the specified alias","weaken [server] Reduce the security of a server","wget [url] [target file] Retrieves code/text from a web server"],r={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."],backdoor:["backdoor"," ","Install a backdoor on the current machine, grants a secret bonus depending on the machine."," ","Requires root access to run."," "],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 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"],cd:["cd [dir]"," ","Change to the specified directory. Note that this works even for directories that don't exist. If you ","change to a directory that does not exist, it will not be 'created'. Examples:"," ","cd scripts/hacking"," ","cd /logs"," ","cd ../"],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]"," ","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."],cp:["cp [src] [dst]"," ","Copy a file on this server. To copy a file to another server use scp."],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"," "],expr:["expr [mathematical expression]"," ","Evaluate a simple mathematical expression. Supports native JavaScript operators:"," ","+, -, /, *, **, %"," ","Example:"," ","expr 25 * 2 ** 10"," ","Note that letters (non-digits) are not allowed and will be removed from the input."],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."],grow:["grow","","Spoof transactions in the current server. Increasing the money available by hacking. Requires root access.","See the wiki page for hacking mechanics."],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:["homeConnect 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"],kill:["kill [script name] [args...]"," ","kill [pid]"," ","Kill the script specified by the script name and arguments OR by its PID."," ","If you are killing the script using its filename and arguments, then 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"," ","If you are killing the script using its PID, then the PID argument must be numeric"],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 [dir] [| grep pattern]"," ","The ls command, with no arguments, prints all files and directories on the current server's directory to the Terminal screen. ","The files will be displayed in alphabetical order. "," ","The 'dir' optional parameter can be used to display files/directories in another directory."," ","The '| grep pattern' optional parameter can be used to only display files whose filenames match the specified pattern."," ","Examples:"," ","List all files with the '.script' extension in the current directory:"," ","ls | grep .script"," ","List all files with the '.js' extension in the root directory:"," ","ls / | grep .js"," ","List all files with the word 'purchase' in the filename, in the 'scripts' directory:"," ","ls scripts | 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."],mv:["mv [src] [dest]"," ","Move the source file to the specified destination. This can also be used to rename files. ","This command only works for scripts and text files (.txt). This command CANNOT be used to ","convert to different file types"," ","Note that, unlike the Linux 'mv' command, the destination argument must be the ","full filepath. ","Examples: "," ","mv hacking-controller.script scripts/hacking-controller.script"," ","mv myScript.js myOldScript.js"],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"],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'"],weaken:["weaken","","Reduces the security level of the current server. Decreasing the time it takes for all operations on this server.","Requires root access. See the wiki page for hacking mechanics."],wget:["wget [url] [target file]"," ","Retrieves data from a URL and downloads it to a file on the current server. The data can only ","be downloaded to a script (.script, .ns, .js) or a text file (.txt). If the file already exists, ","it will be overwritten by this command."," ","Note that it will not be possible to download data from many websites because they do not allow ","cross-origin resource sharing (CORS). Example:"," ","wget https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md game_readme.txt"]}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return oe}));var n=a(224),r=a(85),i=a(45),o=a(60),s=a(99),l=a(294),c=a(91),u=a(8),m=a(27),h=a(112),p=a(443),d=a(40),f=a(119),g=a(411),y=a(92),b=a(13),E=a(170),k=a(89),v=a(4),_=a(22),w=a(1124),S=a(1125),C=a(1126),x=a(1127),O=a(1128),M=a(1129),T=a(1130),R=a(1131),A=a(1132),P=a(1133),N=a(1136),I=a(1137),F=a(1138),D=a(1139),j=a(1140),B=a(1141),G=a(1142),L=a(1143),W=a(1144),H=a(1145),U=a(1146),q=a(1147),K=a(1148),z=a(1149),$=a(1150),Y=a(1151),V=a(1152),J=a(1155),X=a(1156),Q=a(1157),Z=a(1158),ee=a(1159),te=a(1160),ae=a(1161),ne=a(1162),re=a(1163);function ie(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class oe{constructor(){ie(this,"action",null),ie(this,"commandHistory",[]),ie(this,"commandHistoryIndex",0),ie(this,"outputHistory",[new n.b("Bitburner v"+u.a.VersionString,"primary")]),ie(this,"contractOpen",!1),ie(this,"currDir","/")}process(e,t,a){null!==this.action&&(this.action.timeLeft-=u.a._idleSpeed*a/1e3,this.action.timeLeft<.01&&this.finishAction(e,t,!1),l.b.emit())}append(e){this.outputHistory.push(e),this.outputHistory.length>b.a.MaxTerminalCapacity&&this.outputHistory.splice(0,this.outputHistory.length-b.a.MaxTerminalCapacity),l.b.emit()}print(e){this.append(new n.b(e,"primary"))}printRaw(e){this.append(new n.c(e))}error(e){this.append(new n.b(e,"error"))}success(e){this.append(new n.b(e,"success"))}info(e){this.append(new n.b(e,"info"))}warn(e){this.append(new n.b(e,"warn"))}startHack(e){const t=e.getCurrentServer();if(t instanceof r.a)this.error("Cannot hack this kind of server");else{if(!(t instanceof i.a))throw new Error("server should be normal server");this.startAction(Object(k.d)(t,e)/4,"h")}}startGrow(e){const t=e.getCurrentServer();if(t instanceof r.a)this.error("Cannot hack this kind of server");else{if(!(t instanceof i.a))throw new Error("server should be normal server");this.startAction(Object(k.a)(t,e)/16,"g")}}startWeaken(e){const t=e.getCurrentServer();if(t instanceof r.a)this.error("Cannot hack this kind of server");else{if(!(t instanceof i.a))throw new Error("server should be normal server");this.startAction(Object(k.f)(t,e)/16,"w")}}startBackdoor(e){const t=e.getCurrentServer();if(t instanceof r.a)this.error("Cannot backdoor this kind of server");else{if(!(t instanceof i.a))throw new Error("server should be normal server");this.startAction(Object(k.d)(t,e)/4,"b")}}startAnalyze(){this.print("Analyzing system..."),this.startAction(1,"a")}startAction(e,t){this.action=new n.d(e,t)}finishHack(e,t,a=!1){if(a)return;const n=t.getCurrentServer();if(n instanceof r.a)return void this.error("Cannot hack this kind of server");if(!(n instanceof i.a))throw new Error("server should be normal server");const o=Object(k.b)(n,t),s=Math.random(),l=Object(k.c)(n,t),c=l/4;if(s=n.getMaxNumTries()?(this.error("Contract FAILED - Contract is now self-destructing"),a.removeContract(n)):this.error(`Contract FAILED - ${n.getMaxNumTries()-n.tries} tries remaining`);break;case s.b.Cancelled:default:this.print("Contract cancelled")}this.contractOpen=!1}executeScanAnalyzeCommand(e,t=1,a=!1){this.print("~~~~~~~~~~ Beginning scan-analyze ~~~~~~~~~~"),this.print(" ");const i={};for(const e of Object(m.c)())i[e.hostname]=0;const s=[],l=[0],c=e.getCurrentServer();for(s.push(c);0!=s.length;){const c=s.pop();if(!c)continue;const u=l.pop();if(void 0===u)continue;const m=c instanceof r.a;if(!a&&c.purchasedByPlayer&&"home"!=c.hostname)continue;if(i[c.hostname]||u>t)continue;if(!a&&m)continue;i[c.hostname]=1;for(let e=c.serversOnNetwork.length-1;e>=0;--e){const t=Object(f.a)(c,e);null!==t&&(s.push(t),l.push(u+1))}if(0==u)continue;const h=Array(4*(u-1)+1).join("-");e.hasProgram(o.a.AutoLink.name)?this.append(new n.a(h,c.hostname)):this.print(h+c.hostname);const p=h+"--";let d="NO";c.hasAdminRights&&(d="YES");let g=`${p}Root Access: ${d}${m?"":", Required hacking skill: "+c.requiredHackingSkill}`;c.hasOwnProperty("numOpenPortsRequired")&&(g+="\n"+p+"Number of open ports required to NUKE: "+c.numOpenPortsRequired),g+="\n"+p+"RAM: "+v.a.formatRAM(c.maxRam),g+="\n ",this.print(g)}}connectToServer(e,t){const a=Object(m.d)(t);null!=a?(e.getCurrentServer().isConnectedTo=!1,e.currentServer=a.hostname,e.getCurrentServer().isConnectedTo=!0,this.print("Connected to "+a.hostname),this.setcwd("/"),"darkweb"==e.getCurrentServer().hostname&&Object(p.b)()):this.error("Invalid server. Connection failed.")}executeCommands(e,t,a){a=(a=a.trim()).replace(/\s\s+/g," "),this.commandHistory[this.commandHistory.length-1]!=a&&(this.commandHistory.push(a),this.commandHistory.length>50&&this.commandHistory.splice(0,1)),this.commandHistoryIndex=this.commandHistory.length;const n=Object(g.b)(a);for(let a=0;athis.clear(),cls:()=>this.clear(),connect:R.a,cp:A.a,download:P.a,expr:N.a,free:I.a,grow:F.a,hack:D.a,help:j.a,home:B.a,hostname:G.a,kill:L.a,killall:W.a,ls:H.a,lscpu:U.a,mem:q.a,mv:K.a,nano:z.a,ps:$.a,rm:Y.a,run:V.a,scan:J.a,scp:Q.a,sudov:Z.a,tail:ee.a,top:te.a,unalias:ae.a,weaken:ne.a,wget:re.a}[i.toLowerCase()];o?o(this,e,t,r,n.slice(1)):this.error(`Command ${n[0]} not found`)}getProgressText(){if(null===this.action)throw new Error("trying to get the progress text when there's no action");return Object(E.a)({progress:(this.action.time-this.action.timeLeft)/this.action.time,totalTicks:50})}}},,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(31);function r(e){let t=e;return t.startsWith("[")&&(t=t.slice(1)),t.endsWith("]")&&(t=t.slice(0,-1)),t}function i(e){let t=e;return(t.startsWith('"')||t.startsWith("'"))&&(t=t.slice(1)),(t.endsWith('"')||t.endsWith("'"))&&(t=t.slice(0,-1)),t}function o(e){const t=[];return e.forEach(e=>{let a=e.toString();a=["[",a,"]"].join(""),t.push(a)}),t.join(",").replace(/\s/g,"")}const s=[{desc:e=>["A prime factor is a factor that is a prime number.",`What is the largest prime factor of ${e}?`].join(" "),difficulty:1,gen:()=>Object(n.a)(500,1e9),name:"Find Largest Prime Factor",numTries:10,solver:(e,t)=>{let a=2,n=e;for(;n>(a-1)*(a-1);){for(;n%a==0;)n=Math.round(n/a);++a}return(1===n?a-1:n)===parseInt(t,10)}},{desc:e=>["Given the following integer array, find the contiguous subarray","(containing at least one number) which has the largest sum and return that sum.","'Sum' refers to the sum of all the numbers in the subarray.\n",""+e.toString()].join(" "),difficulty:1,gen:()=>{const e=Object(n.a)(5,40),t=[];t.length=e;for(let a=0;a{const a=e.slice();for(let e=1;e["It is possible write four as a sum in exactly four different ways:\n\n"," 3 + 1\n"," 2 + 2\n"," 2 + 1 + 1\n"," 1 + 1 + 1 + 1\n\n",`How many different ways can the number ${e} be written as a sum of at least`,"two positive integers?"].join(" "),difficulty:1.5,gen:()=>Object(n.a)(8,100),name:"Total Ways to Sum",numTries:10,solver:(e,t)=>{const a=[1];a.length=e+1,a.fill(0,1);for(let t=1;t{let t=["Given the following array of array of numbers representing a 2D matrix,","return the elements of the matrix as an array in spiral order:\n\n"].join(" ");return t+=" [\n",t+=e.map(e=>" ["+e.map(e=>(""+e).padStart(2," ")).join(",")+"]").join("\n"),t+="\n ]\n",t+=["\nHere is an example of what spiral order should be:\n\n"," [\n"," [1, 2, 3]\n"," [4, 5, 6]\n"," [7, 8, 9]\n"," ]\n\n","Answer: [1, 2, 3, 6, 9, 8 ,7, 4, 5]\n\n","Note that the matrix will not always be square:\n\n"," [\n"," [1, 2, 3, 4]\n"," [5, 6, 7, 8]\n"," [9, 10, 11, 12]\n"," ]\n\n","Answer: [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7]"].join(" "),t},difficulty:2,gen:()=>{const e=Object(n.a)(1,15),t=Object(n.a)(1,15),a=[];a.length=e;for(let n=0;n{const a=[];let n=0,i=e.length-1,o=0,s=e[0].length-1,l=0;for(;;){for(let t=o;t<=s;t++)a[l]=e[n][t],++l;if(++n>i)break;for(let t=n;t<=i;t++)a[l]=e[t][s],++l;if(--s=o;t--)a[l]=e[i][t],++l;if(--i=n;t--)a[l]=e[t][o],++l;if(++o>s)break}const c=r(t).replace(/\s/g,"").split(",");for(let e=0;e