Doctor
Members-
Posts
113 -
Joined
-
Last visited
-
Donations
0.00 USD
Doctor's Achievements
-
Running multiple clients simultaneously (multiboxing)
Doctor replied to Huron's topic in Technical Support
@Huron Those screenshots are the first I'm seeing of your app. They look nice. If you want a new feature that is mostly UI work, you can take the data from my and make it into a 3d map in your tool. The actually database has 3-axis data for every roid, so places like Varen's Girdle, or Lagarto, where the roids are vertically spaced out, could be rendered in a 3d box that can rotate. Yes I *could* do this in a browser, but I won't be doing that. I didn't want to learn how. Moreover, because of the nature of your tool, the ability to look up ores and have pre-made lists of where the best places to find them are could tie into your nav and manufacturing tools. The DB tables exist for logging mob data (HP, resists, damage output w/types, drops, etc). The reason I didn't get around to logging mob data was mainly because it was WAY too tedious. I wanted some automated way to capture most of the data, and since they upgraded the client with modern crypto (they say 'we can't modify the client', but they are using modern crypto algos in a DLL they overwrote, so, bullshit) I can't just intercept the packet stream and get it from there. And WW devs put a lot of work into the client to make it difficult/impossible to scan with tools like Cheat Engine. I don't hang out on hacking forums, so I have no ideas how to get around this. Still, the point remains, if you're already parsing through manufacturing terminal data, you might have better ideas for mob logging than I did. I do not know and will not learn C#, so I can't help on the coding side. After learning 13 programming languages...my mind refused to learn another. I got old. :/ -
Join us on Discord! (or TS or other communities)
Doctor replied to Falstar's topic in General Discussion
It was active for a bit when it first launched, but everyone stopped showing up. This emu has been dying for about 10 years. And whether that's the generation that loved it aging out, or bad management, or any number of things in between is up to you. There's also no shortage of stories of people who want to make content/improvements/help, and are continually shut down. So, factor that in as well. -
Ok. So I refactored a lot of the code. There's still some manual changes you're going to need to make and I can't avoid that, but it's GREATLY reduced from what it was. The new zip file is in the main post. The scripts assume you have two Earth & Beyond installs. One 'for logging' and one 'normal'. The 'for logging' is only special in that it only ever runs one copy of the game at a time, whereas the 'normal' is where all your alts are run from. The scripts assume you're going to be playing at 1280x700 for either mining or trade runs. Combat should work at both 1280x700 or 1920x1080. No other resolutions are supported. Other resolutions *can* be supported by updating the literal mountain of static variables with the correct pixel offsets for those resolutions...good luck. Typically takes me around an hour or two to setup a new resolution. There are hotkeys to swap between the two resolutions. Windows key + alt + = for 1920x1080, Windows key + alt + - for 1280x700. Download archive. For my own sanity I'm going to assume you will unzip it to your Documents folder (so C:\Users\<your username>\Documents or /home/<your username>/Documents, depending on which OS you use. the scripts are setup for Linux because I use linux). Open up Documents/autohotkey/earth_and_beyond/FOR_DISTRIB-library.ahk update the variable BOT_PICS_FOLDER, and either set it to be 'C:\Users\<your username>\Documents' (in place of '/FIXME-PATH/TO') Note: If on Windows, you also need to change all the / to \, because Windows and Linux use different path delimiters. Also change ;if (SubStr(BOT_PICS_FOLDER, 0) != "\") ;BOT_PICS_FOLDER .= "\" if (SubStr(BOT_PICS_FOLDER, 0) != "/") BOT_PICS_FOLDER .= "/" To if (SubStr(BOT_PICS_FOLDER, 0) != "\") BOT_PICS_FOLDER .= "\" ;if (SubStr(BOT_PICS_FOLDER, 0) != "/") ; BOT_PICS_FOLDER .= "/" So on Windows I would expect the variable to be: C:\Users\<your username>\Documents\autohotkey\earth_and_beyond\bot_pics\ For every FIXME-account_name / FIXME_YOUR_PASSWORD_HERE, replace them with the actual account name / passwords. I have my scripts log my characters in for me. I have automation in other files (mining.ahk/trade-runs.ahk) which launch whole groups of clients and log in the correct characters based on what I'm doing. So I might log in my TT, TW, TS, PP, PS for trade runs, but my JE, PW, PP, TS, TW, and TT for mining. And my scripts make sure the window layouts and what character is in which screen spot is maintained. Feel free to put the functions back into numerical order. I memorized the hotkeys before I had all 9 accounts, that's why mine are jumbled. It makes more sense for me to (in code) see the races grouped together. But I remember the hotkeys, so it'd bother me if a hotkey logged in the 'wrong' character. You can review the code and see there is no mechanism to transmit usernames and passwords anywhere, if you're nervous about that. It would be a pain to not have it log in, as the login function also sets the window title, and the window titles are used by other scripts to address specific commands to specific windows (mainly used in moving ore from the JE to the mules). You may need to update the GAME_WINDOW_TOP_RIGHT / GAME_WINDOW_LEFT_MONITOR_BOTTOM_RIGHT variables if you are using a different monitor setup than a 'main' monitor in front and 1-2 additional monitors to the right/left. Or if your screens are not 1920x1080, the offsets would need to change. Look for 'Scripts Move client windows' and update the monitor offsets to use for game windows (in case you want to move one window from place to place, these hotkeys allow you move windows around only, without any login operations. FOR_DISTRIB-mining.ahk Look for '/FIXME-PATH/TO/' and replace it just like you did in library.ahk Look for the FIXME and replace with the in-game character names of your ore mules. Clients_to_login <--find that and update it with which accounts have your ore mules and where you want the game windows to be located. The setup currently there assumes 2 monitors, a 'main' monitor in front of you and a 'secondary' monitor to the 'right' of that one. FOR_DISTRIB-trade-runs.ahk Look for '/FIXME-PATH/TO/' and replace it just like you did in library.ahk Clients_to_login <--find that and update it with which accounts have are doing trade runs with and where you want the game windows to be located. The setup currently there assumes 2 monitors, a 'main' monitor in front of you and a 'secondary' monitor to the 'right' of that one. Note: I have not found it possible to juggle more than 5 characters on the FN->NV trade run. You run out of APM (actions per minute, how fast you, the fleshy human, can interact with the game) to juggle more characters than that. FOR_DISTRIB-main.ahk This file is for general combat/'galaxy tour' type gameplay. Look for '/FIXME-PATH/TO/' and replace it just like you did in library.ahk Look for FIXME-TOURCHAR3 and update it to the names of the alts you use for galaxy tours. Ignore if you don't do that. Look for FIXME_name2 and update those names with the names of the alts you typically use for combat missions. I *think* that's all you should have to do. If I missed something, let me know. The reason I have separate files for mining/combat/trade is because it's easier for me to exit one script and launch another to swap what I'm doing than to have everything in one file. I like ctrl + shift + m being my 'launch the clients for this group and log them in' regardless of activity, instead of needing two different hotkeys for each type of group (mining/combat/trade) or a drop-down to select from when I push the hotkey. This should be, more or less, 'unzip, update FIXMEs, launch the ahk script you want, enjoy'.
-
I started on this but ran out of time. You do highlight a valid problem: this is WAY too hard to use. The reason why? Too much customization. Where is net7 installed, what are the character names, what are the window names, where is E&B installed...it makes it a mess to update everything. Also, I tried to make the mining and trade scripts 'standalone', but in my own use, I have a 'library' of enb-related AHK functions. So for me to make them standalone means I need to copy-paste a lot of functions into each. It makes it all a mess. I have ideas for how to fix it, but, for now, what I have time to write is this: Download AHK v1.1 from https://www.autohotkey.com/ Download the zip file from the first post. Extract it somewhere you'll remember. Like Documents/enb_ahk/ For sanity, make an images folder, so Documents/enb_ahk/images and put all the .png files inside of it. Copy-paste the massive code block in that first post into 'enb-mining.ahk' (the name doesn't actually matter, but I need to call it something for the rest of the instructions) Put enb-mining.ahk in Documents/enb_ahk Download the .zip file from https://forum.enb-emulator.com/index.php?/topic/12050-ahk-and-multiboxing/page/2/#comment-106155 Unzip it to Documents/enb_ahk as well Move the images into Documents/enb_ahk/images/ Open up FOR_DISTRO_fn_nv_enb_trade_run.ahk in a text editor Find the "Scripts Restore and Login clients" section and copy-paste the whole thing into enb-mining.ahk Find "Scripts Move client windows" (it's just below the block above) and also copy it into enb-mining.ahk ....fucking damnit I ran out of time. You'll need to kit-bash the two files together. Or wait for me to have more time to make a more proper release, which might be a week+ ---This bit below here is to be ignored I don't have a readme, but I can at least get you most, but probably not all, of the steps. This should get you close and make it so there's only a few things to figure out. *starts writing* ...wow I could have made this easier. In my defense, I was not mentally well at the time and it shows. I'm better now, but...sheesh. Download AHK v1.1 from https://www.autohotkey.com/ Download the zip file from the first post. Extract it somewhere you'll remember. Like Documents/enb_ahk/ For sanity, make an images folder, so Documents/enb_ahk/images and put all the .png files inside of it. Download the .zip file from https://forum.enb-emulator.com/index.php?/topic/12050-ahk-and-multiboxing/page/2/#comment-106155 Unzip it to Documents/enb_ahk as well Move the images into Documents/enb_ahk/images/ Open up FOR_DISTRO_fn_nv_enb_trade_run.ahk in a text editor Search for the string "Scripts Restore and Login clients" Edit the account details there with your actual usernames/passwords for each character. This file nor its contents never leaves your machine (except being typed in to the client). You could *technically* skip this step if it makes you queasy / you only plan to run one character. Search for "FIXME - replace with actual character names." If you only plan to mine solo, you can skip this step. Replace char1, char2, etc with the actual character(s) you plan to mine with. Remove the "msgbox, FIXME" line when you've updated this. Search for "FIXME - Your actual path to Net7 launcher" Change "C:\yourPathTo\Net-7\" to the actual location of the net7 folder on your system (normally Program Files (x86)/Net-7) "Msgbox, FIXME - Your actual path to Net7 launcher" line when updated Update the path for the net-7 launcher just below that "Msgbox, FIXME - Your actual path to Net7 launcher EXE" Update: Run, "C:\yourPathTo\Net-7\bin\LaunchNet7.exe", "C:\Program Files (x86)\Net-7\" if Net-7 ISN'T under Program Files (x86) then you'll need to update that s well. Find "FIXME - Your actual path to EnB's login.ini" Update "C:\yourPathTo\Earth & Beyond\Data\client\output\login.ini" to the actual login.ini for your client. Normally Program Files (x86)/EA Games/Earth & Beyond... Remove the msgbox line when done ...it is at this point I had to stop and go do something IRL. So....the reason this is so complex is because people don't install their stuff to one spot, and put their files in different places. An installer or some sort of wrapper to set paths would be a dream for this. But basically what you're doing is putting two scripts together.
-
Join us on Discord! (or TS or other communities)
Doctor replied to Falstar's topic in General Discussion
https://discord.gg/rT6FUj9G <--official server run by Kyp (only one public channel, mainly used for dev work apparently, valid for 7 days from this post) https://discord.gg/NFhgwAPnVA <--Unofficial discord, far more active, more channels. Link claims to be perma -
Like many of you, Earth & Beyond meant a lot to me. Some of you have wounds, physical and/or emotional, that are severe enough to understand where I'm coming from. I needed therapy for decades. I finally found a form of therapy that worked in 2022, I think. I actually don't remember the year anymore, it isn't relevant. For a long list of reasons I won't get into, I never learned to grieve. 20 years of pent up emotion came pouring out over 4 hours. That event made it possible for me to heal. Psychedelic therapy was the key, for those who might need to get the same treatment I did. I quit my job 2023. I said I was retired. In truth I was just sick. Emotionally, mentally, all of it. I had enough money that I never needed to work again. I plodded along, slowly decompressing from years of neglect. This year, 2025, has been a year of healing for me. I found a therapist that worked. I started to find and name core wounds that I had known for years, but could never exactly see or define. I began to keep a journal, more like a web, of what happened to me, when, why, how. What stories were interconnected. Just so I could offload the mental pressure of keeping so much in my head. I made my map and more or less dipped. Part of that was building a new PC, moving to Linux, and not really wanting to get all my scripts working again on Linux. Part of that was a constant problem of 'why'. What goal, what purpose, what reason? Tonight I finally have an answer. I was never asking for ego stroking. I was asking for moral acknowledgement of labor, competence, and authorship. Time and time again (see list at bottom) I would: Identify a real structural problem. Invest serious time, thought, and skill. Produce something objectively better. People use it. Authority would refuse to: credit me empower me allow my work to stand unaltered. They then reassert control by degrading or reworking it—even when that makes things worse. Shield Sap + Shield Nova worked when I wrote those skills. Someone else broke that. The wiki is...not how I would do it. The amount of visual space lost to over-use of templates is something I complained to Code about many times, but I cannot keep up with his rate of editing, and got tired of fighting. I offered my improvements to the Account Vault page free of license. Literally drop in the code and go. Instead we get this esoteric search bar? Brother what? Checkboxes are so much faster and cleaner. (and so, SO, many more examples from my career, school life, and...everywhere else) That last step isn't neglect or incompetence. It is status defense. Or ego defense. I threatened the hierarchy by being right. This loop didn't happen here, on this forum. It happened at work, in the job I loved most of all. Leading to me being laid off rather than a manager having to let go his 'star employees' I outworked 6:1. It happened at most of the jobs i ever had. It happened at school It happened in my home, from my parents. It happened where I volunteered "If it keeps happening, you must be the problem". Yes, but not in the way you're thinking. I did allow it to happen due to other injuries I am still working to find and address. But at least, today, I can see the problem. In everything I did (not just here, at work, at home, everywhere) there is a pattern: I gave freely I asked for very little in return Even that little was denied My generosity was treated as a resource to be exploited, not a relationship to be honored In me, this created a wound: "Excellence makes me unsafe." Since 2017 I've seen myself get worse and worse. Slower to code, less creative, less...everything. My nervous system learned that excellence makes me unsafe. I learned to be worse in order to be safe. At a level below conscious thought. What should be reality instead is “If I give in good faith, I should not be punished for being competent.” This post is me speaking my truth. It will be mirrored to my substack if taken down, altered, or mutilated. I do not expect anything to change. My deepest hope is that someone hurting can read this and it help them heal too, however indirectly. Being lied to nearly ended my life in my teenage years. Truth is life, in the most real sense, to me. "So why say it?" Because it needs to be said. It must exist. By speaking this truth, I can move on. "How do you move a mountain? One stone at a time." This is one more stone out of my mountain. My attempts to earn value Skills. The reason Shield Nova, Shield Sap, Combat Trance, Critical Targeting, and many of the skills are in the game are because I wrote them, all the way back in 2009. The wiki I and Kingdud are the same person. I made this account after Kingdud quit the emulator/the wiki got taken away from me as a way to have an account that wouldn't get banned if Kingdud ever did. I no longer care. The rules about name changes and not being allowed to have 'King' in a name are most certainly aimed squarely at me. This account is, after all, a title, 'doctor'. I'm not a fool. I know when a gun is pointed at me. For those unaware. Kingdud, I, petitioned to get a wiki created. I contributed a tremendous amount of the original content as Kingdud, and even more as Doctor. Code and others have contributed more than I ever did. Finding 'the best' way to earn trade XP in every scenario. https://net7wiki.bmsite.net/index.php?title=Trade_Routes 'Why is the wiki so damn slow' A long list of bugs / QoL showing how much I care about details Manual steps for installing on Linux, in case Code's script ever brakes and the actual steps are needed. https://forum.enb-emulator.com/index.php?/topic/66-linuxmaybe-macwine-install-guide/&do=findComment&comment=107357 Fully automating (one button per client per sector) the FN->NV trade route (best XP in the game) https://forum.enb-emulator.com/index.php?/topic/12050-ahk-and-multiboxing/page/2/#comment-106155 AHK scripts to make fleet mining easier / faster Various filters for the Account Vault page My Mining Map tool In a world where status defense was not in play, the client/proxy would be modified to allow for thottbot style logging. I could make my map include mob locations, mob drops, mob spawn times, and I could aggregate that across all players running a client. I could create wowhead or thottbot for E&B. I could create a web page, linked with the account vaults, to allow people to buy and sell ores, equipment, everything. With transfers happening on the backend automatically. The excuse has always been this would 'decrease player interaction' but, honestly, everyone has done everything themselves for years at this point. Someone making a piece of gear for you is the exception, not the rule, and usually only happens due to a very low drop rate or unknown source. Instead, I think I'm going to shake the dust off my sandals and go. I acted with honor and integrity. I gave generously. I did the best that I could and was not received. If I ever come back and have to start over, so be it. There is something deeply peaceful about mining (at least in my memory), and sitting in space. I just wish there was a point to it all. For those thinking "There is", you aren't wrong. It's just a different part of my damage.
-
I will only argue this point once, but 'do not quote the deep magics to me, I was there when they were written'. This game IS balanced around 200% equipment. Even at level 2. Because I remember the old HP and shield values of mobs in Mars Alpha/Beta. And the values at low levels are almost 3x what they should be. This was done because, in the EMU, getting 200% gear was far, far easier than it was back in live, and the powers that be decided it would be 'too easy' without that over-tuning. You are welcome to think I don't know what I'm saying, or that I am wrong, that is your right in free will. But that belief will never bend reality to agree with you.
-
Aragoth Prime Satellite Communication Node 2 21 & 22 Wayward Drone & Wayward Satellite. Appx move speed 190. Appx range 1.3k. Proximity Aggresive w/ scan range of about 2.5k. Very easy to kite mid-lvl target with only ~1200 combined HP. Plasma dmg is effective. Energy deflect is optional. Recommended for CL 12 to 24. https://net7wiki.bmsite.net/index.php?title=Mob_Farming_Spots Just FYI that the wiki exists and has a page for this. Wayward drones/sats are EASILY the best way to lvl at that point because they have like 1/5th the HP of any other CL 20 mob. Those 'low HP mobs' stop after CL20, at least AFAIK. But enjoy it while it's there. If you're using Nullfactor field during combat, stop. Unless you're in a gravity shear it costs you power to run it. Combat is balanced around having 200% everything. So with anything less than that, it's going to be hard. And for a TS, you might want to make and level a PW alt purely for the firepower. Play the PW and TS together. Almost nobody is going to have a CL20 alt to help you, sadly.
-
All that really says is that a page fault happened. I'm not smart enough to explain why and my chatGPT credits are spent for the day. ^^ I wrote that a while back as an instruction set for how to do a manual install of E&B in Wine. It's not an easy to run script, but it might get you up and running while others debug. Worth a shot, eh? Edit: Oh, from my own instructions, try changing your Wine profile from Windows 10 (what it is now) to Windows XP 32-bit. That might solve the problem.
-
Solo play isn't really fun. The mobs at all levels are tuned with the assumption that you have 200% quality of the best equipment. Even at CL5. That said, a JD or TE are going to be the best choices for combat. PWs tend to get overwhelmed, even with low-sig engines. JDs become fun once you get combat cloak, which shouldn't be too hard if you get someone to give you a tour of the galaxy or two, which should get you above EL25. TEs are very slow, but their ability to kite means you don't have to worry about being overwhelmed, you can just fly away. For exploration, the problem with doing it solo is the ore field sizes. Someone is hosting the map tool I made at https://enb2.barfieldmv.eu/ (poke poke @Barfield, get the updated version that has zooming from the thread) Outside of a few specific gas fields, they have 2-5x as many mineral types as you have cargo slots. So you'll either be cherry picking, or constantly going back and forth to dock and offload without a set of mules to carry around. Map Usage On that map I linked, click on a sector, then click on "display ore list" and you'll see how many cargo slots are needed to mine out the sector. ABA, for example, takes 102 slots. Sure, if you focus on level 7 you can get away with 26 slots (since tech 5/6/7 all spawn in the same field, maybe even some 4, which would push it past 26). Also, if you click on a specific ore, it will blink the asteroids in that sector which have that mineral, letting you know what field(s) to focus on. You can also search ('Find Ore') for a specific ore, get a list of what sectors have that ore and in what quantity, clicking on a sector from that list will highlight what field(s) have that ore in that sector. Back to solo exploration Most field guardians are immune to fear, so PS menace is basically useless. Power Down tends to work, but the mobs regen faster than you, so it's not super helpful. JEs are good at 'ambush mining' where they configure for instant warp and bounce from rock to rock faster than most mobs can pursue. They also (due to ship design?) tend to land much closer to rocks than PS/TS, so they can warp-mine faster. Cloak can help you escape a fight you don't want. JEs can't really kill anything with 3 weapons though. They can, but it takes FOREVER. TS is super helpful in groups thanks to Nullfactor Field. It lets you mine a few fields that are inside gravity wells or shears. Missiles let you kite away, negotiate lets you get a bit more trade XP from your minerals / refine with better profit margins. But because the TS is limited to level 8 reactors it is going to be seriously power limited when trying to mine level 8/9 ores. Even with the best reactor/boosts/buffs, it's going to be far behind what a JE can do. Martyr's Heart is extremely helpful / borderline required on a TS. It converts shield energy to reactor power, enough to instantly refill your reactor. It's even better on a JE though. So...long story short, almost everyone multiboxes because playing solo is annoying. Even if it is just parking a TT at the gate, or having them fly with you as a shield recharge button. That said, a group of 5-6 TTs is actually fairly combat effective, purely because that many missiles tend to 1-3 volley burn down enemies.
-
FYI, posted a new .7z file to the original post. It contains the same better_map.db (the database itself of all roids/navs/etc) as the 4_28 attachment it replaced. So if your DB has newer data than that release, be sure NOT to overwrite your db with the one in that zip file. Only two files changed: map_script.js and mapstyle.css. What got changed? You can now zoom and pan the map. Mouse wheel up/down to zoom in and out, click and drag to pan around. Ctrl + 0 to reset it back to default. Note: If you have your mouse over a nav point the zoom/drag won't work. Just move it to any blank area of the map to zoom/drag instead. This has to do with how HTML events are handled and I can't have the nav names light up on mouseover if I make it so click and drag/zoom works even on top of them. This is a limitation of HTML. If you want to see what I mean, open the HTML inspector and modify either the map_label or map_overlay_element classes to have pointer-events: none. You'll be able to zoom/pan when your mouse is anywhere, but names will no longer light up when you mouse over them. As for why the file is smaller? I manually set maximum compression level vs default. :p And I'm sorry for not adding this sooner.
-
In the launcher, there's a checkbox for "Prototype Reorder" that has to be on or you get the effects you see. It should be a default, but I guess they lost the source code to the launcher? I can't think of another reason why they don't make it a default seeing as it's required to play for more than 30 minutes at this point.
-
I only missed maybe 5 fields? I'll call that a pretty solid win. FWIW, I did try to map out ceres, but the fields are so large (50KM vertically, 100s of KM horizontally) that, combined with their respawn speed, I don't think I can mine them out alone. I think it will take at least 2 people working together to really get a full clear. Same with Lagarto. The data I have on those fields near Pax Decima are a 'best effort'. But between the mobs, the respawn rate, and the size...it would take more than one person to do a particularly good job.You'd almost need a JD to sit somewhere static with level 7 scan (they get lvl 7 scan, right?) helping extend sensor range just to make sure an area is clean before moving forward, and also to serve as kind of a virtual 'cleared line'. If the BBW field is the one I'm thinking of, it's where the controller raid spawns, and I kept not finding it both spawned and someone NOT engaging the controller. So...never got around to mining that one. Note for anyone who feels hacker-ish: The Z-height data is actually stored in the database for every asteroid. So if you know how to make a 3d object you can actually render the sectors as 3d maps (like Google Earth). The data is there, I just didn't feel like learning how to display a 3d map + deal with all the control issues. I *learned* Javascript for this project.
-
Ensuring enb is around for the long term
Doctor replied to Xiaolinmantis's topic in General Discussion
Just chiming in to say that a TCP/UDP mix is probably best. TCP for chat, loot messages, XP gain events, buff gains are all good. UDP is a better fit for things like damage numbers, shield/hull HP updates, reactor updates, toggling weapons, etc. Why? TCP knows what order things are supposed to happen in. You do NOT want a player spamming their fire button to be held up while TCP waits for a reactor update that's going to take 20 seconds to run its way around the world due to some fluke of core network routing. TCP creates two problems in 'realtime' systems: 1. You get old data in 'new time'. Meaning you can get an old update that is no longer relevant. (caused by #2) 2. You are blocked on processing new data until that old data arrives. All modern MMOs use this mixed approach and have for decades for these exact reasons. Also, IIRC, Westwood and Blizzard both tried TCP-only and both realized you HAD to use UDP for realtime updates and build a state machine that could handle it. -
I can't see the photo you attached (either the forums lost it or something else happened). Make sure Prototype Re-order is enabled in the launcher.
