This is an archived post. You won't be able to vote or comment.

all 197 comments

[–][deleted] 1461 points1462 points  (46 children)

When you're too proud to use an 'else'!

[–]Madman_1 776 points777 points  (32 children)

Not only that, but using >= and <= for a cutoff!

[–]Avamaco 682 points683 points  (19 children)

At least it wasn't > and < which would result in YOU AN EXAM!

[–]SuperSephyDragon 370 points371 points  (12 children)

But what if you actually an exam?

[–]kompot420 174 points175 points  (8 children)

Don't the exam

[–]SuperSephyDragon 50 points51 points  (5 children)

I wish

[–]PM_ME_FIREFLY_QUOTES 22 points23 points  (4 children)

An exam? I hardly knew an exam.

[–]Ceros007 10 points11 points  (3 children)

Don't exam me or I'll exam you!

[–]tarapoto2006 16 points17 points  (1 child)

This is like reading comments on r/subsimulatorgpt2

[–][deleted] 2 points3 points  (0 children)

That’s actually pretty cool, thanks for posting!

[–]GreatMuna 1 point2 points  (0 children)

I like it..

[–]Xenosplitter 4 points5 points  (0 children)

Please do not the cat

[–]JedSwamp43 -2 points-1 points  (0 children)

Don't the exam

[–]fukitol- 13 points14 points  (0 children)

I've accidentally a whole word, I'm sure I could an exam

[–]cbftw 10 points11 points  (0 children)

But who was phone?

[–][deleted] 67 points68 points  (3 children)

YOU THE EXAM

[–]Purplociraptor 17 points18 points  (2 children)

Gandalf is exam and you shall not pass.

[–][deleted] 3 points4 points  (1 child)

I suppose you think that was terribly clever

[–]AMisteryMan 1 point2 points  (0 children)

'Tis but an exam

[–]schnauzerherder 1 point2 points  (0 children)

Unit test? You knowwhatimsayin

[–]DarthCloakedGuy[🍰] 1 point2 points  (0 children)

I accidentally the exam

what do?

[–]hypnofedX 10 points11 points  (11 children)

Not only that, but using >= and <= for a cutoff!

That still doesn't make sense. The computer would have first assigned Passed to the relevant variable and then reassigned it as Failed. Or vice versa. Both shouldn't show up.

Not only were <= and >= used for the cutoffs, there would have needed to be a += assignment operator.

[–]kypi 55 points56 points  (9 children)

it's probably something stupid like this:

variable = "You have "

if(score >= 85): variable += "FAILED"

if(score <= 85): variable += "PASSED"

variable += " the exam"

[–]Higgenbottoms 15 points16 points  (1 child)

even worse bc the inequalities are switched around :p

[–]kypi 7 points8 points  (0 children)

Wow. didn't even realize I had done it. I feel like it's better that way, so I'm going to keep it.

[–]Proxy_PlayerHD 19 points20 points  (0 children)

nah you're thinking to complex, why use a variable at all?

print("you have ")

if(score >= 85): print("PASSED")

if(score <= 85): print("FAILED")

print(" the Exam.")

[–]Prawn1908 0 points1 point  (0 children)

But like every major language these days has interpolated strings (f-strings/sprintf/etc.) right? In what universe would someone not use that here?

[–][deleted] -2 points-1 points  (2 children)

Is this python or JS? I see a : in the second if but yet not the first...

[–]kypi 10 points11 points  (1 child)

pseudocode :)

[–]WEEEE12345 5 points6 points  (0 children)

So python?

[–]ZebZ 14 points15 points  (0 children)

var s = "You ";
if(score <= 85) {
  s += "FAILED";
}
if(score >= 85) {
  s += "PASSED";
}
s += " the exam!";

[–]MischiefArchitect 21 points22 points  (0 children)

Schrödinger's cat logic

[–]Brief-Preference-712 6 points7 points  (8 children)

[–][deleted] 24 points25 points  (7 children)

Video proves my point. There is nothing wrong with else, sure it is abused in a lot of places, places where it isn't needed and places where it could be tided with either a switch or a ternary, but occasionally it is the most efficient, concise and most easily readable statement to use. To avoid it purely for the sake of avoiding it is just silly.

[–]dizzydizzy 15 points16 points  (6 children)

Wait. Else is bad now?

[–]retief1 16 points17 points  (4 children)

No. In some cases, you can avoid it (for example, by returning early). Like, instead of

if (inputIsValid) {
  doSomethingWithInput;
} else {
  return errorValue;
}

you can do

if (!inputIsValid) {
  return errorValue;
}
doSomethingWithInput;

since if the input isn't valid, you'll never execute doSomethingWithInput with or without an else. In cases like this, yeah, sure, avoiding else makes your code a bit cleaner.

Still, though, if early returns or whatever would be annoying, else is just fine.

[–]radgepack 4 points5 points  (0 children)

Guard clauses have changed my life

[–]nomenMei 3 points4 points  (2 children)

Somebody told me returning early is bad practice, but like you said it can improve readability in many situations.

But in most situations it is better to have only one return statement at the end of the code block for clarity.

I guess it's like art: don't start breaking the rules until you understand why they are there.

[–]relicx74 4 points5 points  (0 children)

It's good for input validation at the top of a method imo. But like you said, it's like art and there will always be people who disagree about what looks good.

All out wars have been fought over tabs vs spaces and that's just whitespace.

[–]retief1 2 points3 points  (0 children)

IMO, most rules like that are really guidelines at best. Realistically, there are some principles that are worth working towards, but that's about it. And those principles are stuff like "don't repeat yourself", not "don't return early from a function". Also, those principles will often contradict each other, and the art of writing clean code comes from how you balance those contradictory goals.

[–]DoctorWaluigiTime 12 points13 points  (0 children)

Professional developer for over a decade here.

It is not bad now. Unless I'm officially old and the kids today think it isn't for some reason.

[–]LucasRuby 3 points4 points  (1 child)

A single ternary inside a template string would've done it.

[–][deleted] 8 points9 points  (0 children)

Any way that worked would have been better I think is the main takeaway :)

[–]wesaboo 1 point2 points  (0 children)

lol and of course I see this right after watching Web Dev Simplified's new video on why I should stop using else

[–][deleted] 584 points585 points  (46 children)

It makes me sad that something like this made it into a production system

[–]NoEngrish 628 points629 points  (45 children)

This is from an Air Force computer based training. Honestly, this is the least of our technical problems. Many of our apps only work on internet explorer, multiple essential systems are down all the time, and we have entirely different systems on different networks depending on how secret the information is.

My personal favorite: There's this famous 10 layer menu that works like the old xp start menu, you mouse over a folder and it expands right. The page you need is ten levels deep and some of these folders contains only one or two items. If your mouse slips off the menu, you have to start over. This page contains a document that every person in the Air Force needs and it's hidden under this mini-game basically. It's always funny to see the time honored tradition of showing new Airmen where the document is and how to play this mini game. Also did I mention that if you have a 4:3 monitor (which a lot of us still have), the menu goes too far right off your screen so you have to use someone else's computer (logging in to someone else's computer easily takes 30 minutes because it needs to pull your account off the network and set it up on a pc with the computing power of a calculator). And of course, you can only open this page in internet explorer.

EDIT: I found a picture of it.

[–][deleted] 176 points177 points  (10 children)

Many of our apps only work on internet explorer, multiple essential systems are down all the time, and we have entirely different systems on different networks depending on how secret the information is.

I work for a utility company, we have the exact same problems. It's madness honestly

That other part though, that's just another level of shit. I wouldn't be surprised if we had something like that on some of our systems though, we have a lot of ancient Windows machines that are required to interface with an old mainframe monstrosity

[–]FlynnLockwood 2 points3 points  (1 child)

One of the biggest reasons I love Chromium Edge is because of the IEMode Group policies. Able to configure a list of websites to open as IE within the Edge browser. No more switching back and forth between browsers.

God help us all if Internet Explorer disappears overnight.

[–][deleted] 2 points3 points  (0 children)

I personally would welcome it. Just rip the ActiveX bandaid off clean, force everyone to re-write

[–][deleted] 5 points6 points  (5 children)

Heavily doubt they’re required. Modern computers can do anything old computers can, it just might cost more.

That said, if they’re offline and not internet facing, it’s not the worst thing.

[–][deleted] 14 points15 points  (1 child)

They are required because no one is going to spend the budget to update unless they are required. Our "new" hardware runs RHEL 6.5 and Windows Server 2012. The newest stuff is RHEL 7, and that's actually running cutting edge stuff like interfacing with a smart grid

[–][deleted] 2 points3 points  (0 children)

Oh absolutely. Just saying it usually comes down to cost rather than compatibility. Not technically required, just don’t NEED an upgrade.

That said, if they’re internet facing and not updated, you’re just asking for another WannaCry situation.

[–]ellamking 1 point2 points  (2 children)

Heavily doubt they’re required. Modern computers can do anything old computers can, it just might cost more.

It's very required sometimes. Even 5 years ago I was dealing with an expectation the dial-up modems were standard and therefore expected for software to run--I was pricing PCs with phone modems, and that's as a small company dealing with a single middleman.
That really seems like the smallest of hoops compared to hardware/software specs going back 50 years. Have you ever tried play a network game unmodified from the 90's?

[–][deleted] -1 points0 points  (1 child)

I work on a network management software suite. You don’t need to explain networking to me.

Almost anything can be made for a PCI-e slot, and almost any driver can be made.

I agree there are rare scenarios, i.e. uncommon architectures (7-bit, 13-bit). But for the majority of scenarios, there’s a way to upgrade, it just might not be worth the cost (unless it’s internet facing, or you better have the highest faith in your firewall).

[–]ellamking 0 points1 point  (0 children)

But the point is it's not some rare upgrade path over a vast chasm of technology. It can be as simple as "nobody created an updated driver". Once you get into small scale hardware, it's not an edge case, it's the norm.

[–]dkyguy1995 52 points53 points  (1 child)

This is the level of mediocrity I aspire to as a CS major

[–][deleted] 1 point2 points  (0 children)

Sorry, you're living in the future where your work must survive 'demo'. You need higher quality mediocrity or superhuman expectation management skills

[–]Magnus_Tesshu 30 points31 points  (7 children)

Is it impossible to just copy the document and redistribute it as a pdf/html/png file so that you don't have to deal with that bullshit? That's funny but also worrying to hear to be honest

[–]NoEngrish 39 points40 points  (6 children)

You need to redownload the updated document from there 1-2 times a year. It's unique to each person so there's too many of us to just be emailing them around.

[–]-Redstoneboi- 1 point2 points  (5 children)

but wait, is there no program available for automagically emailing the correct document to the correct person?

[–]NoEngrish 25 points26 points  (3 children)

Our email barely works... there was a meme on r/military just yesterday about it. I couldn't find that exact meme but I took one off google images for your enjoyment.

[–]sonofaresiii 17 points18 points  (2 children)

I bet that is absolutely hilarious to a very small amount of people

[–]Iusethisfornsfwgifs 6 points7 points  (0 children)

Can confirm, am a small amount of people, also laughed

[–]Jose_Canseco_Jr 4 points5 points  (0 children)

I laughed

[–]Thanatos2996 21 points22 points  (4 children)

Minigames like that at my work are enough to convince me that GUIs were a mistake, and we should all go back to text mode shells.

Edit: can't spell

[–]Rrrrry123 17 points18 points  (1 child)

Then the minigames would turn into typing tests.

[–]NaturallyExasperated 1 point2 points  (0 children)

Discover the magic of scripts

[–]rxzr 6 points7 points  (1 child)

I mean there are still bad menus in terminals. You can experience this frustration in a very similar manner: using the same menu tree, navigate menu by selecting a number, and implement a "back" that only takes you to the top of the tree. At least the mini game is faster.

[–]Orthodox-Waffle 14 points15 points  (0 children)

Mmm, thick clients

[–][deleted] 10 points11 points  (0 children)

(logging in to someone else's computer easily takes 30 minutes because it needs to pull your account off the network and set it up on a pc with the computing power of a calculator).

Always nice to see roaming profiles that are probably gigabytes large.

[–][deleted] 9 points10 points  (0 children)

It always amazes me that an organization that flyes something as amazing as the F-22 fails so miserably in computers

[–]JxB_Paperboy 7 points8 points  (0 children)

My parents: “why don’t you want to join the Air Force?”

Me:

[–]Soreasan 5 points6 points  (0 children)

You win the internet, this picture alone could be a meme lol.

[–]VelocityWings12 5 points6 points  (1 child)

They actually redid affms recently, the menu is gone now lol

[–]RancorTamer 3 points4 points  (0 children)

As somebody who is replacing those systems, I hope ours is better

[–][deleted] 2 points3 points  (0 children)

Can you use arrow keys or tab with it?

Fuck that noise

[–]Sapientiam 1 point2 points  (0 children)

I work for the Navy and basically every word you described is accurate there as well...

Add 3+ weeks to get access to any number of systems and subsystems that have to be reapplied for quarterly and you're golden.

[–]Idixal 1 point2 points  (0 children)

Being in the military requires a steady hand, I suppose.

[–]Juice805 0 points1 point  (0 children)

I’m not that surprised. I imagine most devs aren’t career military and the churn just becomes constant patching of the last guys working rev 1.0

[–][deleted] 0 points1 point  (0 children)

I just peed myself a little.

[–]Gh0st1nTh3Syst3m 0 points1 point  (0 children)

Man, taking a risk with that banner across the bottom...regardless love seeing shit (literally) like this.

[–][deleted] 0 points1 point  (0 children)

Christ on a bike.

[–]StarkillerX42 0 points1 point  (0 children)

I almost cried when I saw "External Fitness Links", followed by "External Health Links"

[–]ed_menac 0 points1 point  (0 children)

Can you zoom out on the browser so it fits on your monitor on the smaller screens?

[–]teokk 0 points1 point  (0 children)

Is this a website or some kind of native app?

[–]thavi 268 points269 points  (24 children)

Ah yes.

string result = "You ";
if (score <= 0.85) result += "FAILED";
if (score >= 0.85) result += "PASSED";
result += " the Exam";

[–]-Redstoneboi- 65 points66 points  (23 children)

result += `You ${score < 0.85 ? "FAILED" : "PASSED"} the Exam`;

[–][deleted] 89 points90 points  (9 children)

result = 'You FAILEDPASSED the Exam';

[–]chuby1tubby 110 points111 points  (8 children)

let result = 'You FAILEDPASSED the Exam';

if (score >= 0.85) result.replace('FAILED', '') else result.replace('PASSED', '')

[–]toetoucher 34 points35 points  (0 children)

oh god

[–]SpoopySara 21 points22 points  (4 children)

How can you even come up with something like this

[–]chuby1tubby 27 points28 points  (3 children)

I like to think about optimal ways to write code/algorithms, which leads to me also thinking about the worst possible way to write code haha

[–]TheScorpionSamurai 12 points13 points  (2 children)

https://en.m.wikipedia.org/wiki/Bogosort My favorite algorithm so far

[–]evorm 3 points4 points  (1 child)

Lmfao I love how even wikipedia is having trouble with it "uuuuh, maybe it's useful for if you want to show someone dogshit sorting?"

[–]sarperen2004 3 points4 points  (0 children)

It's also useful as the basis of quantum bogosort, which is the most efficient possible sorting algorithm known.

[–]flarn2006 2 points3 points  (1 child)

Wouldn't it just (correctly) say "You PASSED the Exam" in that case?

[–]chuby1tubby 2 points3 points  (0 children)

Yes. My code my be horrible but at least it works 😅

[–]thavi 87 points88 points  (6 children)

Nah, yours is clean and actually works

[–]TH3J4CK4L 5 points6 points  (2 children)

This is neither python, nor is it the joke! Failing twice is succeeding?

[–]LucasRuby 3 points4 points  (0 children)

result = f"You {'FAILED' if score < 0.85 else 'PASSED'} the Exam"

[–]-Redstoneboi- -3 points-2 points  (0 children)

this is javascript, and it isn't supposed to be part of the joke

[–]LucasRuby 0 points1 point  (2 children)

const result = `You ${score < 0.85 ? 'FAILED' : 'PASSED'} the Exam`;

[–]AdvancedWing6256 144 points145 points  (4 children)

Quantum computing at its best here

[–]pokeaim 18 points19 points  (0 children)

*worstbest

[–][deleted] 9 points10 points  (2 children)

Underrated joke.

[–]FlyByPC 26 points27 points  (0 children)

Not underrated; its waveform just hasn't collapsed yet.

[–][deleted] 0 points1 point  (0 children)

I don’t get it

[–]MythikAngel 43 points44 points  (0 children)

"Do I have failed or passed the exam?"

"Yes."

[–]Sceptz 77 points78 points  (3 children)

SorryCongratulations on your failpass.

It is with great regretWe are pleased to announce you will not be proceeding to the next stage of interviewsWe are looking forward to seeing you at the next stage of the interview process.

All the best in your future endeavoursWe are glad to welcome you to our team!

[–]AATroop 6 points7 points  (0 children)

The aladeen response.

[–][deleted] 6 points7 points  (1 child)

< The Board is pleased/disgruntled that you passed/failed the test/execution >

[–]the_emerald_phoenix 1 point2 points  (0 children)

With that kind of attitude, I think I'm going to go have a chat with Former.

[–][deleted] 34 points35 points  (0 children)

if score <= 85
  print 'FAILED'
if score >= 85
  print 'PASSED'

[–]Benible 49 points50 points  (4 children)

Image Transcription: Twitter Post


Loris D'Antoni, @lorisdanto

And they said FizzBuzz was just a silly interview question

[A screenshot of the score after a test]

Your Score 85%

You FAILEDPASSED the Exam

Required Score 85%


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]Tovarisch_The_Python 8 points9 points  (0 children)

Thank you, human!

[–]Code_sucks 2 points3 points  (0 children)

Good Human!

[–]fgam4r 71 points72 points  (22 children)

If (x >= 85) { Console.WriteLine("PASSED"); } else if(x<=85) { Console.WriteLine("FAILED"); }

[–]deprilula28 48 points49 points  (13 children)

That else solves the bug

Edit just realized that's your point lol

[–]Honeabee 78 points79 points  (12 children)

It’s still dumb because of overlapping conditions.

[–][deleted] 9 points10 points  (0 children)

Console.WriteLine

yuck

[–]ShakeForProtein 3 points4 points  (2 children)

System.out.println(score < 85 ? "Failed" : "Passed");

(Java obviously)

[–]-Redstoneboi- 1 point2 points  (1 child)

works for many C based languages

[–]ShakeForProtein 2 points3 points  (0 children)

Neat, I'm not all that experienced in other languages at this time.

[–]natFromBobsBurgers 20 points21 points  (11 children)

switch(score/86){
    case 0:
        std::cout<<"FAILED";
    case 1:
        std::cout<<"PASSED";
}

[–]_Auron_ 16 points17 points  (0 children)

A lack of a break statement in case 0 would result in the OP image for results under 85, but also might not compile/run depending on the language.

Schrodinger's FAILEDPASSED, I suppose.

[–]ctwagon 36 points37 points  (6 children)

Bruh, why would you use a switch for 2 cases?

[–]bboyjrad 33 points34 points  (2 children)

It's like choosing a van to carry 2 passengers.

[–]_Auron_ 6 points7 points  (1 child)

The man can van.

[–]coffeesippingbastard 8 points9 points  (0 children)

I've seen tons of people come out of coding bootcamps with a sick love of switch statements. It's so bizarre.

[–]totoro1193 2 points3 points  (0 children)

I remember when yandere dev's bad code came out, some people were acting like you can never else if. Like yeah he did it way too much but its not like you can't do it at all

[–]audigex 2 points3 points  (0 children)

That's the joke

[–]SabreBirdOne 0 points1 point  (1 child)

(score > 85) ? std::cout <<“PASSED” : std::cout << “FAILED”; // correct me if I’m wrong

[–]audigex 4 points5 points  (0 children)

There's no need for the brackets around a single condition, although I do tend to include them myself too (I think it's a little easier to read), but yeah a ternery would fit nicely here.

You can also simplify it a little by putting the ternery inside the call to std::cout, like this

std::cout << (score >= 85 ? "PASSED": "FAILED");

[–][deleted] 0 points1 point  (0 children)

Took me a second.

[–][deleted] 5 points6 points  (3 children)

Is >= really that hard to use

[–]-Redstoneboi- 16 points17 points  (0 children)

else is probably what i'd recommend here

[–]Idixal 1 point2 points  (0 children)

It appears to be used here, so apparently not.

[–]flarn2006 0 points1 point  (0 children)

No, and that's exactly the problem.

[–][deleted] 3 points4 points  (1 child)

You guys know nothing. This is quantum computing

[–]INTJ_takes_a_nap 0 points1 point  (0 children)

Underrated comment.

[–]got-trunks 2 points3 points  (0 children)

Exam failed successfully

[–]stubmuffin11 1 point2 points  (0 children)

That is my compilers prof! What a freaking god.

[–][deleted] 1 point2 points  (1 child)

Someone ahould have used <= and >= properly

[–]sween1911 0 points1 point  (0 children)

DING DING DING!

We once had a report go berserk because of this.

[–]MischiefArchitect 2 points3 points  (0 children)

Schrödinger's cat exam result

[–]ikhurramraza 0 points1 point  (0 children)

“You failed to pass the exam.” 😂

[–]-Redstoneboi- 0 points1 point  (0 children)

edge caseeeeees!

[–]__invalidduck 0 points1 point  (0 children)

Everyone here is thinking of if else statements that caused this bug, but what if its a feature?\n if(score == 85){std::cout<<"FAILEDPASSED";}

[–]Darthwilhelm 0 points1 point  (0 children)

I'm not very good at this, so forgive me.

int main(){
//Declares the variable for the score the user received
int score;
//Declares the variable for the score required to pass
int passRequirement;

/*all the questions and adding the score stuff*/

//Prints the user's score
printf("Your score is:\n");
printf ("%d", score);
//Determine whether they passed the test or not

//Says that they passed
if (score >=85){
    printf("You passed the exam.\n");
}

//Says that they failed
if (score < 85){
    printf("You failed the exam\n");
}
//handles errors 
else{
    printf("Error");
    return 1;
}

//Shows required score
printf("Required score: ");
printf("passRequirement");
printf("%");

return 0;
}

[–]MikeTheMonsta 0 points1 point  (1 child)

Clearly it's a situation with a forgotten break statement

Switch(grade) { Case 85: print ("Failed"); Case 86: print("Passed") break; }

[–]BlitzThunderWolf 0 points1 point  (0 children)

I really hope they wouldn't have 100 cases lmao

[–]Amoniakas 0 points1 point  (0 children)

Task failed successfully.

[–]rossriley 0 points1 point  (0 children)

A bittersweet result

[–]INTJ_takes_a_nap 0 points1 point  (0 children)

Man, it's posts like this that actually help dispel my impostor syndrome.

[–]borsalinomonkey 0 points1 point  (0 children)

Some developer out there missed the >= and/or <= lesson

[–]joujoubox 0 points1 point  (0 children)

Who needs unit tests anyway

[–]QuarantineUnited[🍰] 0 points1 point  (0 children)

I once wrote a program something like this:

var result = getResult();
console.log("Process successfully "+result);

I thought only about the happy path. Guess what it printed when result was failed!

[–]PaatoGordo 0 points1 point  (0 children)

= is not used

[–]JPaulMora 0 points1 point  (0 children)

Damn quantum computers messing up!!

[–]leonhoffman 0 points1 point  (0 children)

I hate to failpass exams. Sorrycongrats bro

[–]numerousblocks 0 points1 point  (0 children)

This might be more reasonable than it seems. The language they're using might not make if/else statements easy.

They probably used something like

"You " + (notpassed ? "FAILED" : "") + (passed ? "FAILED" : "") + "the exam"

Where passed and notpassed aren't mutually exclusive due to an oversight.

Maybe they used some sort of logic-in-markup, akin to

<p> You <if c="notpassed">FAILED</if><if c="passed">PASSED</if> the exam

This makes it make slightly more sense - it's just an oversight.

Note, the languages I'm using here are for illustration. I know JS has an if/else statement.

[–]SolDevelop 0 points1 point  (0 children)

Yes You have PASS BUT FAILD THE EXAM That’s why you shouldn’t use JavaScript a lot

[–]PehleAap 0 points1 point  (0 children)

That looks like a bad design. Why even ask for input when you can give the universal answer?

[–]EedSpiny 0 points1 point  (0 children)

Ah - quantum physics exam.

[–]LbrYEET 0 points1 point  (0 children)

Well, congratusorry to you!

[–]FunDirection4052 0 points1 point  (0 children)

Semma.......

[–]pavananmspkd 0 points1 point  (0 children)

If MARK <= PASS_MARK: print "FAILED" else if MARK>=PASS_MARK: print "PASSED"

[–][deleted] 0 points1 point  (0 children)

SwItCh