• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 15:09
CET 20:09
KST 04:09
  • 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
[ASL20] Finals Preview: Arrival12TL.net Map Contest #21: Voting10[ASL20] Ro4 Preview: Descent11Team TLMC #5: Winners Announced!3[ASL20] Ro8 Preview Pt2: Holding On9
Community News
2025 RSL Offline Finals Dates + Ticket Sales!7BSL21 Open Qualifiers Week & CONFIRM PARTICIPATION1Crank Gathers Season 2: SC II Pro Teams6Merivale 8 Open - LAN - Stellar Fest3Chinese SC2 server to reopen; live all-star event in Hangzhou22
StarCraft 2
General
RotterdaM "Serral is the GOAT, and it's not close" Could we add "Avoid Matchup" Feature for rankgame Smart servos says it affects liberators as well Chinese SC2 server to reopen; live all-star event in Hangzhou The New Patch Killed Mech!
Tourneys
Crank Gathers Season 2: SC II Pro Teams RSL Offline Finals Dates + Ticket Sales! Merivale 8 Open - LAN - Stellar Fest $5,000+ WardiTV 2025 Championship $3,500 WardiTV Korean Royale S4
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 497 Battle Haredened Mutation # 496 Endless Infection Mutation # 495 Rest In Peace Mutation # 494 Unstable Environment
Brood War
General
[ASL20] Finals Preview: Arrival BSL Season 21 BSL Team A vs Koreans - Sat-Sun 16:00 CET ASL20 Pre-season Tier List ranking! ASL Runner-Up Race Stats
Tourneys
[ASL20] Grand Finals BSL21 Open Qualifiers Week & CONFIRM PARTICIPATION ASL final tickets help [ASL20] Semifinal A
Strategy
Current Meta Soma's 9 hatch build from ASL Game 2 Simple Questions, Simple Answers Roaring Currents ASL final
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile General RTS Discussion Thread Nintendo Switch Thread Dawn of War IV
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
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
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread YouTube Thread The Chess Thread
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
Anime Discussion Thread [Manga] One Piece Korean Music Discussion Series you have seen recently... Movie Discussion!
Sports
Formula 1 Discussion 2024 - 2026 Football Thread MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023 NBA General Discussion
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
The Benefits Of Limited Comm…
TrAiDoS
Sabrina was soooo lame on S…
Peanutsc
Our Last Hope in th…
KrillinFromwales
Certified Crazy
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1711 users

Classic Games #3: Rogue vs Serral at BlizzCon

Forum Index > SC2 General
13 CommentsPost a Reply

Classic Games #3: Rogue vs Serral at BlizzCon

Text byTL.net ESPORTS
September 10th, 2025 05:09 GMT

Classic Games #3

To Be The Man, You Gotta Beat The Man
Rogue vs Serral at BlizzCon 2018

By: Mizenhauer

The story of Serral's ascent to the zenith of the StarCraft II scene is a well known tale at this point—perhaps even the most well-known story for the contemporary group of fans. In 2018, the Finnish Zerg took the WCS Global Finals by storm in his first year as a full-time progamer, forever changing the place of 'foreigners' in the history of competitive SC2.

There were many memorable matches during Serral's 2018 campaign to the world championship—the 4-2 victory over ShoWTimE in the WCS Leipzig finals that gave him his first major title, the 0-3 loss against Classic in the RO4 of IEM Katowice that suggested the Korea-World gap might still bet too wide for him to bridge, the nailbiting 4-3 finals victory over Stats at GSL vs. World that told us there had been a tectonic shift in the SC2 world, or the comeback 4-3 win over Reynor in the finals of WCS Montreal that introduced us to another foreigner powerhouse on the rise.

However, there's a match that I believe has become slightly overlooked, both because of the symbolic value it held, and the level of play Serral showed throughout. I'm speaking of the penultimate stop on his road to the world championship—his semifinals match against Rogue.

Of course, every single one of Serral's five match victories at BlizzCon felt momentous, as he toppled giant after giant of the Korean progaming institution. He opened the tournament with a statement 2-0 win against sOs, crushing the only player to ever win two BlizzCon titles. Serral then locked in his playoff spot with another 2-0 against Zest, the other dominant Protoss player of HotS and an all-time great in his own right.

Serral only seemed to get stronger as the tournament went on, as he took a 3-0 against Dark in the quarterfinals. While Dark had only risen to prominence in Legacy of the Void, his dominating play had earned the nickname "the final boss" in just a few years of play. Moreover, he had picked up another moniker as the "foreigner killer" for being especially ruthless against non-Korean players. A less experienced Serral had been a victim at IEM Katowice 2017 where he suffered a 0-3 loss, but this time the hunter became the hunted as it was Serral who took a convincing sweep.

If the final boss had already been defeated in the quarterfinals, then most subsequent opponents would typically be a downgrade. But for Serral, the level of difficulty only rose as when he faced Rogue in the semis.

No one's going to buy a full revisionist history at this point—3x Code S champion Maru was definitely the best Korean player at the time, and the toughest potential opponent for Serral to face. However, hindsight does give us an opportunity to better appreciate the kind of challenge Rogue presented.

Rogue's career arc up to that point mirrored Serral's in some ways, as he had been around the scene for quite some time before abruptly rising to world champion level in 2017. After joining Jin Air in 2011 (when it was known as 8th Team), Rogue steadily rose through the ranks to become an eccentric yet serviceable Proleague player, and also an occasional playoff participant in Korea's individual leagues.

His fortunes changed drastically in the second half of 2017, when he qualified for BlizzCon with near-miraculous back-to-back wins at IEM Shanghai and the GSL Super Tournament II. As with Serral, fans were split between doubters and true believers, and likewise, the faithful were vindicated as he lifted the WCS Global Championship trophy.

It wasn't an entirely unprecedented tale—ByuN had made a similar run from obscurity to win BlizzCon 2016, and shades of his story could also be seen in sOs's 2013 BlizzCon and TY's 2017 IEM Katowice runs. But it’s what occurred in the months after that would forever define Rogue. He seemed destined for a ByuN-like career path of never again reaching that glorious career peak when he crashed out of the first Code S of 2018 in the group stages, but he instantly recovered his world-best form to win another world championship at IEM Katowice.

While we didn't know it in 2018, Rogue would go on to achieve similar 'out of nowhere' titles a few more times in his career. He didn't quite hit rock-bottom before his 2020 IEM Katowice and 2022 Code S Season 1 championships, but both times he shrugged off minor slumps to prove that the killer instinct had always been lurking inside (while not quite on the same level of the aforementioned tournaments, it's worth mentioning that even Serral would eventually get the full Rogue experience in the finals of TSL8, where Rogue casually cheesed his way to a 16-minute victory).

Even though Rogue already had a reputation as a volatile player who could explode with a championship performance at any time—and this was what the Korean elitists of TL.net were counting on ahead of this match—perhaps the full peril of Serral's situation wasn't fully understood at the time.

And, at the end of the day, we have to remember how often it's said that one needs to beat the best to be the best. Rogue was the reigning BlizzCon champion, and by making it so far in the tournament, he had made sure the path to being the best in the world would go through him.

The Match: Rogue vs Serral - Lost and Found

2018 WCS Global Finals - Semifinals



Game one between Serral and Rogue greatly resembled Serral’s 3-0 sweep of Dark in the quarterfinals. Rogue put up a reasonable fight, but the Finnish Zerg picked him apart with burrowed Roaches and Roach drops before ending the game with one hammerblow. However, Rogue made sure this wouldn't be another steamrolling, holding with aplomb against Serral's Speedling all-in in game two.

Serral took back the momentum in the series in game three, where it became his turn to defend against an enemy all-in. After holding off a series of Speedling and Ling-Bane attacks from Rogue, he put himself on match point with a Roach counterattack.

The series headed to Lost and Found for game four, with Serral spawning in at the top-right while Rogue began at bottom-left. The game started as standard as possible, with both players perfectly content to take their thirds and defend with a small amount of Zerglings and Banelings. While the two diverged slightly in terms of tech and upgrade timings, ultimately they were content to let each other establish themselves on four-bases and prepare for a mid-game contest.

The action didn’t truly begin until the nine minute mark, but once it did, it never stopped. Rogue took the initial edge with his faster Tunneling Claws upgrade, distracting Serral with his main force while picking off Drones with a handful of burrowed Roach hit squads. This advantage seemed to compound as he used the breathing room to tech up to Lurkers and Nydus Worms, but Serral quickly showed Rogue two could play the burrowed Roach game. Serral paid Rogue back threefold, taking advantage of the immobile Lurkers to tear down Rogue's fifth base and wreak havoc throughout his territory.

With Serral establishing his own fifth base, equalizing the tech situation, and being up in both supply and banked resources, he seemed well on his way to taking the kind of slow, snowballing victory he had won countless times before.

However, Rogue showed he was a different class of opponent, and went to work trying to claw back into the game. A series of guerilla tactics with burrowed Roaches failed to deal any meaningful damage, but they provided the distraction needed to open a Nydus highway into Serral's main. Quick reactions from Serral averted a total disaster, but Rogue still massacred a large chunk of Serral's returning army as it went up a narrow ramp. Moreover, he bought himself precious time needed to secure his fifth base.

[image loading]

While not the game ending move it often is, Rogue's Nydus-Lurker combo laid the foundation for his comeback.


The game wasn't quite back to even yet, as Serral had used his prior advantage to get a jump start on assembling the late-game ZvZ force of Lurker-Hydra-Viper. However, Rogue had expanded his foothold in the game, and had a plan to further narrow the gap. Well aware he was sure to lose a head on engagement using his motley Roach-Hydra-Lurker army, Rogue doubled down on guerilla tactics.

Roach run-bys, Nydus Worms, and even Lurker drops figured into Rogue's plan as he attempted to pry Serral apart. While some of his attacks were wasteful, enough of them hit the mark to keep Serral scrambling on defense. The biggest success came with a three-prong attack that made even Serral look indecisive for a moment, allowing Rogue to tear down the enemy Lurker Den, demolish a newly built sixth base, and establish a sixth base of his own.

In that moment, at around 17-18 minutes into the game, Rogue might finally have felt as if things were starting to go his way. He had dictated the action for an extended stretch of the game, and the income situation had flipped in his favor.

However, the all-seeing observer revealed Rogue was not out of the woods yet. Serral was behind on workers and bases, but he had banked nearly three thousand more gas than Rogue. Indeed, Rogue had sacrificed finesse to play at such a breakneck pace—the plan hadn't been so much 'hit and run' as it had been 'deploy troops everywhere and hope something succeeds.' Throughout all Rogue's harassment he had lost nearly 4000 more minerals and 3000 more gas worth of units than Serral. If Serral could remain patient and play around his bank and stronger standing army, victory was very much within his grasp.

[image loading]

The units lost tab revealed the hidden tale of the game.


The threat to Rogue became apparent when he took a breather to try and consolidate his income advantage, thus giving Serral a window to actually go on the offensive for once. Although Rogue's line of Lurkers bogged down the enemy advance outside of his sixth base, a series of highly effective Viper abducts from Serral revealed that Rogue could simply not afford to play a normal battle of late-game attrition.

Once again, Rogue was able to resolve the situation through offense, sending forces to backdoor Serral while his Lurkers continued to stall on the front line. While this succeeded in forcing Serral to withdraw his troops to a more defensive position, at this point, viewers had to wonder who was truly dictating the pace of the game.

On one hand, Rogue seemed to pull even further ahead through this latest round of counterattacks, forcing Serral back and even placing a Hatchery at one of the precious corner bases during the chaos. On the other hand, Rogue's dilemma started to crystallize, as he needed to stay on the offensive to consolidate his expansion lead. Serral seemed to understand the situation—a post-match interview revealed he had a very good idea of how the trades had been favoring him—and he was content to mine from just two bases on a low Drone count while maintaining a large, high-tech army.

Rogue had to keep the heat on Serral, and he mustered his forces for his most direct offensive move yet: a frontal attack near Serral's natural while a detachment of Lurkers struck one of Serral's two mining bases. However, with the amount of territory Serral needed to cover had narrowed considerably, and with the benefit of nearby friendly buildings to charge his plentiful Vipers, it was an easy defense for Serral. Vipers let him easily clean up the frontal attack, while he had plenty of Hydralisks to spare to defend his expansion.

[image loading]

Forced into attempting a direct attack, Rogue felt the wrath of Serral's superior late-game force.


Although Rogue had come close to evening the odds with an amazing counterattacking performance, against the greatest defensive Zerg of all time, Rogue inevitably started to run out of steam. Another attempt at a two-prong attack from Rogue was deflected, while an army control error saw him lose several Overseers and disastrously supply block himself at 169/162 when his only play was to keep cranking out units to keep Serral occupied.

As a result, Rogue was unable to defend his vital corner base, and from that point, the game started to truly spiral out of control. His existing expansions started to dry out, and Serral took the income lead for the first time in nearly nine minutes. Rogue spent the last of his banked gas for yet another multi-directional attack, but Serral showed him the window to win through counterattacking was over by by easily defending once more.

While Serral sensed victory—perhaps he had been sure of it long before—he did not rush to close the game out. With a massive Viper advantage to his name, Serral simply picked away at Rogue's units, took favorable skirmishes, and prevented him from taking any new expansions. With his tournament life on the line, Rogue stuck to his guns and continued his backdoor attacks whenever Serral advanced over the halfway point on the map, but at this point, these were more annoyances than anything truly threatening.

[image loading]

With his gas bank depleted, Rogue had no chance in these head-on engagements.


With the game clock at around 30 minutes and 14 seconds, the camera swapped to Rogue. Instead of the look of quiet confidence we had seen so often before, there was nothing to be found on his face except weariness and acceptance. He had done everything he could. He had counterattacked ceaselessly, outexpanded his opponent, and played his previously unstoppable brand of StarCraft II for more than a half hour. It simply wasn't enough.

Moments later, Rogue sent his army forward into what he knew was a doomed fight. Serral’s army wrapped itself around Rogue’s 18 roaches and 10 Hydralisks with the ruthlessness of an anaconda, and squeezed the final "gg" out of his opponent. With the reigning world champion finally out of the way, only one match remained between Serral and StarCraft immortality.

[image loading]

With Serral in no hurry to close the game out, Rogue marched forward to give himself his own GG timing.


*****


The grand finals proved to be more of a coronation than a contest. Stats and Serral had combined to create the most competitive and entertaining finals of the year at GSL vs The World, but Serral had only distanced himself further from the rest of the progaming field since then. While Stats kept the score respectable by taking two maps, on the whole, the finals felt like the most inevitable 4-2 win we had ever seen.

While that finals remains the lasting memory of BlizzCon, I still appreciate the prior series for how it set up that very aura of undeniability. Facing the reigning BlizzCon champion who was giving one of the best performances of his life, Serral responded by delivering his own magnum opus of BlizzCon 2018.



Credits and acknowledgements

Written by: Mizenhauer
Editor: Wax
Images: Blizzard

Facebook Twitter Reddit
TL+ Member
TeamMamba
Profile Joined June 2025
130 Posts
September 10 2025 14:10 GMT
#2
Down good old memory road

Also it was Serral who brought the lurker / vipers play into the meta.

Koreans zvz were still roach vs roach at that time
Antithesis
Profile Joined August 2010
Germany1213 Posts
Last Edited: 2025-09-10 18:56:11
September 10 2025 18:53 GMT
#3
Great read!

Fully agree that this was a more momentous match than is usually appreciated, and it was also insane in the level of play. I recall first watching it and being in pure awe of the skill displayed by the two – and in the end of course by Serral in particular.

On September 10 2025 14:09 TL.net ESPORTS wrote:
With the game clock at around 30 minutes and 14 seconds, the camera swapped to Rogue. Instead of the look of quiet confidence we had seen so often before, there was nothing to be found on his face except weariness and acceptance. He had done everything he could. He had counterattacked ceaselessly, outexpanded his opponent, and played his previously unstoppable brand of StarCraft II for more than a half hour. It simply wasn't enough.

History.
Mutation complete.
WombaT
Profile Blog Joined May 2010
Northern Ireland25938 Posts
September 10 2025 20:42 GMT
#4
Great writeup!
'You'll always be the cuddly marsupial of my heart, despite the inherent flaws of your ancestry' - Squat
FataLe
Profile Joined November 2010
New Zealand4512 Posts
September 10 2025 22:09 GMT
#5
Yep, i remember watching this match as though it was the finals. Unreal display of skill by both and I remember feeling happy that they both played well so that Serral could show us that he is that guy.
hi. big fan.
Husyelt
Profile Blog Joined May 2020
United States837 Posts
September 11 2025 05:29 GMT
#6
Man i just watched this a few weeks ago. I still cant believe Serral somehow pushed up into his own main vs those nydus lurks.

That whole run really cemented the idea that "foreigners" could compete again in StarCraft. Serral had none of the previous chokes that mentally nuked other players against the Korean Gods. I still think Rogue and Stats coulda beat Serral, but considering the years that followed, its clear he elevated the game like no one since Life a few years earlier.
You're getting cynical and that won't do I'd throw the rose tint back on the exploded view
SharkStarcraft
Profile Joined April 2011
Austria2239 Posts
September 11 2025 07:28 GMT
#7
Man I miss Blizzcon sc2 so much

It just was THE penultimate sc2 event of the year - EWC cant compare to that feeling for me even if the prize pool was ten million.
Cogito, ergo Toss
Lorian
Profile Joined January 2012
Germany4 Posts
September 11 2025 07:43 GMT
#8
Greatr writeup, thanks. Always a pleasure to read these articles.
Waxangel
Profile Blog Joined September 2002
United States33466 Posts
Last Edited: 2025-09-12 01:25:26
September 11 2025 15:59 GMT
#9
The game loses some of its tension on a rewatch where you know Serral had the situation read perfectly and wasn't sweating the income disadvantage that much, but definitely one of the most exciting ZvZ's to have experienced live. I think it's reasonable to say Rogue could have forced more errors out of a lesser opponent and completed the comeback.
AdministratorHey HP can you redo everything youve ever done because i have a small complaint?
GoloSC2
Profile Joined August 2014
711 Posts
September 12 2025 08:56 GMT
#10
Loving these trips down memory lane!
"Code S > IEM > Super Tournament > Homestory Cup > Blizzcon/WESG > GSL vs The World > Invitational tournaments in China with Koreans > WCS events" - Rodya
mb66betrucom
Profile Joined September 2025
1 Post
September 20 2025 15:11 GMT
#11
--- Nuked ---
bastiensky
Profile Joined April 2013
France7 Posts
October 09 2025 11:37 GMT
#12
great memories, thanks for the read
microbitmedia
Profile Joined October 2025
1 Post
Last Edited: 2025-10-10 13:02:24
October 10 2025 13:01 GMT
#13
Bot edit.

User was banned for this post.
NeWHoriZonS
Profile Joined April 2018
55 Posts
October 10 2025 15:38 GMT
#14
Great writeup as usual!
That specific game is one of the few I remember perfectly even after all these years, truly the peak of ZvZ that year.
There was no doubt in my mind that he was gonna win the final after this one.
Please log in or register to reply.
Live Events Refresh
Monday Night Weeklies
17:00
Open Cup
RotterdaM754
TKL 410
IndyStarCraft 266
SteadfastSC218
ZombieGrub152
BRAT_OK 97
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 754
TKL 410
IndyStarCraft 266
SteadfastSC 218
ZombieGrub152
MaxPax 148
UpATreeSC 109
BRAT_OK 97
ProTech88
MindelVK 24
StarCraft: Brood War
Britney 19555
Sea 575
Yoon 312
Dewaltoss 86
Rock 42
Dota 2
qojqva4226
Dendi1392
BananaSlamJamma257
PGG 97
Counter-Strike
fl0m2661
ScreaM1136
Other Games
FrodaN1680
Beastyqt609
B2W.Neo514
ceh9428
mouzStarbuck329
Grubby190
C9.Mang0118
ArmadaUGS112
QueenE58
Mew2King54
rGuardiaN30
Organizations
Counter-Strike
PGL16429
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 21 non-featured ]
StarCraft 2
• kabyraGe 135
• Reevou 4
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• Kozan
• IndyKCrew
StarCraft: Brood War
• blackmanpl 51
• FirePhoenix11
• Michael_bg 2
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 2526
League of Legends
• Nemesis3182
• imaqtpie2275
• TFBlade794
Other Games
• WagamamaTV393
• Shiphtur131
Upcoming Events
BSL 21
5h 51m
Replay Cast
14h 51m
Streamerzone vs Shopify Rebellion
Streamerzone vs Team Vitality
Shopify Rebellion vs Team Vitality
WardiTV Invitational
16h 51m
CrankTV Team League
17h 51m
BASILISK vs TBD
Team Liquid vs Team Falcon
BSL 21
1d 5h
Replay Cast
1d 14h
BASILISK vs TBD
Team Liquid vs Team Falcon
OSC
1d 16h
CrankTV Team League
1d 17h
Replay Cast
2 days
The PondCast
2 days
[ Show More ]
CrankTV Team League
2 days
Replay Cast
3 days
WardiTV Invitational
3 days
CrankTV Team League
3 days
Replay Cast
4 days
BSL Team A[vengers]
4 days
Dewalt vs Shine
UltrA vs ZeLoT
BSL 21
4 days
Sparkling Tuna Cup
5 days
BSL Team A[vengers]
5 days
Cross vs Motive
Sziky vs HiyA
BSL 21
5 days
Wardi Open
6 days
Liquipedia Results

Completed

ASL Season 20
WardiTV TLMC #15
Eternal Conflict S1

Ongoing

BSL 21 Points
CSL 2025 AUTUMN (S18)
BSL 21 Team A
C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
CranK Gathers Season 2: SC II Pro Teams
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025

Upcoming

SC4ALL: Brood War
YSL S2
BSL Season 21
SLON Tour Season 2
BSL 21 Non-Korean Championship
RSL Offline Finals
WardiTV 2025
RSL Revival: Season 3
Stellar Fest
SC4ALL: StarCraft II
META Madness #9
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
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 © 2025 TLnet. All Rights Reserved.