• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 14:10
CEST 20:10
KST 03:10
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro24 Preview Pt2: News Flash8[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy15ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20
Community News
Weekly Cups (March 23-29): herO takes triple6Aligulac acquired by REPLAYMAN.com/Stego Research7Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool49Weekly Cups (March 9-15): herO, Clem, ByuN win4
StarCraft 2
General
Team Liquid Map Contest #22 - Presented by Monster Energy Aligulac acquired by REPLAYMAN.com/Stego Research Weekly Cups (March 23-29): herO takes triple What mix of new & old maps do you want in the next ladder pool? (SC2) herO wins SC2 All-Star Invitational
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL Season 4 announced for March-April StarCraft Evolution League (SC Evo Biweekly) WardiTV Mondays World University TeamLeague (500$+) | Signups Open
Strategy
Custom Maps
[M] (2) Frigid Storage Publishing has been re-enabled! [Feb 24th 2026]
External Content
Mutation # 519 Inner Power The PondCast: SC2 News & Results Mutation # 518 Radiation Zone Mutation # 517 Distant Threat
Brood War
General
ASL21 General Discussion A cwal.gg Extension - Easily keep track of anyone Behind the scenes footage of ASL21 Group E BW General Discussion BGH Auto Balance -> http://bghmmr.eu/
Tourneys
Azhi's Colosseum - Foreign KCM [ASL21] Ro24 Group F [ASL21] Ro24 Group E 🌍 Weekly Foreign Showmatches
Strategy
Fighting Spirit mining rates What's the deal with APM & what's its true value Simple Questions, Simple Answers
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Starcraft Tabletop Miniature Game General RTS Discussion Thread Darkest Dungeon
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
Things Aren’t Peaceful in Palestine US Politics Mega-thread Canadian Politics Mega-thread The Games Industry And ATVI European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion Cricket [SPORT] Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Funny Nicknames
LUCKY_NOOB
Money Laundering In Video Ga…
TrAiDoS
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1666 users

My Motivation behind OpenBW

Blogs > imp42
Post a Reply
imp42
Profile Blog Joined November 2010
398 Posts
January 08 2017 15:01 GMT
#1
My Motivation behind OpenBW

It is time to write a couple words about the OpenBW initiative. After a short introduction describing what it is, I will give two motivations that led me to work on OpenBW. The first motivation is technical, the second motivation is ideological. If you are not into technical stuff, feel free to jump directly to the ideological motivation section.

Introduction

In short, OpenBW is an open-source and free recreation of Brood War. Our vision statement reads:

OpenBW aims at bringing the greatest game of all time to a new generation of gamers and developers, at a higher level than ever seen before. While OpenBW contains a new game engine, it is fully compatible with Brood War by Blizzard.

OpenBW is developed entirely by us. We own the copyrights of our work and we do not violate copyrights of other parties. In particular, OpenBW does not contain any IP (intellectual property) owned by Blizzard.

Although the entire project is a volunteering effort by unpaid contributors the team and project setup matches professional equivalents and we set high standards of quality. In our view, this is the key to our success and acceptance by you.


Everything in OpenBW revolves around the game engine, which we call the “core engine”. It is written entirely by the one and only tscmoo. But OpenBW is much more than that. The project started with three additional modules, called “BW HD”, “Replay Viewer”, and “BW AI”.

As the names suggest, the “BW HD” module brings a beautiful HD version to the community. The “Replay Viewer” module lets you watch replays in your browser, with all the functionality you would expect from a modern tool. And the “BW AI” module aims at facilitating development of AI bots.

See also: http://www.openbw.com/project/

Even these four modules are just the start. The limits are really only given by the imagination of the community. It goes nearly without saying that our goal is a fully compatible game client and I am also secretly working on a tournament module (well, not so secret anymore now :p ).

Technical Motivation

After working on my bot for about three months, as documented in this blog, I hit a wall. My bot did reasonably well in the “marines only” version of the game (only units allowed are SCVs, marines, command center, barracks, supply depot). The bot could expand and produce as many marines as possible given its income. It could predict the size of the enemy army accurately based on mathematics. It scouted decently and had a very rough idea of more important and less important regions of the map.

But how would I ever be able to teach it the concept of blocking a ramp for defense? Or the concept of flanking? All micro operations it uses are “hard-coded”. That is, I wrote code explicitly to set up an arc, pull back weak units, etc. However, I am in it for the AI part. It is not my goal to create a good bot by hard-coding its behavior. The Facebook research group seems to have spent considerable time with only limited success in an attempt to machine-learn such micro.

Up to now applying machine learning and training neural nets was cumbersome. Development is limited to windows, because the original Brood War is required to run. Running several instances on the same machine is error prone. A lot of valuable time is lost to create and start a game. This overhead becomes substantial when playing thousands of games. Reading values from a memory print via BWAPI is not as robust as I would wish.

BWAPI is without doubt the best thing that ever happened to bot developers and amazing by itself. But it is time to take the next step and overcome the limitations that are currently holding us back.

- Run everything on Windows or Linux (or MacOS)
- Run as many instances in parallel as you wish
- Execute only the code necessary to machine-learn the specific part you’re interested in
- Programmatically set game states
- etc.

The “BW AI” module aims at solving those issues and giving more powerful tools to the community of bot developers by using the OpenBW core engine instead of the original BW.

Ideological Motivation

To many of us StarCraft is special. It is more than just a game. It has been an important part in our life and holds a special place in our heart. I must admit I had not touched Brood War in years when SC2 came out. I was very busy with my own company, often working insane hours (literally) and exploring my personal limits regarding (lack of) sleep, performance, leadership, etc.

A few weeks after SC2 was released I was sucked back into the StarCraft universe. The memories came back and I was hooked again. The WoL era was a blast, playing tons of games with friends. Then HotS arrived. Obviously I immediately bought the expansion, clicking that login button relentlessly until I could finally enter bnet the night it launched. I continued to play, observing the whole patching process and the work of the SC2 design team. But I felt more and more uncomfortable. Then, one day I woke up and the passion for SC2 was gone, just like that. It was like waking up from a dream. The moment you realize it wasn’t real and you are disappointed. I imagine this was the time when I fully realized how devastating it can be when commercial interests of a profit-oriented company clash with the interests of a community of enthusiasts.

I had been reading a lot about psychology at the time. How the brain works, reward mechanisms, perception, non-verbal communication, etc. Right from the start I saw how design decisions were taken to accommodate the average or new player, with the goal of ultimately increasing sales (hey, you could be ranked number 1 in your gold league division now!). But now I could, at least I thought I could, also see when casters and streamers talked positively about the game and hyped it without actually meaning it. Their words said one thing but their non-verbal communication another. I figured they were paid by Blizzard. An insight I could live with, telling myself I’m probably a couple of years older than their target audience and such attempts of influencing customers are common nowadays. But when I fully understood it was Blizzard who killed off Brood War just to push SC2 in Korea, that’s when the last bit of trust and hope was irreversibly lost. This move to me is exemplary of how monetary interests are prioritized above all others. Ready to sacrifice EVERYTHING for the extra buck.

Luckily, regarding Blizzards interventions at SC2, I can now fully identify with the following statement, which was given as a response to the latest “Community Feedback Update”:
On January 07 2017 10:22 Parcelleus wrote:
oh thats right I dont play LOTV, so whatever man, do what you want.

However, statements like this still hurt:
On January 07 2017 21:18 Strelok wrote:
Usually, when i see Community feedback updates made by David Kim - i feel happy about my decision to quit progaming.


I bought LOTV. Not sure why. Nostalgia? Loyalty? Anyways, I never touched it.

My true love is Brood War. I am sorry I cheated on you. The affair I was having with SC2 was a mistake, she means nothing to me. I pledge to make it up by protecting you, taking care of you, and doing everything in my power such that you thrive and relive past glory.

Through OpenBW we as a community take control. It’s a FEBE project: for enthusiasts by enthusiasts. Whether we are 300 or 300’000 doesn’t matter much to me. As long as I can watch good games, maybe occasionally try my rusty fingers at a game myself, and enjoy what I do without anybody enforcing anything upon me just for $$$ I will be happy and see a bright future.

Disclaimer:
This is my personal view. I do not represent the views of any other members contributing to OpenBW. I just wanted to give some personal insight on why I decided to do what I do.

*****
50 pts Copper League
YokoKano
Profile Blog Joined July 2012
United States612 Posts
January 08 2017 15:17 GMT
#2
ya I need to learn more about ur projectz. I am pretty interested in ur channel bot and tha heat mapz. Ima make a heat map 2 1 day. u should check out sc2mapster.com if u rly think sc2 is that bad. tbh DrSuperEvil & some other made some cool stuff if u check out the Project Workpace section u can see they got electronic creep n' shit.

electronic creep would look badass w/ heat map just my opinion tho
IQ 155.905638752
noname_
Profile Blog Joined April 2007
466 Posts
January 08 2017 15:37 GMT
#3
I honestly have to tell you I was quite skeptical about this project: I couldn`t put it anywhere in my mind. With your reasoning now it all makes sense. I wish you good luck and success!
imp42
Profile Blog Joined November 2010
398 Posts
Last Edited: 2017-01-08 16:03:39
January 08 2017 16:00 GMT
#4
On January 09 2017 00:17 YokoKano wrote:
ya I need to learn more about ur projectz. I am pretty interested in ur channel bot and tha heat mapz. Ima make a heat map 2 1 day. u should check out sc2mapster.com if u rly think sc2 is that bad. tbh DrSuperEvil & some other made some cool stuff if u check out the Project Workpace section u can see they got electronic creep n' shit.

electronic creep would look badass w/ heat map just my opinion tho


It's not that SC2 is bad per se. And projects like sc2mapsters are awesome. I am just disappointed by how things are handled by Blizz. Many of us are in their twenties and thirties. No need to threat us like a group of 12 year olds. Also Blizz gets a lot of value out of the community and all the countless hours of effort put into the game for free. I dont feel this is appreciated enough, although they do pretend to care.

Personally I dont want to be just another volunteering resource ready to be exploited monetarily by a profit hungry company while I get absolutely no say or influence on the future development of the game. Such a deal is a tad too one-sided for me.
50 pts Copper League
YokoKano
Profile Blog Joined July 2012
United States612 Posts
January 08 2017 19:27 GMT
#5
On January 09 2017 01:00 imp42 wrote:
Show nested quote +
On January 09 2017 00:17 YokoKano wrote:
ya I need to learn more about ur projectz. I am pretty interested in ur channel bot and tha heat mapz. Ima make a heat map 2 1 day. u should check out sc2mapster.com if u rly think sc2 is that bad. tbh DrSuperEvil & some other made some cool stuff if u check out the Project Workpace section u can see they got electronic creep n' shit.

electronic creep would look badass w/ heat map just my opinion tho


It's not that SC2 is bad per se. And projects like sc2mapsters are awesome. I am just disappointed by how things are handled by Blizz. Many of us are in their twenties and thirties. No need to threat us like a group of 12 year olds. Also Blizz gets a lot of value out of the community and all the countless hours of effort put into the game for free. I dont feel this is appreciated enough, although they do pretend to care.

Personally I dont want to be just another volunteering resource ready to be exploited monetarily by a profit hungry company while I get absolutely no say or influence on the future development of the game. Such a deal is a tad too one-sided for me.


yeah but you'll see how often people will just spam out some brilliant idea and then a few lines of code r missing. i dunno how many people work for blizz but i think it's not that many. there's always that one guy like "the mutalisk micro guy" who takes his work home with him, builds a million side projects and just leaves them in the editor. i'm studying the sc2 editor and there's tons of stuff from unit tex and rotators to entire editors like "text editor, cinematic editor, interface editor" that seem unrelated and partially incomplete (text editor example). blizz just leaves that stuff. i don't think they're disinterested in the fanbase but i get the impression that they're real one-track like top streamers and there just aren't enough manhours to alter projects until decades later.
IQ 155.905638752
Fealthas
Profile Joined May 2011
607 Posts
January 08 2017 21:14 GMT
#6
This is seriously awesome. I hope it grains traction/momentum.
B-royal
Profile Joined May 2015
Belgium1330 Posts
Last Edited: 2017-01-08 22:18:15
January 08 2017 22:16 GMT
#7
Great post imp42. So if I understood it correctly, you are currently working on 2 + Show Spoiler +
3
modules of the openBW project, BW AI and the replay viewer?

With almost zero previous coding experience, I recently dabbled in some javascript coding. The experience made me appreciate projects like this considerably more.

I still look forward to your periodical blog posts about your bot development and really hope you'll continue working on it, even if that means finishing the BW AI module first.
new BW-player (~E rank fish) twitch.tv/crispydrone || What plays 500 games a season but can't get better? => http://imgur.com/a/pLzf9 <= ||
imp42
Profile Blog Joined November 2010
398 Posts
January 09 2017 20:40 GMT
#8
On January 09 2017 07:16 B-royal wrote:
Great post imp42. So if I understood it correctly, you are currently working on 2 + Show Spoiler +
3
modules of the openBW project, BW AI and the replay viewer?

With almost zero previous coding experience, I recently dabbled in some javascript coding. The experience made me appreciate projects like this considerably more.

I still look forward to your periodical blog posts about your bot development and really hope you'll continue working on it, even if that means finishing the BW AI module first.

thanks B-royal.
Yes, I'm mostly working on those two (3) modules. For the replay viewer I just do the overlay parts though (info bar, info tab, ...). tscmoo is in charge of the rest. Also, quuad is taking over the BW HD lead, which is great news. This will be announced soon separately.
50 pts Copper League
awerti
Profile Blog Joined February 2011
227 Posts
Last Edited: 2017-01-10 19:46:12
January 10 2017 17:36 GMT
#9
OpenBW is developed entirely by us. We own the copyrights of our work and we do not violate copyrights of other parties. In particular, OpenBW does not contain any IP (intellectual property) owned by Blizzard.


Could you be more specific about that? Do you think that Blizzard will let this project be if it gains considerable publicity? I'm a programmer (websites, full stack), and not a lawyer, so I don't really understand how you can recreate a game without violating IP rights of Blizzard. Are there precedents, old games remade by fans/enthusiasts that were allowed to exist? And I understand that you will are not using any assets of regular BW. I just think that a good lawyer hired by Blizzard would find a way to stop OpenBW.

Edit: Your FAQ answers that I guess, www.openbw.com

And I do appreciate your effort, I do. I've tried the replay viewer, it's nifty. And BW:HD is what most BW fans have dreamed about - higher quality sprites, while engine stays the same.

What I am confused about is how well currently active BW projects fit together.
Iccup server has been around for a long time and it has been the only shelter for foreigner community for years. There is Fish server, sure, but it's only suitable for less than 10% of BW players because of the skill difference. And hacker plagued Blizzard servers don't count...
Shield battery is looking to recreate the ladder system.
OpenBW is looking to do the same (tournament module?). Or does it not include ladder?

Different projects, goals and approaches, I know. I just wish there would as small of an overlap as possible. If both SB and OpenBW are successful, foreign BW will have 3 different platforms and a somewhat fragmented player base.

And some questions that are probably stupid:
1. It will never be possible for someone with regular BW to play someone running OpenBW, right?
2. Will regular SC:BW maps be compatible with OpenBW? I guess they would have to be ported by some tool?
3. Screen resolution. Do you plan to offer a 4:3 mode with same amount of content per screen as regular BW? Or will everything be smaller on the screen and more of the map will fit in? Fitting more stuff into the screen would actually be an imbalance on many maps. Having your main and natural base in your view is an advantage.
And a 4:3 retro mode would be a good selling point to BW fans I think.

Anyway, that's all from me, I appreciate the effort and I look forward to updates
For Aiur!
imp42
Profile Blog Joined November 2010
398 Posts
January 10 2017 19:49 GMT
#10
On January 11 2017 02:36 awerti wrote:
Show nested quote +
OpenBW is developed entirely by us. We own the copyrights of our work and we do not violate copyrights of other parties. In particular, OpenBW does not contain any IP (intellectual property) owned by Blizzard.


Could you be more specific about that? Do you think that Blizzard will let this project be if it gains considerable publicity? I'm a programmer (websites, full stack), and not a lawyer, so I don't really understand how you can recreate a game without violating IP rights of Blizzard. Are there precedents, old games remade by fans/enthusiasts that were allowed to exist? And I understand that you will are not using any assets of regular BW. I just think that a good lawyer hired by Blizzard would find a way to stop OpenBW.

I just explained some of it here:
http://www.teamliquid.net/forum/brood-war/517127-openbw-introduction?page=10#192

What I am confused about is how well currently active BW projects fit together.
Iccup server has been around for a long time and it has been the only shelter for foreigner community for years. There is Fish server, sure, but it's only suitable for less than 10% of BW players because of the skill difference. And hacker plagued Blizzard servers don't count...
Shield battery is looking to recreate the ladder system.
OpenBW is looking to do the same (tournament module?). Or does it not include ladder?

Different projects, goals and approaches, I know. I just wish there would as small of an overlap as possible. If both SB and OpenBW are successful, foreign BW will have 3 different platforms and a fragmented player base.

I have answered questions regarding SB plenty of times in the OpenBW thread. You will have to look for it there.
The tournament module is just a little side-project of mine, and yes I would like a ladder system, mainly for bots at the moment. But why not expand it to humans if SB doesn't deliver.
I absolutely agree with you that the overlap should be as small as possible. Although it is a valid reason too, I am less concerned with a fragmented player base than wasting valuable volunteering effort during development.

And some questions that are probably stupid:
1. It will never be possible for someone with regular BW to play someone running OpenBW, right?
2. Will regular SC:BW maps be compatible with OpenBW? I guess they would have to be ported by some tool?
3. Screen resolution. Do you plan to offer a 4:3 mode with same amount of content per screen as regular BW? Or will everything be smaller on the screen and more of the map will fit in? Fitting more stuff into the screen would actually be an imbalance on many maps. Having your main and natural base in your view is an advantage.
And a 4:3 retro mode would be a good selling point to BW fans I think.

Anyway, that's all from me, I appreciate the effort and I look forward to updates

No such thing as a stupid question, right? only stupid answers

1. we aim at full compatibility. This includes original and OpenBW playing together. No promises though...

2. absolutely, all SC:BW maps will be compatible, no porting needed. However, many competitive maps are "protected", where protected actually means corrupted. I prefer a proper server-side versioning system for competitive maps to such a hacky solution.

3. Yes, the game client will most definitely offer the original aspect ratio and viewport. However, we don't see a reason why we should restrict players to only using the original setting. Obviously two players playing against each other should use the same setting. We will find a solution for that.

50 pts Copper League
fazek42
Profile Blog Joined April 2011
Hungary438 Posts
January 12 2017 14:53 GMT
#11
Great read. Amazing projects going on in the community right now, the network stack of shield battery is going to be super interesting to read as well. And to have all those FPVODs from our legends! What a time to be alive. It's very touching to read about the passion you have for Brood War as well...
HaFnium
Profile Blog Joined December 2006
United Kingdom1076 Posts
January 13 2017 03:44 GMT
#12
Good to see what's behind open BW and do keep up with the good work!
BW forever...

I too had a sense of betrayal (been playing a bit of sc2...)
BW forever!
Please log in or register to reply.
Live Events Refresh
Next event in 5h 50m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 551
MindelVK 29
Creator 19
ProTech8
IndyStarCraft 6
StarCraft: Brood War
Britney 19081
Calm 3484
Mini 863
EffOrt 797
Soma 219
ggaemo 189
firebathero 148
Rush 133
HiyA 102
hero 85
[ Show more ]
Hyun 28
Aegong 27
Sexy 12
IntoTheRainbow 10
NaDa 6
Dota 2
canceldota184
Counter-Strike
pashabiceps2504
fl0m1525
kRYSTAL_52
Heroes of the Storm
Liquid`Hasu138
XaKoH 126
Other Games
FrodaN1979
Beastyqt716
ceh9382
DeMusliM220
C9.Mang0138
QueenE46
Trikslyr39
Organizations
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• Reevou 11
• intothetv
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• Migwel
• Kozan
• IndyKCrew
StarCraft: Brood War
• blackmanpl 34
• 80smullet 16
• Michael_bg 1
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV224
League of Legends
• Nemesis3975
• TFBlade1090
Other Games
• imaqtpie795
• Shiphtur204
Upcoming Events
OSC
5h 50m
RSL Revival
15h 50m
TriGGeR vs Cure
ByuN vs Rogue
Replay Cast
1d 5h
RSL Revival
1d 15h
Maru vs MaxPax
BSL
2 days
RSL Revival
2 days
uThermal 2v2 Circuit
2 days
BSL
3 days
Afreeca Starleague
3 days
Replay Cast
4 days
[ Show More ]
Sparkling Tuna Cup
4 days
The PondCast
6 days
Liquipedia Results

Completed

Proleague 2026-03-31
WardiTV Winter 2026
NationLESS Cup

Ongoing

BSL Season 22
CSL Elite League 2026
CSL Season 20: Qualifier 1
ASL Season 21
CSL Season 20: Qualifier 2
RSL Revival: Season 4
Nations Cup 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual

Upcoming

Escore Tournament S2: W1
CSL 2026 SPRING (S20)
Acropolis #4
IPSL Spring 2026
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
StarCraft2 Community Team League 2026 Spring
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.